final class PooledSlicedByteBuf extends AbstractPooledDerivedByteBuf
Modifier and Type | Field and Description |
---|---|
(package private) int |
adjustment |
private static Recycler<PooledSlicedByteBuf> |
RECYCLER |
leakDetector, readerIndex, writerIndex
Modifier | Constructor and Description |
---|---|
private |
PooledSlicedByteBuf(Recycler.Handle<PooledSlicedByteBuf> handle) |
Modifier and Type | Method and Description |
---|---|
protected byte |
_getByte(int index) |
protected int |
_getInt(int index) |
protected int |
_getIntLE(int index) |
protected long |
_getLong(int index) |
protected long |
_getLongLE(int index) |
protected short |
_getShort(int index) |
protected short |
_getShortLE(int index) |
protected int |
_getUnsignedMedium(int index) |
protected int |
_getUnsignedMediumLE(int index) |
protected void |
_setByte(int index,
int value) |
protected void |
_setInt(int index,
int value) |
protected void |
_setIntLE(int index,
int value) |
protected void |
_setLong(int index,
long value) |
protected void |
_setLongLE(int index,
long value) |
protected void |
_setMedium(int index,
int value) |
protected void |
_setMediumLE(int index,
int value) |
protected void |
_setShort(int index,
int value) |
protected void |
_setShortLE(int index,
int value) |
int |
arrayOffset()
Returns the offset of the first byte within the backing byte array of
this buffer.
|
int |
capacity()
Returns the number of bytes (octets) this buffer can contain.
|
ByteBuf |
capacity(int newCapacity)
Adjusts the capacity of this buffer.
|
ByteBuf |
copy(int index,
int length)
Returns a copy of this buffer's sub-region.
|
ByteBuf |
duplicate()
Returns a buffer which shares the whole region of this buffer.
|
int |
forEachByte(int index,
int length,
ByteProcessor processor)
Iterates over the specified area of this buffer with the specified
processor in ascending order. |
int |
forEachByteDesc(int index,
int length,
ByteProcessor processor)
Iterates over the specified area of this buffer with the specified
processor in descending order. |
byte |
getByte(int index)
Gets a byte at the specified absolute
index in this buffer. |
ByteBuf |
getBytes(int index,
byte[] dst,
int dstIndex,
int length)
Transfers this buffer's data to the specified destination starting at
the specified absolute
index . |
ByteBuf |
getBytes(int index,
java.nio.ByteBuffer dst)
Transfers this buffer's data to the specified destination starting at
the specified absolute
index until the destination's position
reaches its limit. |
ByteBuf |
getBytes(int index,
ByteBuf dst,
int dstIndex,
int length)
Transfers this buffer's data to the specified destination starting at
the specified absolute
index . |
int |
getBytes(int index,
java.nio.channels.FileChannel out,
long position,
int length)
Transfers this buffer's data starting at the specified absolute
index
to the specified channel starting at the given file position. |
int |
getBytes(int index,
java.nio.channels.GatheringByteChannel out,
int length)
Transfers this buffer's data to the specified channel starting at the
specified absolute
index . |
ByteBuf |
getBytes(int index,
java.io.OutputStream out,
int length)
Transfers this buffer's data to the specified stream starting at the
specified absolute
index . |
int |
getInt(int index)
Gets a 32-bit integer at the specified absolute
index in
this buffer. |
int |
getIntLE(int index)
Gets a 32-bit integer at the specified absolute
index in
this buffer with Little Endian Byte Order. |
long |
getLong(int index)
Gets a 64-bit long integer at the specified absolute
index in
this buffer. |
long |
getLongLE(int index)
Gets a 64-bit long integer at the specified absolute
index in
this buffer in Little Endian Byte Order. |
short |
getShort(int index)
Gets a 16-bit short integer at the specified absolute
index in
this buffer. |
short |
getShortLE(int index)
Gets a 16-bit short integer at the specified absolute
index in
this buffer in Little Endian Byte Order. |
int |
getUnsignedMedium(int index)
Gets an unsigned 24-bit medium integer at the specified absolute
index in this buffer. |
int |
getUnsignedMediumLE(int index)
Gets an unsigned 24-bit medium integer at the specified absolute
index in this buffer in Little Endian Byte Order. |
private int |
idx(int index) |
long |
memoryAddress()
Returns the low-level memory address that point to the first byte of ths backing data.
|
(package private) static PooledSlicedByteBuf |
newInstance(AbstractByteBuf unwrapped,
ByteBuf wrapped,
int index,
int length) |
private static PooledSlicedByteBuf |
newInstance0(AbstractByteBuf unwrapped,
ByteBuf wrapped,
int adjustment,
int length) |
java.nio.ByteBuffer |
nioBuffer(int index,
int length)
Exposes this buffer's sub-region as an NIO
ByteBuffer . |
java.nio.ByteBuffer[] |
nioBuffers(int index,
int length)
Exposes this buffer's bytes as an NIO
ByteBuffer 's for the specified index and length
The returned buffer shares the content with this buffer, while changing the position and limit
of the returned NIO buffer does not affect the indexes and marks of this buffer. |
ByteBuf |
retainedDuplicate()
Returns a retained buffer which shares the whole region of this buffer.
|
ByteBuf |
retainedSlice(int index,
int length)
Returns a retained slice of this buffer's sub-region.
|
ByteBuf |
setByte(int index,
int value)
Sets the specified byte at the specified absolute
index in this
buffer. |
ByteBuf |
setBytes(int index,
byte[] src,
int srcIndex,
int length)
Transfers the specified source array's data to this buffer starting at
the specified absolute
index . |
ByteBuf |
setBytes(int index,
java.nio.ByteBuffer src)
Transfers the specified source buffer's data to this buffer starting at
the specified absolute
index until the source buffer's position
reaches its limit. |
ByteBuf |
setBytes(int index,
ByteBuf src,
int srcIndex,
int length)
Transfers the specified source buffer's data to this buffer starting at
the specified absolute
index . |
int |
setBytes(int index,
java.nio.channels.FileChannel in,
long position,
int length)
Transfers the content of the specified source channel starting at the given file position
to this buffer starting at the specified absolute
index . |
int |
setBytes(int index,
java.io.InputStream in,
int length)
Transfers the content of the specified source stream to this buffer
starting at the specified absolute
index . |
int |
setBytes(int index,
java.nio.channels.ScatteringByteChannel in,
int length)
Transfers the content of the specified source channel to this buffer
starting at the specified absolute
index . |
ByteBuf |
setInt(int index,
int value)
Sets the specified 32-bit integer at the specified absolute
index in this buffer. |
ByteBuf |
setIntLE(int index,
int value)
Sets the specified 32-bit integer at the specified absolute
index in this buffer with Little Endian byte order
. |
ByteBuf |
setLong(int index,
long value)
Sets the specified 64-bit long integer at the specified absolute
index in this buffer. |
ByteBuf |
setLongLE(int index,
long value)
Sets the specified 64-bit long integer at the specified absolute
index in this buffer in Little Endian Byte Order. |
ByteBuf |
setMedium(int index,
int value)
Sets the specified 24-bit medium integer at the specified absolute
index in this buffer. |
ByteBuf |
setMediumLE(int index,
int value)
Sets the specified 24-bit medium integer at the specified absolute
index in this buffer in the Little Endian Byte Order. |
ByteBuf |
setShort(int index,
int value)
Sets the specified 16-bit short integer at the specified absolute
index in this buffer. |
ByteBuf |
setShortLE(int index,
int value)
Sets the specified 16-bit short integer at the specified absolute
index in this buffer with the Little Endian Byte Order. |
ByteBuf |
slice(int index,
int length)
Returns a slice of this buffer's sub-region.
|
alloc, array, deallocate, duplicate0, hasArray, hasMemoryAddress, init, internalNioBuffer, isDirect, isReadOnly, nioBufferCount, order, parent, retainedSlice, unwrap
refCnt, release, release, retain, retain, setRefCnt, touch, touch
adjustMarkers, asReadOnly, bytesBefore, bytesBefore, bytesBefore, checkDstIndex, checkIndex, checkIndex, checkIndex0, checkNewCapacity, checkReadableBytes, checkSrcIndex, clear, compareTo, copy, discardMarks, discardReadBytes, discardSomeReadBytes, ensureAccessible, ensureWritable, ensureWritable, equals, forEachByte, forEachByteDesc, getBoolean, getBytes, getBytes, getBytes, getChar, getCharSequence, getDouble, getFloat, getMedium, getMediumLE, getUnsignedByte, getUnsignedInt, getUnsignedIntLE, getUnsignedShort, getUnsignedShortLE, hashCode, indexOf, isReadable, isReadable, isWritable, isWritable, markReaderIndex, markWriterIndex, maxCapacity, maxCapacity, maxWritableBytes, newSwappedByteBuf, nioBuffer, nioBuffers, order, readableBytes, readBoolean, readByte, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readChar, readCharSequence, readDouble, readerIndex, readerIndex, readFloat, readInt, readIntLE, readLong, readLongLE, readMedium, readMediumLE, readRetainedSlice, readShort, readShortLE, readSlice, readUnsignedByte, readUnsignedInt, readUnsignedIntLE, readUnsignedMedium, readUnsignedMediumLE, readUnsignedShort, readUnsignedShortLE, resetReaderIndex, resetWriterIndex, setBoolean, setBytes, setBytes, setBytes, setChar, setCharSequence, setDouble, setFloat, setIndex, setIndex0, setZero, skipBytes, slice, toString, toString, toString, writableBytes, writeBoolean, writeByte, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeChar, writeCharSequence, writeDouble, writeFloat, writeInt, writeIntLE, writeLong, writeLongLE, writeMedium, writeMediumLE, writerIndex, writerIndex, writeShort, writeShortLE, writeZero
private static final Recycler<PooledSlicedByteBuf> RECYCLER
int adjustment
private PooledSlicedByteBuf(Recycler.Handle<PooledSlicedByteBuf> handle)
static PooledSlicedByteBuf newInstance(AbstractByteBuf unwrapped, ByteBuf wrapped, int index, int length)
private static PooledSlicedByteBuf newInstance0(AbstractByteBuf unwrapped, ByteBuf wrapped, int adjustment, int length)
public int capacity()
ByteBuf
public ByteBuf capacity(int newCapacity)
ByteBuf
newCapacity
is less than the current
capacity, the content of this buffer is truncated. If the newCapacity
is greater
than the current capacity, the buffer is appended with unspecified data whose length is
(newCapacity - currentCapacity)
.public int arrayOffset()
ByteBuf
arrayOffset
in class ByteBuf
public long memoryAddress()
ByteBuf
memoryAddress
in class ByteBuf
public java.nio.ByteBuffer nioBuffer(int index, int length)
ByteBuf
ByteBuffer
. The returned buffer
shares the content with this buffer, while changing the position and limit of the returned
NIO buffer does not affect the indexes and marks of this buffer. This method does not
modify readerIndex
or writerIndex
of this buffer. Please note that the
returned NIO buffer will not see the changes of this buffer if this buffer is a dynamic
buffer and it adjusted its capacity.nioBuffer
in class ByteBuf
ByteBuf.nioBufferCount()
,
ByteBuf.nioBuffers()
,
ByteBuf.nioBuffers(int, int)
public java.nio.ByteBuffer[] nioBuffers(int index, int length)
ByteBuf
ByteBuffer
's for the specified index and length
The returned buffer shares the content with this buffer, while changing the position and limit
of the returned NIO buffer does not affect the indexes and marks of this buffer. This method does
not modify readerIndex
or writerIndex
of this buffer. Please note that the
returned NIO buffer will not see the changes of this buffer if this buffer is a dynamic
buffer and it adjusted its capacity.nioBuffers
in class ByteBuf
ByteBuf.nioBufferCount()
,
ByteBuf.nioBuffer()
,
ByteBuf.nioBuffer(int, int)
public ByteBuf copy(int index, int length)
ByteBuf
readerIndex
or writerIndex
of
this buffer.public ByteBuf slice(int index, int length)
ByteBuf
readerIndex
or writerIndex
of
this buffer.
Also be aware that this method will NOT call ByteBuf.retain()
and so the
reference count will NOT be increased.
slice
in class AbstractPooledDerivedByteBuf
public ByteBuf retainedSlice(int index, int length)
ByteBuf
readerIndex
or writerIndex
of
this buffer.
Note that this method returns a retained buffer unlike ByteBuf.slice(int, int)
.
This method behaves similarly to slice(...).retain()
except that this method may return
a buffer implementation that produces less garbage.
retainedSlice
in class AbstractByteBuf
public ByteBuf duplicate()
ByteBuf
readerIndex
or writerIndex
of
this buffer.
The reader and writer marks will not be duplicated. Also be aware that this method will
NOT call ByteBuf.retain()
and so the reference count will NOT be increased.
duplicate
in class AbstractByteBuf
ByteBuf.slice()
.
However this buffer will share the capacity of the underlying buffer, and therefore allows access to all of the
underlying content if necessary.public ByteBuf retainedDuplicate()
ByteBuf
buf.slice(0, buf.capacity())
.
This method does not modify readerIndex
or writerIndex
of
this buffer.
Note that this method returns a retained buffer unlike ByteBuf.slice(int, int)
.
This method behaves similarly to duplicate().retain()
except that this method may return
a buffer implementation that produces less garbage.
retainedDuplicate
in class AbstractByteBuf
public byte getByte(int index)
ByteBuf
index
in this buffer.
This method does not modify readerIndex
or writerIndex
of
this buffer.getByte
in class AbstractByteBuf
protected byte _getByte(int index)
_getByte
in class AbstractByteBuf
public short getShort(int index)
ByteBuf
index
in
this buffer. This method does not modify readerIndex
or
writerIndex
of this buffer.getShort
in class AbstractByteBuf
protected short _getShort(int index)
_getShort
in class AbstractByteBuf
public short getShortLE(int index)
ByteBuf
index
in
this buffer in Little Endian Byte Order. This method does not modify
readerIndex
or writerIndex
of this buffer.getShortLE
in class AbstractByteBuf
protected short _getShortLE(int index)
_getShortLE
in class AbstractByteBuf
public int getUnsignedMedium(int index)
ByteBuf
index
in this buffer. This method does not modify
readerIndex
or writerIndex
of this buffer.getUnsignedMedium
in class AbstractByteBuf
protected int _getUnsignedMedium(int index)
_getUnsignedMedium
in class AbstractByteBuf
public int getUnsignedMediumLE(int index)
ByteBuf
index
in this buffer in Little Endian Byte Order.
This method does not modify readerIndex
or
writerIndex
of this buffer.getUnsignedMediumLE
in class AbstractByteBuf
protected int _getUnsignedMediumLE(int index)
_getUnsignedMediumLE
in class AbstractByteBuf
public int getInt(int index)
ByteBuf
index
in
this buffer. This method does not modify readerIndex
or
writerIndex
of this buffer.getInt
in class AbstractByteBuf
protected int _getInt(int index)
_getInt
in class AbstractByteBuf
public int getIntLE(int index)
ByteBuf
index
in
this buffer with Little Endian Byte Order. This method does not
modify readerIndex
or writerIndex
of this buffer.getIntLE
in class AbstractByteBuf
protected int _getIntLE(int index)
_getIntLE
in class AbstractByteBuf
public long getLong(int index)
ByteBuf
index
in
this buffer. This method does not modify readerIndex
or
writerIndex
of this buffer.getLong
in class AbstractByteBuf
protected long _getLong(int index)
_getLong
in class AbstractByteBuf
public long getLongLE(int index)
ByteBuf
index
in
this buffer in Little Endian Byte Order. This method does not
modify readerIndex
or writerIndex
of this buffer.getLongLE
in class AbstractByteBuf
protected long _getLongLE(int index)
_getLongLE
in class AbstractByteBuf
public ByteBuf getBytes(int index, ByteBuf dst, int dstIndex, int length)
ByteBuf
index
.
This method does not modify readerIndex
or writerIndex
of both the source (i.e. this
) and the destination.public ByteBuf getBytes(int index, byte[] dst, int dstIndex, int length)
ByteBuf
index
.
This method does not modify readerIndex
or writerIndex
of this buffer.public ByteBuf getBytes(int index, java.nio.ByteBuffer dst)
ByteBuf
index
until the destination's position
reaches its limit.
This method does not modify readerIndex
or writerIndex
of
this buffer while the destination's position
will be increased.public ByteBuf setByte(int index, int value)
ByteBuf
index
in this
buffer. The 24 high-order bits of the specified value are ignored.
This method does not modify readerIndex
or writerIndex
of
this buffer.setByte
in class AbstractByteBuf
protected void _setByte(int index, int value)
_setByte
in class AbstractByteBuf
public ByteBuf setShort(int index, int value)
ByteBuf
index
in this buffer. The 16 high-order bits of the specified
value are ignored.
This method does not modify readerIndex
or writerIndex
of
this buffer.setShort
in class AbstractByteBuf
protected void _setShort(int index, int value)
_setShort
in class AbstractByteBuf
public ByteBuf setShortLE(int index, int value)
ByteBuf
index
in this buffer with the Little Endian Byte Order.
The 16 high-order bits of the specified value are ignored.
This method does not modify readerIndex
or writerIndex
of
this buffer.setShortLE
in class AbstractByteBuf
protected void _setShortLE(int index, int value)
_setShortLE
in class AbstractByteBuf
public ByteBuf setMedium(int index, int value)
ByteBuf
index
in this buffer. Please note that the most significant
byte is ignored in the specified value.
This method does not modify readerIndex
or writerIndex
of
this buffer.setMedium
in class AbstractByteBuf
protected void _setMedium(int index, int value)
_setMedium
in class AbstractByteBuf
public ByteBuf setMediumLE(int index, int value)
ByteBuf
index
in this buffer in the Little Endian Byte Order.
Please note that the most significant byte is ignored in the
specified value.
This method does not modify readerIndex
or writerIndex
of
this buffer.setMediumLE
in class AbstractByteBuf
protected void _setMediumLE(int index, int value)
_setMediumLE
in class AbstractByteBuf
public ByteBuf setInt(int index, int value)
ByteBuf
index
in this buffer.
This method does not modify readerIndex
or writerIndex
of
this buffer.setInt
in class AbstractByteBuf
protected void _setInt(int index, int value)
_setInt
in class AbstractByteBuf
public ByteBuf setIntLE(int index, int value)
ByteBuf
index
in this buffer with Little Endian byte order
.
This method does not modify readerIndex
or writerIndex
of
this buffer.setIntLE
in class AbstractByteBuf
protected void _setIntLE(int index, int value)
_setIntLE
in class AbstractByteBuf
public ByteBuf setLong(int index, long value)
ByteBuf
index
in this buffer.
This method does not modify readerIndex
or writerIndex
of
this buffer.setLong
in class AbstractByteBuf
protected void _setLong(int index, long value)
_setLong
in class AbstractByteBuf
public ByteBuf setLongLE(int index, long value)
ByteBuf
index
in this buffer in Little Endian Byte Order.
This method does not modify readerIndex
or writerIndex
of
this buffer.setLongLE
in class AbstractByteBuf
protected void _setLongLE(int index, long value)
_setLongLE
in class AbstractByteBuf
public ByteBuf setBytes(int index, byte[] src, int srcIndex, int length)
ByteBuf
index
.
This method does not modify readerIndex
or writerIndex
of
this buffer.public ByteBuf setBytes(int index, ByteBuf src, int srcIndex, int length)
ByteBuf
index
.
This method does not modify readerIndex
or writerIndex
of both the source (i.e. this
) and the destination.public ByteBuf setBytes(int index, java.nio.ByteBuffer src)
ByteBuf
index
until the source buffer's position
reaches its limit.
This method does not modify readerIndex
or writerIndex
of
this buffer.public ByteBuf getBytes(int index, java.io.OutputStream out, int length) throws java.io.IOException
ByteBuf
index
.
This method does not modify readerIndex
or writerIndex
of
this buffer.public int getBytes(int index, java.nio.channels.GatheringByteChannel out, int length) throws java.io.IOException
ByteBuf
index
.
This method does not modify readerIndex
or writerIndex
of
this buffer.public int getBytes(int index, java.nio.channels.FileChannel out, long position, int length) throws java.io.IOException
ByteBuf
index
to the specified channel starting at the given file position.
This method does not modify readerIndex
or writerIndex
of
this buffer. This method does not modify the channel's position.getBytes
in class ByteBuf
position
- the file position at which the transfer is to beginlength
- the maximum number of bytes to transferjava.io.IOException
- if the specified channel threw an exception during I/Opublic int setBytes(int index, java.io.InputStream in, int length) throws java.io.IOException
ByteBuf
index
.
This method does not modify readerIndex
or writerIndex
of
this buffer.public int setBytes(int index, java.nio.channels.ScatteringByteChannel in, int length) throws java.io.IOException
ByteBuf
index
.
This method does not modify readerIndex
or writerIndex
of
this buffer.public int setBytes(int index, java.nio.channels.FileChannel in, long position, int length) throws java.io.IOException
ByteBuf
index
.
This method does not modify readerIndex
or writerIndex
of
this buffer. This method does not modify the channel's position.setBytes
in class ByteBuf
position
- the file position at which the transfer is to beginlength
- the maximum number of bytes to transfer-1
if the specified channel is closed.java.io.IOException
- if the specified channel threw an exception during I/Opublic int forEachByte(int index, int length, ByteProcessor processor)
ByteBuf
processor
in ascending order.
(i.e. index
, (index + 1)
, .. (index + length - 1)
)forEachByte
in class AbstractByteBuf
-1
if the processor iterated to or beyond the end of the specified area.
The last-visited index If the ByteProcessor.process(byte)
returned false
.public int forEachByteDesc(int index, int length, ByteProcessor processor)
ByteBuf
processor
in descending order.
(i.e. (index + length - 1)
, (index + length - 2)
, ... index
)forEachByteDesc
in class AbstractByteBuf
-1
if the processor iterated to or beyond the beginning of the specified area.
The last-visited index If the ByteProcessor.process(byte)
returned false
.private int idx(int index)