static <T> DeserializeResult<T> deserializeFromMemory(final Memory mem, final int offset) { final int classNameLength = mem.getByte(offset); final byte[] classNameBuffer = new byte[classNameLength]; mem.getByteArray(offset + 1, classNameBuffer, 0, classNameLength); final String className = new String(classNameBuffer, UTF_8); final DeserializeResult<T> result = deserializeFromMemory(mem, offset + classNameLength + 1, className); return new DeserializeResult<T>(result.getObject(), result.getSize() + classNameLength + 1); }
/** * This is deprecated and exists here just to test compatibility with previous serialization format. * In the current serial version of sketches factories are not serialized. * Creates an instance of the DoubleSummaryFactory given a serialized representation * @param mem Memory object with serialized DoubleSummaryFactory * @return DeserializedResult object, which contains a DoubleSummaryFactory object and number of * bytes read from the Memory */ public static DeserializeResult<DoubleSummaryFactory> fromMemory(final Memory mem) { return new DeserializeResult<DoubleSummaryFactory>( new DoubleSummaryFactory(Mode.values()[mem.getByte(MODE_BYTE)]), SERIALIZED_SIZE_BYTES); }
final Memory memRegion = mem.region(offset, mem.getCapacity() - offset); final DeserializeResult<S> result = deserializer.heapifySummary(memRegion); final S summary = result.getObject(); offset += result.getSize(); if (summaries_ == null) { summaries_ = (S[]) Array.newInstance(summary.getClass(), count);
/** * Creates an instance of the DoubleSummary given a serialized representation * @param mem Memory object with serialized DoubleSummary * @return DeserializedResult object, which contains a DoubleSummary object and number of bytes * read from the Memory */ public static DeserializeResult<DoubleSummary> fromMemory(final Memory mem) { return new DeserializeResult<DoubleSummary>(new DoubleSummary(mem.getDouble(VALUE_DOUBLE), Mode.values()[mem.getByte(MODE_BYTE)]), SERIALIZED_SIZE_BYTES); }
final DeserializeResult<SummaryFactory<S>> factoryResult = SerializerDeserializer.deserializeFromMemory(mem, offset); offset += factoryResult.getSize(); final Memory memRegion = mem.region(offset, mem.getCapacity() - offset); final DeserializeResult<S> summaryResult = deserializer.heapifySummary(memRegion); final S summary = summaryResult.getObject(); offset += summaryResult.getSize(); insert(key, summary);
static <T> DeserializeResult<T> deserializeFromMemory(final Memory mem, final int offset) { final int classNameLength = mem.getByte(offset); final byte[] classNameBuffer = new byte[classNameLength]; mem.getByteArray(offset + 1, classNameBuffer, 0, classNameLength); final String className = new String(classNameBuffer, UTF_8); final DeserializeResult<T> result = deserializeFromMemory(mem, offset + classNameLength + 1, className); return new DeserializeResult<T>(result.getObject(), result.getSize() + classNameLength + 1); }
/** * Needed to deserialize an instance of this {@link GroupDataSummaryFactory} from a {@link Memory}. * * @param summaryFactory The serialized summary factory. * @return A {@link DeserializeResult} representing the deserialized summary factory. */ public static DeserializeResult<GroupDataSummaryFactory> fromMemory(Memory summaryFactory) { // This has no state so it does not use the Memory return new DeserializeResult<>(new GroupDataSummaryFactory(), SERIALIZED_SIZE); } }
final Memory memRegion = mem.region(offset, mem.getCapacity() - offset); final DeserializeResult<S> result = deserializer.heapifySummary(memRegion); final S summary = result.getObject(); offset += result.getSize(); if (summaries_ == null) { summaries_ = (S[]) Array.newInstance(summary.getClass(), count);
/** * This is deprecated and exists here just to test compatibility with previous serialization format. * In the current serial version of sketches factories are not serialized. * Creates an instance of the DoubleSummaryFactory given a serialized representation * @param mem Memory object with serialized DoubleSummaryFactory * @return DeserializedResult object, which contains a DoubleSummaryFactory object and number of * bytes read from the Memory */ public static DeserializeResult<DoubleSummaryFactory> fromMemory(final Memory mem) { return new DeserializeResult<DoubleSummaryFactory>( new DoubleSummaryFactory(Mode.values()[mem.getByte(MODE_BYTE)]), SERIALIZED_SIZE_BYTES); }
final DeserializeResult<SummaryFactory<S>> factoryResult = SerializerDeserializer.deserializeFromMemory(mem, offset); offset += factoryResult.getSize(); final Memory memRegion = mem.region(offset, mem.getCapacity() - offset); final DeserializeResult<S> summaryResult = deserializer.heapifySummary(memRegion); final S summary = summaryResult.getObject(); offset += summaryResult.getSize(); insert(key, summary);
/** * Creates an instance of the DoubleSummary given a serialized representation * @param mem Memory object with serialized DoubleSummary * @return DeserializedResult object, which contains a DoubleSummary object and number of bytes * read from the Memory */ public static DeserializeResult<DoubleSummary> fromMemory(final Memory mem) { return new DeserializeResult<DoubleSummary>(new DoubleSummary(mem.getDouble(VALUE_DOUBLE), Mode.values()[mem.getByte(MODE_BYTE)]), SERIALIZED_SIZE_BYTES); }
/** * Needed to deserialize an instance of this {@link GroupDataSummary} from a {@link Memory}. * * @param serializedSummary The serialized summary as a {@link Memory} object. * @return A {@link DeserializeResult} representing the deserialized summary. */ public static DeserializeResult<GroupDataSummary> fromMemory(Memory serializedSummary) { byte initialized = serializedSummary.getByte(INITIALIZED_POSITION); int size = serializedSummary.getInt(SIZE_POSITION); byte[] data = new byte[size]; serializedSummary.getByteArray(DATA_POSITION, data, 0, size); GroupData deserializedData = SerializerDeserializer.fromBytes(data); GroupDataSummary deserialized = new GroupDataSummary(); deserialized.initialized = initialized != 0; deserialized.data = deserializedData; // Size read is the size of size and the byte in bytes (DATA_POSITION) plus the size of the data (size) return new DeserializeResult<>(deserialized, size + DATA_POSITION); } }