public class UnpooledUnsafeDirectByteBuf extends AbstractReferenceCountedByteBuf
ByteBuffer based buffer. It is recommended to use
AbstractByteBufAllocator.directBuffer(int, int), Unpooled.directBuffer(int) and
Unpooled.wrappedBuffer(ByteBuffer) instead of calling the constructor explicitly.}| Modifier | Constructor and Description |
|---|---|
protected |
UnpooledUnsafeDirectByteBuf (ByteBufAllocator alloc,
java.nio.ByteBuffer initialBuffer,
int maxCapacity)
Creates a new direct buffer by wrapping the specified initial buffer.
|
UnpooledUnsafeDirectByteBuf (ByteBufAllocator alloc,
int initialCapacity,
int maxCapacity)
Creates a new direct buffer.
|
| Modifier and Type | Method and Description |
|---|---|
protected byte |
_getByte (int index) |
protected int |
_getInt (int index) |
protected long |
_getLong (int index) |
protected short |
_getShort (int index) |
protected int |
_getUnsignedMedium (int index) |
protected void |
_setByte (int index,
int value) |
protected void |
_setInt (int index,
int value) |
protected void |
_setLong (int index,
long value) |
protected void |
_setMedium (int index,
int value) |
protected void |
_setShort (int index,
int value) |
ByteBufAllocator |
alloc ()
Returns the
ByteBufAllocator which created this buffer. |
protected java.nio.ByteBuffer |
allocateDirect (int initialCapacity)
Allocate a new direct
ByteBuffer with the given initialCapacity. |
byte[] |
array ()
Returns the backing byte array of this buffer.
|
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.
|
protected void |
deallocate ()
Called once
AbstractReferenceCountedByteBuf.refCnt() is equals 0. |
protected void |
freeDirect (java.nio.ByteBuffer buffer)
Free a direct
ByteBuffer |
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.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. |
boolean |
hasArray ()
Returns
true if and only if this buffer has a backing byte array. |
boolean |
hasMemoryAddress ()
Returns
true if and only if this buffer has a reference to the low-level memory address that points
to the backing data. |
java.nio.ByteBuffer |
internalNioBuffer (int index,
int length)
Internal use only: Exposes the internal NIO buffer.
|
boolean |
isDirect ()
Returns
true if and only if this buffer is backed by an
NIO direct buffer. |
long |
memoryAddress ()
Returns the low-level memory address that point to the first byte of ths backing data.
|
protected SwappedByteBuf |
newSwappedByteBuf ()
Creates a new
SwappedByteBuf for this ByteBuf instance. |
java.nio.ByteBuffer |
nioBuffer (int index,
int length)
Exposes this buffer's sub-region as an NIO
ByteBuffer. |
int |
nioBufferCount ()
Returns the maximum number of NIO
ByteBuffers that consist this buffer. |
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 either share or contains the copied content of this buffer, while changing
the position and limit of the returned NIO buffer does not affect the indexes and marks of this buffer. |
java.nio.ByteOrder |
order ()
Returns the endianness
of this buffer.
|
ByteBuf |
readBytes (java.nio.ByteBuffer dst)
Transfers this buffer's data to the specified destination starting at
the current
readerIndex until the destination's position
reaches its limit, and increases the readerIndex by the
number of the transferred bytes. |
int |
readBytes (java.nio.channels.GatheringByteChannel out,
int length)
Transfers this buffer's data to the specified stream starting at the
current
readerIndex. |
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.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 |
setZero (int index,
int length)
Fills this buffer with NUL (0x00) starting at the specified
absolute
index. |
ByteBuf |
unwrap ()
Return the underlying buffer instance if this buffer is a wrapper of another buffer.
|
ByteBuf |
writeZero (int length)
Fills this buffer with NUL (0x00) starting at the current
writerIndex and increases the writerIndex by the
specified length. |
refCnt, release, release, retain, retain, setRefCnt adjustMarkers, bytesBefore, bytesBefore, bytesBefore, checkDstIndex, checkIndex, checkIndex, checkNewCapacity, checkReadableBytes, checkSrcIndex, clear, compareTo, copy, discardReadBytes, discardSomeReadBytes, duplicate, ensureAccessible, ensureWritable, ensureWritable, equals, forEachByte, forEachByte, forEachByteDesc, forEachByteDesc, getBoolean, getByte, getBytes, getBytes, getBytes, getChar, getDouble, getFloat, getInt, getLong, getMedium, getShort, getUnsignedByte, getUnsignedInt, getUnsignedMedium, getUnsignedShort, hashCode, indexOf, isReadable, isReadable, isWritable, isWritable, markReaderIndex, markWriterIndex, maxCapacity, maxCapacity, maxWritableBytes, nioBuffer, nioBuffers, order, readableBytes, readBoolean, readByte, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readChar, readDouble, readerIndex, readerIndex, readFloat, readInt, readLong, readMedium, readShort, readSlice, readUnsignedByte, readUnsignedInt, readUnsignedMedium, readUnsignedShort, resetReaderIndex, resetWriterIndex, setBoolean, setByte, setBytes, setBytes, setBytes, setChar, setDouble, setFloat, setIndex, setInt, setLong, setMedium, setShort, skipBytes, slice, slice, toString, toString, toString, writableBytes, writeBoolean, writeByte, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeBytes, writeChar, writeDouble, writeFloat, writeInt, writeLong, writeMedium, writerIndex, writerIndex, writeShort clone, finalize, getClass, notify, notifyAll, wait, wait, waitpublic UnpooledUnsafeDirectByteBuf(ByteBufAllocator alloc, int initialCapacity, int maxCapacity)
initialCapacity - the initial capacity of the underlying direct buffermaxCapacity - the maximum capacity of the underlying direct bufferprotected UnpooledUnsafeDirectByteBuf(ByteBufAllocator alloc, java.nio.ByteBuffer initialBuffer, int maxCapacity)
maxCapacity - the maximum capacity of the underlying direct bufferprotected java.nio.ByteBuffer allocateDirect(int initialCapacity)
ByteBuffer with the given initialCapacity.protected void freeDirect(java.nio.ByteBuffer buffer)
ByteBufferpublic boolean isDirect()
ByteBuf true if and only if this buffer is backed by an
NIO direct buffer.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 ByteBufAllocator alloc()
ByteBuf ByteBufAllocator which created this buffer.public java.nio.ByteOrder order()
ByteBuf public boolean hasArray()
ByteBuf true if and only if this buffer has a backing byte array.
If this method returns true, you can safely call ByteBuf.array() and
ByteBuf.arrayOffset().public byte[] array()
ByteBuf public int arrayOffset()
ByteBuf arrayOffset in class ByteBuf public boolean hasMemoryAddress()
ByteBuf true if and only if this buffer has a reference to the low-level memory address that points
to the backing data.hasMemoryAddress in class ByteBuf public long memoryAddress()
ByteBuf memoryAddress in class ByteBuf protected byte _getByte(int index)
_getByte in class AbstractByteBuf protected short _getShort(int index)
_getShort in class AbstractByteBuf protected int _getUnsignedMedium(int index)
_getUnsignedMedium in class AbstractByteBuf protected int _getInt(int index)
_getInt in class AbstractByteBuf protected long _getLong(int index)
_getLong 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 readBytes(java.nio.ByteBuffer dst)
ByteBuf readerIndex until the destination's position
reaches its limit, and increases the readerIndex by the
number of the transferred bytes.readBytes in class AbstractByteBuf protected void _setByte(int index, int value)
_setByte in class AbstractByteBuf protected void _setShort(int index, int value)
_setShort in class AbstractByteBuf protected void _setMedium(int index, int value)
_setMedium in class AbstractByteBuf protected void _setInt(int index, int value)
_setInt in class AbstractByteBuf protected void _setLong(int index, long value)
_setLong in class AbstractByteBuf 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, byte[] src, int srcIndex, int length)
ByteBuf index.
This method does not modify readerIndex or writerIndex of
this buffer.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 readBytes(java.nio.channels.GatheringByteChannel out, int length) throws java.io.IOException
ByteBuf readerIndex.readBytes in class AbstractByteBuf length - 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 nioBufferCount()
ByteBuf ByteBuffers that consist this buffer. Note that ByteBuf.nioBuffers()
or ByteBuf.nioBuffers(int, int) might return a less number of ByteBuffers.nioBufferCount in class ByteBuf -1 if this buffer has no underlying ByteBuffer.
the number of the underlying ByteBuffers if this buffer has at least one underlying
ByteBuffer. Note that this method does not return 0 to avoid confusion.ByteBuf.nioBuffer(),
ByteBuf.nioBuffer(int, int),
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 either share or contains the copied content of 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 java.nio.ByteBuffer internalNioBuffer(int index, int length)
ByteBuf internalNioBuffer in class ByteBuf public java.nio.ByteBuffer nioBuffer(int index, int length)
ByteBuf ByteBuffer. The returned buffer
either share or contains the copied content of 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) protected void deallocate()
AbstractReferenceCountedByteBuf AbstractReferenceCountedByteBuf.refCnt() is equals 0.deallocate in class AbstractReferenceCountedByteBuf public ByteBuf unwrap()
ByteBuf protected SwappedByteBuf newSwappedByteBuf()
AbstractByteBuf SwappedByteBuf for this ByteBuf instance.newSwappedByteBuf in class AbstractByteBuf public ByteBuf setZero(int index, int length)
ByteBuf index.
This method does not modify readerIndex or writerIndex of
this buffer.setZero in class AbstractByteBuf length - the number of NULs to write to the bufferpublic ByteBuf writeZero(int length)
ByteBuf writerIndex and increases the writerIndex by the
specified length.writeZero in class AbstractByteBuf length - the number of NULs to write to the bufferCopyright © 2008–2018 The Netty Project. All rights reserved.