internal SerializationService(IInputOutputFactory inputOutputFactory, int version, IDictionary <int, IDataSerializableFactory> dataSerializableFactories, IDictionary <int, IPortableFactory> portableFactories, ICollection <IClassDefinition> classDefinitions, bool checkClassDefErrors, IManagedContext managedContext, IPartitioningStrategy partitionStrategy, int initialOutputBufferSize, bool enableCompression, bool enableSharedObject) { _inputOutputFactory = inputOutputFactory; _managedContext = managedContext; GlobalPartitioningStrategy = partitionStrategy; _outputBufferSize = initialOutputBufferSize; _bufferPoolThreadLocal = new BufferPoolThreadLocal(this); _portableContext = new PortableContext(this, version); _dataSerializerAdapter = CreateSerializerAdapterByGeneric <IIdentifiedDataSerializable>( new DataSerializer(dataSerializableFactories)); _portableSerializer = new PortableSerializer(_portableContext, portableFactories); _portableSerializerAdapter = CreateSerializerAdapterByGeneric <IPortable>(_portableSerializer); _nullSerializerAdapter = CreateSerializerAdapterByGeneric <object>(new ConstantSerializers.NullSerializer()); _serializableSerializerAdapter = CreateSerializerAdapterByGeneric <object>(new DefaultSerializers.SerializableSerializer()); RegisterConstantSerializers(); RegisterDefaultSerializers(); RegisterClassDefinitions(classDefinitions, checkClassDefErrors); }
/// <exception cref="System.IO.IOException" /> public DefaultPortableWriter(PortableSerializer serializer, IBufferObjectDataOutput @out, IClassDefinition cd) { _serializer = serializer; _out = @out; _cd = cd; _writtenFields = new HashSet <string>(); //cd.GetFieldCount() _begin = @out.Position(); // room for final offset @out.WriteZeroBytes(4); @out.WriteInt(cd.GetFieldCount()); _offset = @out.Position(); // one additional for raw data var fieldIndexesLength = (cd.GetFieldCount() + 1) * Bits.IntSizeInBytes; @out.WriteZeroBytes(fieldIndexesLength); }
internal SerializationService(IInputOutputFactory inputOutputFactory, int version, IDictionary <int, IDataSerializableFactory> dataSerializableFactories, IDictionary <int, IPortableFactory> portableFactories, ICollection <IClassDefinition> classDefinitions, bool checkClassDefErrors, IManagedContext managedContext, IPartitioningStrategy partitionStrategy, int initialOutputBufferSize, bool enableCompression, bool enableSharedObject) { this.inputOutputFactory = inputOutputFactory; this.managedContext = managedContext; globalPartitioningStrategy = partitionStrategy; outputBufferSize = initialOutputBufferSize; dataOutputQueue = new ThreadLocalOutputCache(this); portableContext = new PortableContext(this, version); dataSerializerAdapter = CreateSerializerAdapterByGeneric <IDataSerializable>(new DataSerializer(dataSerializableFactories)); portableSerializer = new PortableSerializer(portableContext, portableFactories); portableSerializerAdapter = CreateSerializerAdapterByGeneric <IPortable>(portableSerializer); RegisterConstantSerializers(); RegisterDefaultSerializers(); RegisterClassDefinitions(classDefinitions, checkClassDefErrors); }
public DefaultPortableReader(PortableSerializer serializer, IBufferObjectDataInput @in, IClassDefinition cd) { _in = @in; Serializer = serializer; Cd = cd; int fieldCount; try { // final position after portable is read _finalPosition = @in.ReadInt(); // field count fieldCount = @in.ReadInt(); } catch (IOException e) { throw new HazelcastSerializationException(e); } if (fieldCount != cd.GetFieldCount()) { throw new InvalidOperationException("Field count[" + fieldCount + "] in stream does not match " + cd); } _offset = @in.Position(); }
public MorphingPortableReader(PortableSerializer serializer, IBufferObjectDataInput input, IClassDefinition cd) : base(serializer, input, cd) { }