protected <T> T deserializeFromDirectMemory(OBinarySerializer<T> binarySerializer, int offset) { final ByteBuffer buffer = pointer.getBufferDuplicate(); if (changes == null) { buffer.position(offset); return binarySerializer.deserializeFromByteBufferObject(buffer); } return binarySerializer.deserializeFromByteBufferObject(buffer, changes, offset); }
/** * {@inheritDoc} */ @Override public T deserializeFromByteBufferObject(ByteBuffer buffer) { final byte typeId = buffer.get(); init(typeId); return (T) binarySerializer.deserializeFromByteBufferObject(buffer); }
private NameFileIdEntry readNextNameIdEntryV1() throws IOException { try { ByteBuffer buffer = ByteBuffer.allocate(OIntegerSerializer.INT_SIZE); OIOUtils.readByteBuffer(buffer, nameIdMapHolder); buffer.rewind(); final int nameSize = buffer.getInt(); buffer = ByteBuffer.allocate(nameSize + OLongSerializer.LONG_SIZE); OIOUtils.readByteBuffer(buffer, nameIdMapHolder); buffer.rewind(); final String name = stringSerializer.deserializeFromByteBufferObject(buffer); final int fileId = (int) buffer.getLong(); return new NameFileIdEntry(name, fileId); } catch (final EOFException ignore) { return null; } }
/** * {@inheritDoc} */ @Override public T deserializeFromByteBufferObject(ByteBuffer buffer, OWALChanges walChanges, int offset) { final byte typeId = walChanges.getByteValue(buffer, offset++); init(typeId); return (T) binarySerializer.deserializeFromByteBufferObject(buffer, walChanges, offset); }
private NameFileIdEntry readNextNameIdEntryV2() throws IOException { try { ByteBuffer buffer = ByteBuffer.allocate(2 * OIntegerSerializer.INT_SIZE); OIOUtils.readByteBuffer(buffer, nameIdMapHolder); buffer.rewind(); final int fileId = buffer.getInt(); final int nameSize = buffer.getInt(); buffer = ByteBuffer.allocate(nameSize); OIOUtils.readByteBuffer(buffer, nameIdMapHolder); buffer.rewind(); final String name = stringSerializer.deserializeFromByteBufferObject(buffer); buffer = ByteBuffer.allocate(OIntegerSerializer.INT_SIZE); OIOUtils.readByteBuffer(buffer, nameIdMapHolder); buffer.rewind(); final int fileNameSize = buffer.getInt(); buffer = ByteBuffer.allocate(fileNameSize); OIOUtils.readByteBuffer(buffer, nameIdMapHolder); buffer.rewind(); final String fileName = stringSerializer.deserializeFromByteBufferObject(buffer); return new NameFileIdEntry(name, fileId, fileName); } catch (final EOFException ignore) { return null; } }
/** * {@inheritDoc} */ @Override public OCompositeKey deserializeFromByteBufferObject(ByteBuffer buffer) { final OCompositeKey compositeKey = new OCompositeKey(); buffer.position(buffer.position() + OIntegerSerializer.INT_SIZE); final int keysSize = buffer.getInt(); final OBinarySerializerFactory factory = OBinarySerializerFactory.getInstance(); for (int i = 0; i < keysSize; i++) { final byte serializerId = buffer.get(); @SuppressWarnings("unchecked") OBinarySerializer<Object> binarySerializer = (OBinarySerializer<Object>) factory.getObjectSerializer(serializerId); final Object key = binarySerializer.deserializeFromByteBufferObject(buffer); compositeKey.addKey(key); } return compositeKey; }
/** * {@inheritDoc} */ @Override public OCompositeKey deserializeFromByteBufferObject(ByteBuffer buffer, OWALChanges walChanges, int offset) { final OCompositeKey compositeKey = new OCompositeKey(); offset += OIntegerSerializer.INT_SIZE; final int keysSize = walChanges.getIntValue(buffer, offset); offset += OIntegerSerializer.INT_SIZE; final OBinarySerializerFactory factory = OBinarySerializerFactory.getInstance(); for (int i = 0; i < keysSize; i++) { final byte serializerId = walChanges.getByteValue(buffer, offset); offset += OBinarySerializerFactory.TYPE_IDENTIFIER_SIZE; @SuppressWarnings("unchecked") OBinarySerializer<Object> binarySerializer = (OBinarySerializer<Object>) factory.getObjectSerializer(serializerId); final Object key = binarySerializer.deserializeFromByteBufferObject(buffer, walChanges, offset); compositeKey.addKey(key); offset += binarySerializer.getObjectSize(key); } return compositeKey; }