/** * Set stream buffer, and reset the counter. * * @param buf new buffer * @return old buffer */ public void setBuffer(byte[] buf) { setBuffer(buf, 0); }
/** * @return buffer that might be used by the GSByteArrayOutputStream */ private ByteBuffer prepareStream() throws IOException { ByteBuffer byteBuffer = _bufferCache.get(); byte[] streamBuffer = byteBuffer.array(); _baos.setBuffer(streamBuffer, LENGTH_SIZE); // 4 bytes for size return byteBuffer; }
PacketSerializer(int initBufferSize, IPacketStreamSerializer<T> packetStreamSerializer) { _packetStreamSerializer = packetStreamSerializer; _buffer = new byte[initBufferSize]; _gsByteOutputStream = new GSByteArrayOutputStream(); _gsByteOutputStream.setBuffer(_buffer); _byteBuffer = ByteBuffer.wrap(_buffer); try { _oss = new ByteBufferObjectOutputStream(_gsByteOutputStream); } catch (IOException e) { throw new RuntimeException("Internal error creating PacketSerializer", e); } }
private MarshObject getMarshObjectInternal(Object o, boolean init) throws IOException { byte[] bc; if (init) { bc = serializeToByteArray(o); } else { _bao.setBuffer(_byteArrayCache.get()); _bao.reset(); // check for next time if (++zipEntryCounter < MAX_ENTRIES) { _zo.putNextEntry(new ZipEntry(Integer.toString(zipEntryCounter))); _oo.reset(); } else // open new zip OutputStream for next time { zipEntryCounter = 0; _zo = new ZipOutputStream(_bao); _zo.setLevel(_level); _zo.putNextEntry(new ZipEntry(Integer.toString(zipEntryCounter))); _oo = getObjectOutputStream(_zo); // remove ObjectOutputStream header from zip stream _zo.closeEntry(); _bao.reset(); _zo.putNextEntry(new ZipEntry(Integer.toString(++zipEntryCounter))); _oo.reset(); } bc = serializeToByteArray(o); _byteArrayCache.notifyUsedSize(bc.length); _bao.setBuffer(DUMMY_BUFFER); } return new CompressedMarshObject(bc); }
private MarshObject getMarshObjectInternal(Object o, boolean init) throws IOException { byte[] bc; if (init) { bc = serializeToByteArray(o); } else { // We need to reset state and pass this indication to the // deserializing stream _bao.setBuffer(_byteArrayCache.get()); _oo.reset(); bc = serializeToByteArray(o); _byteArrayCache.notifyUsedSize(bc.length); _bao.setBuffer(DUMMY_BUFFER); _oo.reset(); } MarshObject marObj = new MarshObject(bc); return marObj; }
bos.setBuffer(DUMMY_BUFFER); // set DUMMY_BUFFER to release the strong reference to the byte[] bos.reset(); mos.reset();