@Override public ByteBuf retainedDuplicate() { return buf.retainedDuplicate(); }
@Override public ByteBuf retainedDuplicate() { return buf.retainedDuplicate(); }
/** * Returns a buffer containing the {@link #CONNECTION_PREFACE}. */ public static ByteBuf connectionPrefaceBuf() { // Return a duplicate so that modifications to the reader index will not affect the original buffer. return CONNECTION_PREFACE.retainedDuplicate(); }
/** * {@inheritDoc} * <p> * This method calls {@code replace(content().retainedDuplicate())} by default. */ @Override public ByteBufHolder retainedDuplicate() { return replace(data.retainedDuplicate()); }
@Override public ByteBuf retainedDuplicate() { return buf.retainedDuplicate().order(order); }
@Override protected void decode( ChannelHandlerContext channelHandlerContext, ByteBuf in, List<Object> out ) { if ( readMessageBoundary ) { // now we have a complete message in the input buffer // increment ref count of the buffer and create it's duplicate that shares the content // duplicate will be the output of this decoded and input for the next one ByteBuf messageBuf = in.retainedDuplicate(); // signal that whole message was read by making input buffer seem like it was fully read/consumed in.readerIndex( in.readableBytes() ); // pass the full message to the next handler in the pipeline out.add( messageBuf ); readMessageBoundary = false; } }
/** * {@inheritDoc} * <p> * This method calls {@code replace(content().retainedDuplicate())} by default. */ @Override public ByteBufHolder retainedDuplicate() { return replace(data.retainedDuplicate()); }
@Override public ByteBuf retainedDuplicate() { return buf.retainedDuplicate().order(order); }
@Override public PemPrivateKey retainedDuplicate() { return replace(content.retainedDuplicate()); }
@Override public PemX509Certificate retainedDuplicate() { return replace(content.retainedDuplicate()); }
@Override public PemValue retainedDuplicate() { return replace(content.retainedDuplicate()); }
public void initiate() { ByteBuf duplicateBuffer = data.retainedDuplicate(); // duplicatedBuffer has refCnt=1 at this point lastInitTime = System.nanoTime(); ledger.asyncAddEntry(duplicateBuffer, this, ctx); // Internally, asyncAddEntry() is refCnt neutral to respect to the passed buffer and it will keep a ref on it // until is done using it. We need to release this buffer here to balance the 1 refCnt added at the creation // time. duplicateBuffer.release(); }
/** * {@inheritDoc} * <p> * This method calls {@code replace(content().retainedDuplicate())} by default. */ @Override public ByteBufHolder retainedDuplicate() { return replace(data.retainedDuplicate()); }
private static Object safeDuplicate(Object message) { if (message instanceof ByteBuf) { return ((ByteBuf) message).retainedDuplicate(); } else if (message instanceof ByteBufHolder) { return ((ByteBufHolder) message).retainedDuplicate(); } else { return ReferenceCountUtil.retain(message); } }
@Override public DatagramPacket retainedDuplicate() { return replace(content().retainedDuplicate()); }
private static Object safeDuplicate(Object message) { if (message instanceof ByteBuf) { return ((ByteBuf) message).retainedDuplicate(); } else if (message instanceof ByteBufHolder) { return ((ByteBufHolder) message).retainedDuplicate(); } else { return ReferenceCountUtil.retain(message); } }
@Override public DatagramPacket retainedDuplicate() { return replace(content().retainedDuplicate()); }
@Override public DnsRawRecord retainedDuplicate() { return replace(content().retainedDuplicate()); }
public static EntryImpl create(EntryImpl other) { EntryImpl entry = RECYCLER.get(); entry.ledgerId = other.ledgerId; entry.entryId = other.entryId; entry.data = other.data.retainedDuplicate(); entry.setRefCnt(1); return entry; }
private static Object safeDuplicate(Object message) { if (message instanceof ByteBuf) { return ((ByteBuf) message).retainedDuplicate(); } else if (message instanceof ByteBufHolder) { return ((ByteBufHolder) message).retainedDuplicate(); } else { return ReferenceCountUtil.retain(message); } }