flushBuffer(future, buf.retain(), nextPacketOffsetInBlock, syncBlock);
@Override public DefaultHttp2DataFrame retain() { content.retain(); return this; }
@Override public ByteBuf retain(int increment) { buf.retain(increment); return this; }
@Override public SpdyDataFrame retain() { data.retain(); return this; }
@Override public PemX509Certificate retain() { content.retain(); return this; }
@Override public InterfaceHttpData retain() { for (ByteBuf buf: value) { buf.retain(); } return this; }
@Override public FullHttpMessage retain(int increment) { content.retain(increment); return this; }
@Override public HttpContent retain() { content.retain(); return this; }
@Override public ByteBuf retain(int increment) { buf.retain(increment); return this; }
@Override public FullHttpResponse retain() { content.retain(); return this; }
@Override public ByteBuf retain() { buf.retain(); return this; }
@Override public FullHttpMessage retain() { content.retain(); return this; }
@Override public FullHttpRequest retain(int increment) { content.retain(increment); return this; }
@Override public ByteBuf retainedSlice() { return slice().retain(); }
@Override protected void encode(ChannelHandlerContext ctx, ByteBuf msg, List<Object> out) throws Exception { out.add(new SctpMessage(protocolIdentifier, streamIdentifier, unordered, msg.retain())); } }
private static Object encodeAndRetain(Object msg) { if (msg instanceof ByteBuf) { return ((ByteBuf) msg).retain(); } if (msg instanceof HttpContent) { return ((HttpContent) msg).content().retain(); } if (msg instanceof FileRegion) { return ((FileRegion) msg).retain(); } throw new IllegalStateException("unexpected message type: " + StringUtil.simpleClassName(msg)); }
private static void appendPartialContent(CompositeByteBuf content, ByteBuf partialContent) { if (partialContent.isReadable()) { content.addComponent(true, partialContent.retain()); } }
private void decode(ByteBuf in, List<Object> out) { // call retain here as it will call release after its written to the channel decoder.writeInbound(in.retain()); fetchDecoderOutput(out); }
private void encode(ByteBuf in, List<Object> out) { // call retain here as it will call release after its written to the channel encoder.writeOutbound(in.retain()); fetchEncoderOutput(out); }
private void encodeLastContent(LastHttpContent last, List<Object> out) { boolean needFiller = !(last instanceof FullHttpMessage) && last.trailingHeaders().isEmpty(); if (last.content().isReadable() || needFiller) { out.add(new DefaultHttp2DataFrame(last.content().retain(), last.trailingHeaders().isEmpty())); } if (!last.trailingHeaders().isEmpty()) { Http2Headers headers = HttpConversionUtil.toHttp2Headers(last.trailingHeaders(), validateHeaders); out.add(new DefaultHttp2HeadersFrame(headers, true)); } }