Package com.esotericsoftware.kryo.serializers.FieldSerializer

Examples of com.esotericsoftware.kryo.serializers.FieldSerializer.CachedField


            trace("kryo", "Class " + serializer.getType().getName()
              + ". Found a set of consecutive primitive fields. Number of fields = " + primitiveLength
              + ". Byte length = " + (endPrimitives - startPrimitives) + " Start offset = " + startPrimitives
              + " endOffset=" + endPrimitives);
          // TODO: register a region instead of a field
          CachedField cf = new UnsafeRegionField(startPrimitives, (endPrimitives - startPrimitives));
          cf.field = lastField;
          cachedFields.add(cf);
        } else {
          if (lastField != null)
            cachedFields.add(serializer.newCachedField(lastField, cachedFields.size(), lastAccessIndex));
        }
        cachedFields.add(serializer.newCachedField(field, cachedFields.size(), accessIndex));
      } else if (!field.getType().isPrimitive()) {
        cachedFields.add(serializer.newCachedField(field, cachedFields.size(), accessIndex));
      } else if (!lastWasPrimitive) {
        // If previous field was non primitive, it marks a start
        // of a region of primitive fields
        startPrimitives = fieldOffset;
        lastWasPrimitive = true;
        primitiveLength = 1;
      } else {
        primitiveLength++;
      }

      lastAccessIndex = accessIndex;
      lastField = field;
      lastFieldEndOffset = fieldEndOffset;
    }

    if (!serializer.getUseAsmEnabled() && serializer.getUseMemRegions() && lastWasPrimitive) {
      endPrimitives = lastFieldEndOffset;
      if (primitiveLength > 1) {
        if (TRACE) {
          trace("kryo", "Class " + serializer.getType().getName()
            + ". Found a set of consecutive primitive fields. Number of fields = " + primitiveLength + ". Byte length = "
            + (endPrimitives - startPrimitives) + " Start offset = " + startPrimitives + " endOffset=" + endPrimitives);
        }
        // register a region instead of a field
        CachedField cf = new UnsafeRegionField(startPrimitives, (endPrimitives - startPrimitives));
        cf.field = lastField;
        cachedFields.add(cf);
      } else {
        if (lastField != null) cachedFields.add(serializer.newCachedField(lastField, cachedFields.size(), lastAccessIndex));
      }
View Full Code Here


  }
 
  /** Special processing for fiels of generic types */
  CachedField newCachedFieldOfGenericType (Field field, int accessIndex, Class[] fieldClass, Type fieldGenericType) {
    Class[] fieldGenerics;
    CachedField cachedField;
    // This is a field with generic type parameters
    if (TRACE) {
      trace("kryo", "Field '" + field.getName() + "' of type " + fieldClass[0] + " of generic type " + fieldGenericType);
    }

View Full Code Here

import com.esotericsoftware.kryo.serializers.AsmCacheFields.AsmStringField;
import com.esotericsoftware.kryo.serializers.AsmCacheFields.AsmObjectField;

class AsmCachedFieldFactory implements CachedFieldFactory {
  public CachedField createCachedField (Class fieldClass, Field field, FieldSerializer ser) {
    CachedField cachedField;
    // Use ASM-based serializers
    if (fieldClass.isPrimitive()) {
      if (fieldClass == boolean.class)
        cachedField = new AsmBooleanField();
      else if (fieldClass == byte.class)
View Full Code Here

import com.esotericsoftware.kryo.serializers.FieldSerializer.CachedFieldFactory;
import com.esotericsoftware.kryo.serializers.UnsafeCacheFields.*;

class UnsafeCachedFieldFactory implements CachedFieldFactory {
  public CachedField createCachedField (Class fieldClass, Field field, FieldSerializer ser) {
    CachedField cachedField;
    // Use Unsafe-based serializers
    if (fieldClass.isPrimitive()) {
      if (fieldClass == boolean.class)
        cachedField = new UnsafeBooleanField(field);
      else if (fieldClass == byte.class)
View Full Code Here

import com.esotericsoftware.kryo.serializers.ObjectField.ObjectLongField;
import com.esotericsoftware.kryo.serializers.ObjectField.ObjectShortField;

class ObjectCachedFieldFactory implements CachedFieldFactory {
  public CachedField createCachedField (Class fieldClass, Field field, FieldSerializer ser) {
    CachedField cachedField;
    if (fieldClass.isPrimitive()) {
      if (fieldClass == boolean.class)
        cachedField = new ObjectBooleanField(ser);
      else if (fieldClass == byte.class)
        cachedField = new ObjectByteField(ser);
View Full Code Here

  }
 
  /** Special processing for fiels of generic types */
  CachedField newCachedFieldOfGenericType (Field field, int accessIndex, Class[] fieldClass, Type fieldGenericType) {
    Class[] fieldGenerics;
    CachedField cachedField;
    // This is a field with generic type parameters
    if (TRACE) {
      trace("kryo", "Field '" + field.getName() + "' of type " + fieldClass[0] + " of generic type " + fieldGenericType);
    }

View Full Code Here

  }
 
  /** Special processing for fiels of generic types */
  CachedField newCachedFieldOfGenericType (Field field, int accessIndex, Class[] fieldClass, Type fieldGenericType) {
    Class[] fieldGenerics;
    CachedField cachedField;
    // This is a field with generic type parameters
    if (TRACE) {
      trace("kryo", "Field '" + field.getName() + "' of type " + fieldClass[0] + " of generic type " + fieldGenericType);
    }

View Full Code Here

            trace("kryo", "Class " + serializer.getType().getName()
              + ". Found a set of consecutive primitive fields. Number of fields = " + primitiveLength
              + ". Byte length = " + (endPrimitives - startPrimitives) + " Start offset = " + startPrimitives
              + " endOffset=" + endPrimitives);
          // TODO: register a region instead of a field
          CachedField cf = new UnsafeRegionField(startPrimitives, (endPrimitives - startPrimitives));
          cf.field = lastField;
          cachedFields.add(cf);
        } else {
          if (lastField != null)
            cachedFields.add(serializer.newCachedField(lastField, cachedFields.size(), lastAccessIndex));
        }
        cachedFields.add(serializer.newCachedField(field, cachedFields.size(), accessIndex));
      } else if (!field.getType().isPrimitive()) {
        cachedFields.add(serializer.newCachedField(field, cachedFields.size(), accessIndex));
      } else if (!lastWasPrimitive) {
        // If previous field was non primitive, it marks a start
        // of a region of primitive fields
        startPrimitives = fieldOffset;
        lastWasPrimitive = true;
        primitiveLength = 1;
      } else {
        primitiveLength++;
      }

      lastAccessIndex = accessIndex;
      lastField = field;
      lastFieldEndOffset = fieldEndOffset;
    }

    if (!serializer.getUseAsmEnabled() && serializer.getUseMemRegions() && lastWasPrimitive) {
      endPrimitives = lastFieldEndOffset;
      if (primitiveLength > 1) {
        if (TRACE) {
          trace("kryo", "Class " + serializer.getType().getName()
            + ". Found a set of consecutive primitive fields. Number of fields = " + primitiveLength + ". Byte length = "
            + (endPrimitives - startPrimitives) + " Start offset = " + startPrimitives + " endOffset=" + endPrimitives);
        }
        // register a region instead of a field
        CachedField cf = new UnsafeRegionField(startPrimitives, (endPrimitives - startPrimitives));
        cf.field = lastField;
        cachedFields.add(cf);
      } else {
        if (lastField != null) cachedFields.add(serializer.newCachedField(lastField, cachedFields.size(), lastAccessIndex));
      }
View Full Code Here

TOP

Related Classes of com.esotericsoftware.kryo.serializers.FieldSerializer.CachedField

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.