}
}
private <T> void readTypeStateObjectsDoubleSnapshotRefresh(StreamingByteData byteData, FastBlobSchema schema, ByteArrayOrdinalMap map) throws IOException{
FastBlobHeapFriendlyClientFrameworkSerializer frameworkSerializer = (FastBlobHeapFriendlyClientFrameworkSerializer)stateEngine.getFrameworkSerializer();
FastBlobDeserializationRecord rec = new FastBlobDeserializationRecord(schema, byteData);
FastBlobTypeDeserializationState<T> typeDeserializationState = stateEngine.getTypeDeserializationState(schema.getName());
FastBlobSerializationRecord serializationRecord = null;
ByteDataBuffer deserializedRecordBuffer = null;
int numObjects = VarInt.readVInt(byteData);
int numObjectsReused = 0;
int numFlawedSerializationIntegrity = 0;
if(numObjects != 0 && eventHandler != null) {
eventHandler.addedObjects(schema.getName(), numObjects);
}
if(typeDeserializationState != null) {
serializationRecord = new FastBlobSerializationRecord(typeDeserializationState.getSchema());
frameworkSerializer.setCheckSerializationIntegrity(false);
deserializedRecordBuffer = new ByteDataBuffer();
typeDeserializationState.populateByteArrayOrdinalMap(map);
frameworkSerializer.setCheckSerializationIntegrity(true);
}
int currentOrdinal = 0;
for(int j=0;j<numObjects;j++) {
int currentOrdinalDelta = VarInt.readVInt(byteData);
currentOrdinal += currentOrdinalDelta;
int recordSize = rec.position(byteData.currentStreamPosition());
if(typeDeserializationState != null) {
NFTypeSerializer<T> serializer = typeDeserializationState.getSerializer();
T deserializedObject = serializer.deserialize(rec);
serializer.serialize(deserializedObject, serializationRecord);