/** * Creates a new big-endian dynamic buffer whose estimated data length is * {@code 256} bytes. The new buffer's {@code readerIndex} and * {@code writerIndex} are {@code 0}. */ public static ChannelBuffer dynamicBuffer() { return dynamicBuffer(BIG_ENDIAN, 256); }
/** * Creates a new big-endian dynamic buffer with the specified estimated * data length. More accurate estimation yields less unexpected * reallocation overhead. The new buffer's {@code readerIndex} and * {@code writerIndex} are {@code 0}. */ public static ChannelBuffer dynamicBuffer(int estimatedLength) { return dynamicBuffer(BIG_ENDIAN, estimatedLength); }
public NettyMessageBuffer() { buffer = ChannelBuffers.dynamicBuffer(); }
/** * Calls {@link #ChannelBufferByteOutput(ChannelBuffer)} with a dynamic {@link ChannelBuffer} */ public ChannelBufferByteOutput(ChannelBufferFactory factory, int estimatedLength) { this(ChannelBuffers.dynamicBuffer(estimatedLength, factory)); }
public NettyMessageBuffer() { buffer = ChannelBuffers.dynamicBuffer(); }
@Override public ChannelBuffer getBuffer(int capacity) { return new NettyBackedChannelBuffer(ChannelBuffers.dynamicBuffer(capacity)); }
@Override public ChannelBuffer getBuffer(int capacity) { return new NettyBackedChannelBuffer(ChannelBuffers.dynamicBuffer(capacity)); }
@Override public ChannelBuffer getBuffer(byte[] array, int offset, int length) { org.jboss.netty.buffer.ChannelBuffer buffer = ChannelBuffers.dynamicBuffer(length); buffer.writeBytes(array, offset, length); return new NettyBackedChannelBuffer(buffer); }
@Override public ChannelBuffer getBuffer(byte[] array, int offset, int length) { org.jboss.netty.buffer.ChannelBuffer buffer = ChannelBuffers.dynamicBuffer(length); buffer.writeBytes(array, offset, length); return new NettyBackedChannelBuffer(buffer); }
private void ensureBuffer() { if (decompressed == null) { decompressed = ChannelBuffers.dynamicBuffer(DEFAULT_BUFFER_CAPACITY); } decompressed.ensureWritableBytes(1); }
public void setContent(InputStream inputStream) throws IOException { if (inputStream == null) { throw new NullPointerException("inputStream"); } ChannelBuffer buffer = ChannelBuffers.dynamicBuffer(); byte[] bytes = new byte[4096 * 4]; int read = inputStream.read(bytes); int written = 0; while (read > 0) { buffer.writeBytes(bytes, 0, read); written += read; checkSize(written); read = inputStream.read(bytes); } size = written; if (definedSize > 0 && definedSize < size) { throw new IOException("Out of size: " + size + " > " + definedSize); } channelBuffer = buffer; completed = true; }
public HttpResponse sendResponse(HttpResponseStatus responseCode, String responseBody) { String actualResponseBody = responseBody + "\n"; HttpResponse response = new DefaultHttpResponse(HTTP_1_1, responseCode); response.setHeader(CONTENT_LENGTH, actualResponseBody.length()); ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); try { outputStream.write(actualResponseBody.getBytes()); } catch(IOException e) { logger.error("IOException while trying to write the outputStream for an admin response", e); throw new RuntimeException(e); } ChannelBuffer responseContent = ChannelBuffers.dynamicBuffer(); responseContent.writeBytes(outputStream.toByteArray()); response.setContent(responseContent); if (logger.isDebugEnabled()) { logger.debug("Sent " + response); } return response; }
public void writeObject(Object obj) throws IOException { ChannelBufferOutputStream bout = new ChannelBufferOutputStream( ChannelBuffers.dynamicBuffer(estimatedLength)); ObjectOutputStream oout = new CompactObjectOutputStream(bout); oout.writeObject(obj); oout.flush(); oout.close(); ChannelBuffer buffer = bout.buffer(); int objectSize = buffer.readableBytes(); writeInt(objectSize); buffer.getBytes(0, this, objectSize); }
private ChannelBuffer buffer(ChannelHandlerContext ctx) throws Exception { ChannelBuffer buf = buffer.get(); if (buf == null) { ChannelBufferFactory factory = ctx.getChannel().getConfig().getBufferFactory(); buf = ChannelBuffers.dynamicBuffer(factory); if (buffer.compareAndSet(null, buf)) { boolean success = false; try { oout = newObjectOutputStream(new ChannelBufferOutputStream(buf)); success = true; } finally { if (!success) { oout = null; } } } else { buf = buffer.get(); } } return buf; } }
@Override public synchronized ChannelBuffer encode(SpdyHeadersFrame frame) throws Exception { if (frame == null) { throw new IllegalArgumentException("frame"); } if (finished) { return ChannelBuffers.EMPTY_BUFFER; } ChannelBuffer decompressed = super.encode(frame); if (decompressed.readableBytes() == 0) { return ChannelBuffers.EMPTY_BUFFER; } ChannelBuffer compressed = ChannelBuffers.dynamicBuffer(); setInput(decompressed); encode(compressed); return compressed; }
@Override protected Object encode(ChannelHandlerContext ctx, Channel channel, Object msg) throws Exception { ChannelBufferOutputStream bout = new ChannelBufferOutputStream(dynamicBuffer( estimatedLength, ctx.getChannel().getConfig().getBufferFactory())); bout.write(LENGTH_PLACEHOLDER); ObjectOutputStream oout = new CompactObjectOutputStream(bout); oout.writeObject(msg); oout.flush(); oout.close(); ChannelBuffer encoded = bout.buffer(); encoded.setInt(0, encoded.writerIndex() - 4); return encoded; } }
@Override public synchronized ChannelBuffer encode(SpdyHeadersFrame frame) throws Exception { if (frame == null) { throw new IllegalArgumentException("frame"); } if (finished) { return ChannelBuffers.EMPTY_BUFFER; } ChannelBuffer decompressed = super.encode(frame); if (decompressed.readableBytes() == 0) { return ChannelBuffers.EMPTY_BUFFER; } ChannelBuffer compressed = ChannelBuffers.dynamicBuffer(decompressed.readableBytes()); int len = setInput(decompressed); encode(compressed); decompressed.skipBytes(len); return compressed; }
@Override public void sendResponse(StoreStats performanceStats, boolean isFromLocalZone, long startTimeInMs) throws Exception { String base64Key = RestUtils.encodeVoldemortKey(key.get()); String contentLocationKey = "/" + this.storeName + "/" + base64Key; List<VectorClock> vectorClocks = new ArrayList<VectorClock>(); for(Version versionedValue: versionedValues) { VectorClock vectorClock = (VectorClock) versionedValue; vectorClocks.add(vectorClock); numVectorClockEntries += vectorClock.getVersionMap().size(); } String eTags = RestUtils.getSerializedVectorClocks(vectorClocks); byte[] responseContent = eTags.getBytes(); ChannelBuffer responseContentBuffer = ChannelBuffers.dynamicBuffer(responseContent.length); responseContentBuffer.writeBytes(responseContent); // Create the Response object HttpResponse response = new DefaultHttpResponse(HTTP_1_1, OK); // Set the right headers response.setHeader(CONTENT_TYPE, "binary"); response.setHeader(CONTENT_TRANSFER_ENCODING, "binary"); response.setHeader(CONTENT_LOCATION, contentLocationKey); // Copy the data into the payload response.setContent(responseContentBuffer); response.setHeader(CONTENT_LENGTH, response.getContent().readableBytes()); // Write the response to the Netty Channel this.messageEvent.getChannel().write(response); }
long startTimeInMs) throws Exception { ChannelBuffer responseContent = ChannelBuffers.dynamicBuffer(this.responseValue.length); responseContent.writeBytes(responseValue);
@Override void decode(ChannelBuffer headerBlock, SpdyHeadersFrame frame) throws Exception { if (headerBlock == null) { throw new NullPointerException("headerBlock"); } if (frame == null) { throw new NullPointerException("frame"); } if (cumulation == null) { decodeHeaderBlock(headerBlock, frame); if (headerBlock.readable()) { cumulation = ChannelBuffers.dynamicBuffer(headerBlock.readableBytes()); cumulation.writeBytes(headerBlock); } } else { cumulation.writeBytes(headerBlock); decodeHeaderBlock(cumulation, frame); if (cumulation.readable()) { cumulation.discardReadBytes(); } else { cumulation = null; } } }