int length() { return capacity(); }
@Override public ByteBuf setLong(int index, long value) { checkIndex0(index, 8); unwrap().setLong(idx(index), value); return this; }
@Override public ByteBuf duplicate() { return unwrap().duplicate().setIndex(idx(readerIndex()), idx(writerIndex())); }
AbstractUnpooledSlicedByteBuf(ByteBuf buffer, int index, int length) { super(length); checkSliceOutOfBounds(index, length, buffer); if (buffer instanceof AbstractUnpooledSlicedByteBuf) { this.buffer = ((AbstractUnpooledSlicedByteBuf) buffer).buffer; adjustment = ((AbstractUnpooledSlicedByteBuf) buffer).adjustment + index; } else if (buffer instanceof DuplicatedByteBuf) { this.buffer = buffer.unwrap(); adjustment = index; } else { this.buffer = buffer; adjustment = index; } initLength(length); writerIndex(length); }
@Override public AbstractByteBuf unwrap() { return (AbstractByteBuf) super.unwrap(); }
static PooledSlicedByteBuf newInstance(AbstractByteBuf unwrapped, ByteBuf wrapped, int index, int length) { checkSliceOutOfBounds(index, length, unwrapped); return newInstance0(unwrapped, wrapped, index, length); }
@Override public boolean hasMemoryAddress() { return unwrap().hasMemoryAddress(); }
@Override public ByteBuf setBytes(int index, ByteBuf src, int srcIndex, int length) { checkIndex0(index, length); unwrap().setBytes(idx(index), src, srcIndex, length); return this; }
@Override public byte[] array() { return unwrap().array(); }
@Override public int forEachByte(int index, int length, ByteProcessor processor) { checkIndex0(index, length); int ret = unwrap().forEachByte(idx(index), length, processor); if (ret >= adjustment) { return ret - adjustment; } else { return -1; } }
@Override public int nioBufferCount() { return unwrap().nioBufferCount(); }
@Override public short getShortLE(int index) { checkIndex0(index, 2); return unwrap().getShortLE(idx(index)); }
@Override public ByteBufAllocator alloc() { return unwrap().alloc(); }
@Override public int getUnsignedMedium(int index) { checkIndex0(index, 3); return unwrap().getUnsignedMedium(idx(index)); }