byte[] serializeDocument(Document doc) { if (doc != null) { GrowableByteBuffer buf = new GrowableByteBuffer(); DocumentSerializer serializer = DocumentSerializerFactory.create42(buf); doc.serialize(serializer); buf.flip(); return buf.array(); } else { return new byte[0]; } }
public DocumentSummary(Deserializer buf) { BufferSerializer bser = (BufferSerializer) buf; // This is a trick. This should be done in a different way. bser.order(ByteOrder.BIG_ENDIAN); int vacant4byteOldSeqId = buf.getInt(null); int numSummaries = buf.getInt(null); summaries = new Summary[numSummaries]; if (numSummaries > 0) { int summaryBufferSize = buf.getInt(null); byte[] cArr = bser.getBuf().array(); int start = bser.getBuf().arrayOffset() + bser.position(); bser.position(bser.position() + summaryBufferSize); for(int i=0; i < numSummaries; i++) { int summarySize = buf.getInt(null); int end = start; while (cArr[end++] != 0); try { byte [] sb = new byte [summarySize]; System.arraycopy(cArr, end, sb, 0, summarySize); summaries[i] = new Summary(new String(cArr, start, end-start-1, "utf-8"), sb); start = end + summarySize; } catch (UnsupportedEncodingException e) { throw new RuntimeException("UTF-8 apparently not supported"); } } } } /**
public void serialize(OutputStream out) throws SerializationException { DocumentSerializer writer = DocumentSerializerFactory.create6(new GrowableByteBuffer(64 * 1024, 2.0f)); writer.write(this); GrowableByteBuffer data = writer.getBuf(); byte[] array; if (data.hasArray()) { //just get the array array = data.array(); } else { //copy the bytebuffer into the array array = new byte[data.position()]; int endPos = data.position(); data.position(0); data.get(array); data.position(endPos); } try { out.write(array, 0, data.position()); } catch (IOException ioe) { throw new SerializationException(ioe); } }
if (numHits != 0) { int docIdBufferLength = buf.getInt(null); byte[] cArr = bser.getBuf().array(); int start = bser.getBuf().arrayOffset() + bser.position(); for(int i=0; i < numHits; i++) {
dataSize -= headerSize; byte[] destination = compressor.decompress(compression, getBuf().array(), position(), uncompressedSize, Optional.of(dataSize));
dataSize -= headerSize; byte[] destination = compressor.decompress(compression, getBuf().array(), position(), uncompressedSize, Optional.of(dataSize));
dataSize -= headerSize; byte[] destination = compressor.decompress(compression, getBuf().array(), position(), uncompressedSize, Optional.of(dataSize));
dataSize -= headerSize; byte[] destination = compressor.decompress(compression, getBuf().array(), position(), uncompressedSize, Optional.of(dataSize));