public class UnpooledHeapByteBuf extends AbstractReferenceCountedByteBuf
AbstractByteBufAllocator.heapBuffer(int, int)
, Unpooled.buffer(int)
和Unpooled.wrappedBuffer(byte[])
,而不是显式调用构造函数。
Modifier | Constructor and Description |
---|---|
protected |
UnpooledHeapByteBuf(ByteBufAllocator alloc, byte[] initialArray, int maxCapacity)
用现有的字节数组创建一个新的堆缓冲区。
|
|
UnpooledHeapByteBuf(ByteBufAllocator alloc, int initialCapacity, int maxCapacity)
用新分配的字节数组创建一个新的堆缓冲区。
|
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) |
ByteBufAllocator |
alloc()
返回创建此缓冲区的 ByteBufAllocator 。
|
byte[] |
array()
返回此缓冲区的后备字节数组。
|
int |
arrayOffset()
返回此缓冲区的后备字节数组中第一个字节的偏移量。
|
int |
capacity()
返回此缓冲区可包含的字节数(字节)。
|
ByteBuf |
capacity(int newCapacity)
调整此缓冲区的容量。
|
ByteBuf |
copy(int index, int length)
返回此缓冲区的子区域的副本。
|
protected void |
deallocate()
|
byte |
getByte(int index)
获取此缓冲区中指定的绝对
index 一个字节。
|
ByteBuf |
getBytes(int index, byte[] dst, int dstIndex, int length)
将此缓冲区的数据传输到指定的绝对目标
index 开始的目标。
|
ByteBuf |
getBytes(int index, java.nio.ByteBuffer dst)
转让此缓冲区的数据到指定的目标开始在指定的绝对
index ,直到目的地的位置到达了极限。
|
ByteBuf |
getBytes(int index, ByteBuf dst, int dstIndex, int length)
将此缓冲区的数据传输到指定的绝对
index 开始的目标。
|
int |
getBytes(int index, java.nio.channels.FileChannel out, long position, int length)
将该缓冲区的数据从指定的绝对
index 转移到指定的通道,从给定的文件位置开始。
|
int |
getBytes(int index, java.nio.channels.GatheringByteChannel out, int length)
将此缓冲区的数据传输到指定的绝对
index 开始的
index 。
|
ByteBuf |
getBytes(int index, java.io.OutputStream out, int length)
将此缓冲区的数据传输到指定的绝对
index 开始的流。
|
int |
getInt(int index)
在此缓冲区的指定绝对
index 处获取一个32位整数。
|
int |
getIntLE(int index)
在具有Little Endian Byte Order的缓冲区中的指定绝对
index 处获取一个32位整数。
|
long |
getLong(int index)
在此缓冲区中的指定绝对
index 处获取一个64位长整数。
|
long |
getLongLE(int index)
以小端字节顺序在此缓冲区中的指定绝对
index 处获取一个64位长整数。
|
short |
getShort(int index)
在此缓冲区中的指定绝对
index 处获取一个16位短整数。
|
short |
getShortLE(int index)
以Little Endian Byte Order的
index 在此缓冲区中的指定绝对
index 处获取一个16位短整数。
|
int |
getUnsignedMedium(int index)
在此缓冲区中的指定绝对
index 处获取一个无符号的24位中等整数。
|
int |
getUnsignedMediumLE(int index)
以小端字节顺序在此缓冲区中的指定绝对
index 处获取无符号的24位中等整数。
|
boolean |
hasArray()
当且仅当此缓冲区有一个后备字节数组时,才返回
true 。
|
boolean |
hasMemoryAddress()
当且仅当此缓冲区引用指向后备数据的低级内存地址时才返回
true 。
|
java.nio.ByteBuffer |
internalNioBuffer(int index, int length)
仅内部使用:公开内部NIO缓冲区。
|
boolean |
isDirect()
当且仅当此缓冲区由NIO直接缓冲区支持时才返回
true 。
|
long |
memoryAddress()
返回指向备份数据第一个字节的低级内存地址。
|
java.nio.ByteBuffer |
nioBuffer(int index, int length)
将此缓冲区的子区域公开为NIO
ByteBuffer 。
|
int |
nioBufferCount()
返回构成此缓冲区的NIO
ByteBuffer 的最大数量。
|
java.nio.ByteBuffer[] |
nioBuffers(int index, int length)
以指定索引和长度公开此缓冲区的字节为NIO
ByteBuffer 返回的缓冲区共享或包含此缓冲区的复制内容,同时更改返回的NIO缓冲区的位置和限制不会影响此索引和标记缓冲。
|
java.nio.ByteOrder |
order()
返回此缓冲区的
endianness 。
|
int |
readBytes(java.nio.channels.FileChannel out, long position, int length)
将此缓冲区的数据从当前的
readerIndex 到指定通道,从给定的文件位置开始。
|
int |
readBytes(java.nio.channels.GatheringByteChannel out, int length)
将此缓冲区的数据传输到当前
readerIndex 开始的指定流。
|
ByteBuf |
setByte(int index, int value)
在此缓冲区中的指定绝对
index 处设置指定的字节。
|
ByteBuf |
setBytes(int index, byte[] src, int srcIndex, int length)
将指定的源数组的数据传输到此缓冲区,从指定的绝对
index 。
|
ByteBuf |
setBytes(int index, java.nio.ByteBuffer src)
将指定的源缓冲区的数据从指定的绝对
index 开始传送到此缓冲区,直到源缓冲区的位置达到其限制。
|
ByteBuf |
setBytes(int index, ByteBuf src, int srcIndex, int length)
将指定的源缓冲区的数据从指定的绝对
index 开始传送到此缓冲区。
|
int |
setBytes(int index, java.nio.channels.FileChannel in, long position, int length)
将从指定文件位置开始的指定源通道的内容传输到此缓冲区,从指定绝对
index 。
|
int |
setBytes(int index, java.io.InputStream in, int length)
将指定源流的内容从指定绝对
index 开始传输到此缓冲区。
|
int |
setBytes(int index, java.nio.channels.ScatteringByteChannel in, int length)
将指定源通道的内容从指定绝对
index 开始传送到此缓冲区。
|
ByteBuf |
setInt(int index, int value)
在此缓冲区中的指定绝对
index 处设置指定的32位整数。
|
ByteBuf |
setIntLE(int index, int value)
使用Little Endian字节顺序在此缓冲区中的指定绝对
index 处设置指定的32位整数。
|
ByteBuf |
setLong(int index, long value)
在此缓冲区中的指定绝对
index 处设置指定的64位长整数。
|
ByteBuf |
setLongLE(int index, long value)
以小端字节顺序在此缓冲区中的指定绝对
index 处设置指定的64位长整数。
|
ByteBuf |
setMedium(int index, int value)
在此缓冲区中的指定绝对
index 处设置指定的24位中等整数。
|
ByteBuf |
setMediumLE(int index, int value)
以小端字节顺序在此缓冲区中的指定绝对
index 处设置指定的24位中等整数。
|
ByteBuf |
setShort(int index, int value)
在此缓冲区中的指定绝对
index 处设置指定的16位短整数。
|
ByteBuf |
setShortLE(int index, int value)
在此缓冲区中的指定绝对
index 使用Little Endian Byte Order设置指定的16位短整数。
|
ByteBuf |
unwrap()
如果此缓冲区是另一个缓冲区的包装,则返回底层缓冲区实例。
|
refCnt, release, release, retain, retain, setRefCnt, touch, touch
adjustMarkers, asReadOnly, bytesBefore, bytesBefore, bytesBefore, checkDstIndex, checkIndex, checkIndex, checkNewCapacity, checkReadableBytes, checkSrcIndex, clear, compareTo, copy, discardReadBytes, discardSomeReadBytes, duplicate, ensureAccessible, ensureWritable, ensureWritable, equals, forEachByte, forEachByte, forEachByteDesc, forEachByteDesc, getBoolean, getBytes, getBytes, getBytes, getChar, getCharSequence, getDouble, getFloat, getMedium, getMediumLE, getUnsignedByte, getUnsignedInt, getUnsignedIntLE, getUnsignedShort, getUnsignedShortLE, hashCode, indexOf, isReadable, isReadable, isReadOnly, isWritable, isWritable, markReaderIndex, markWriterIndex, maxCapacity, maxCapacity, maxWritableBytes, newSwappedByteBuf, nioBuffer, nioBuffers, order, readableBytes, readBoolean, readByte, 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, retainedDuplicate, retainedSlice, retainedSlice, setBoolean, setBytes, setBytes, setBytes, setChar, setCharSequence, setDouble, setFloat, setIndex, setZero, skipBytes, slice, 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
getDoubleLE, getFloatLE, readDoubleLE, readFloatLE, setDoubleLE, setFloatLE, writeDoubleLE, writeFloatLE
public UnpooledHeapByteBuf(ByteBufAllocator alloc, int initialCapacity, int maxCapacity)
initialCapacity
- 底层字节数组的初始容量
maxCapacity
- 底层字节数组的最大容量
protected UnpooledHeapByteBuf(ByteBufAllocator alloc, byte[] initialArray, int maxCapacity)
initialArray
- 初始底层字节数组
maxCapacity
- 底层字节数组的最大容量
public ByteBufAllocator alloc()
ByteBuf
复制的描述
ByteBufAllocator
。
public java.nio.ByteOrder order()
ByteBuf
复制的描述
public boolean isDirect()
ByteBuf
复制的描述
true
。
public ByteBuf capacity(int newCapacity)
ByteBuf
复制的描述
newCapacity
小于当前容量,则此缓冲区的内容将被截断。
如果newCapacity
大于当前容量,则缓冲区会附加长度为(newCapacity - currentCapacity)
未指定数据。
public boolean hasArray()
ByteBuf
复制的描述
true
。
如果此方法返回true,则可以安全地调用ByteBuf.array()
和ByteBuf.arrayOffset()
。
public int arrayOffset()
ByteBuf
复制的描述
arrayOffset
在类
ByteBuf
public boolean hasMemoryAddress()
ByteBuf
复制的描述
true
。
hasMemoryAddress
在类
ByteBuf
public long memoryAddress()
ByteBuf
复制的描述
memoryAddress
在类
ByteBuf
public ByteBuf getBytes(int index, ByteBuf dst, int dstIndex, int length)
ByteBuf
复制的描述
index
开始的目标。
此方法不会修改源(即this
)和目标的readerIndex
或writerIndex
。
public ByteBuf getBytes(int index, byte[] dst, int dstIndex, int length)
ByteBuf
复制的描述
index
开始的目标index
。
此方法不会修改此缓冲区的readerIndex
或writerIndex
。
public ByteBuf getBytes(int index, java.nio.ByteBuffer dst)
ByteBuf
复制的描述
index
,直到目的地的位置到达了极限。
此方法不修改此缓冲区的readerIndex
或writerIndex
,而目标的position
将增加。
public ByteBuf getBytes(int index, java.io.OutputStream out, int length) throws java.io.IOException
ByteBuf
复制的描述
index
开始的流。
此方法不会修改此缓冲区的readerIndex
或writerIndex
。
public int getBytes(int index, java.nio.channels.GatheringByteChannel out, int length) throws java.io.IOException
ByteBuf
复制的描述
index
。
此方法不会修改此缓冲区的readerIndex
或writerIndex
。
public int getBytes(int index, java.nio.channels.FileChannel out, long position, int length) throws java.io.IOException
ByteBuf
复制的描述
index
到指定通道,从给定文件位置开始。
此方法不会修改此缓冲区的readerIndex
或writerIndex
。
此方法不会修改频道的位置。
public int readBytes(java.nio.channels.GatheringByteChannel out, int length) throws java.io.IOException
ByteBuf
复制的描述
readerIndex
开始的指定流。
readBytes
类
AbstractByteBuf
length
- 传输的最大字节数
java.io.IOException
- 如果指定的通道在I / O期间引发异常
public int readBytes(java.nio.channels.FileChannel out, long position, int length) throws java.io.IOException
ByteBuf
复制的描述
readerIndex
到指定通道,从给定的文件位置开始。
此方法不会修改频道的位置。
readBytes
在课程
AbstractByteBuf
position
- 传输开始的文件位置
length
- 要传输的最大字节数
java.io.IOException
- 如果指定的通道在I / O期间引发异常
public ByteBuf setBytes(int index, ByteBuf src, int srcIndex, int length)
ByteBuf
复制的描述
index
开始传送到此缓冲区。
此方法不会修改源(即this
)和目标的readerIndex
或writerIndex
。
public ByteBuf setBytes(int index, byte[] src, int srcIndex, int length)
ByteBuf
复制的描述
index
。
此方法不会修改此缓冲区的readerIndex
或writerIndex
。
public ByteBuf setBytes(int index, java.nio.ByteBuffer src)
ByteBuf
复制的描述
index
开始传输到此缓冲区,直到源缓冲区的位置达到其限制。
此方法不会修改此缓冲区的readerIndex
或writerIndex
。
public int setBytes(int index, java.io.InputStream in, int length) throws java.io.IOException
ByteBuf
复制的描述
index
开始传输到此缓冲区。
此方法不会修改此缓冲区的readerIndex
或writerIndex
。
public int setBytes(int index, java.nio.channels.ScatteringByteChannel in, int length) throws java.io.IOException
ByteBuf
复制的描述
index
开始传送到此缓冲区。
此方法不会修改此缓冲区的readerIndex
或writerIndex
。
public int setBytes(int index, java.nio.channels.FileChannel in, long position, int length) throws java.io.IOException
ByteBuf
复制的描述
index
。
此方法不会修改此缓冲区的readerIndex
或writerIndex
。
此方法不会修改频道的位置。
public int nioBufferCount()
ByteBuf
复制的描述
ByteBuffer
的最大数量。
请注意, ByteBuf.nioBuffers()
或ByteBuf.nioBuffers(int, int)
可能会返回更少数量的ByteBuffer
s。
nioBufferCount
在类
ByteBuf
-1
如果此缓冲区没有底层ByteBuffer
。
如果此缓冲区至少有一个基础ByteBuffer
,则基础ByteBuffer
的ByteBuffer
。
请注意,此方法不返回0
以避免混淆。
ByteBuf.nioBuffer()
,
ByteBuf.nioBuffer(int, int)
,
ByteBuf.nioBuffers()
,
ByteBuf.nioBuffers(int, int)
public java.nio.ByteBuffer nioBuffer(int index, int length)
ByteBuf
复制的描述
ByteBuffer
。
返回的缓冲区共享或包含此缓冲区的复制内容,同时更改返回的NIO缓冲区的位置和限制不会影响此缓冲区的索引和标记。
此方法不会修改此缓冲区的readerIndex
或writerIndex
。
请注意,如果此缓冲区是动态缓冲区并且它调整了其容量,则返回的NIO缓冲区将不会看到此缓冲区的更改。
nioBuffer
ByteBuf
ByteBuf.nioBufferCount()
,
ByteBuf.nioBuffers()
,
ByteBuf.nioBuffers(int, int)
public java.nio.ByteBuffer[] nioBuffers(int index, int length)
ByteBuf
复制的描述
ByteBuffer
返回的缓冲区共享或包含此缓冲区的复制内容,同时更改返回的NIO缓冲区的位置和限制不会影响此索引和标记缓冲。
此方法不会修改此缓冲区的readerIndex
或writerIndex
。
请注意,如果此缓冲区是动态缓冲区并且它调整了其容量,则返回的NIO缓冲区将不会看到此缓冲区的更改。
nioBuffers
在类
ByteBuf
ByteBuf.nioBufferCount()
,
ByteBuf.nioBuffer()
,
ByteBuf.nioBuffer(int, int)
public java.nio.ByteBuffer internalNioBuffer(int index, int length)
ByteBuf
复制的描述
internalNioBuffer
ByteBuf
public byte getByte(int index)
ByteBuf
复制的描述
index
一个字节。
此方法不会修改此缓冲区的readerIndex
或writerIndex
。
getByte
在类
AbstractByteBuf
protected byte _getByte(int index)
_getByte
AbstractByteBuf
public short getShort(int index)
ByteBuf
复制的描述
index
处获取一个16位短整数。
此方法不会修改此缓冲区的readerIndex
或writerIndex
。
getShort
class
AbstractByteBuf
protected short _getShort(int index)
_getShort
AbstractByteBuf
public short getShortLE(int index)
ByteBuf
复制的描述
index
处获取一个16位短整数。
此方法不会修改此缓冲区的readerIndex
或writerIndex
。
protected short _getShortLE(int index)
_getShortLE
在类
AbstractByteBuf
public int getUnsignedMedium(int index)
ByteBuf
复制的描述
index
处获取一个无符号的24位中等整数。
此方法不会修改此缓冲区的readerIndex
或writerIndex
。
protected int _getUnsignedMedium(int index)
_getUnsignedMedium
在类
AbstractByteBuf
public int getUnsignedMediumLE(int index)
ByteBuf
复制的描述
index
此缓冲区中指定绝对index
的无符号24位中等整数。
此方法不会修改此缓冲区的readerIndex
或writerIndex
。
protected int _getUnsignedMediumLE(int index)
_getUnsignedMediumLE
在类
AbstractByteBuf
public int getInt(int index)
ByteBuf
复制的描述
index
处获取一个32位整数。
此方法不会修改此缓冲区的readerIndex
或writerIndex
。
protected int _getInt(int index)
_getInt
在类
AbstractByteBuf
public int getIntLE(int index)
ByteBuf
复制的描述
index
处获取一个32位整数。
此方法不会修改此缓冲区的readerIndex
或writerIndex
。
getIntLE
在类
AbstractByteBuf
protected int _getIntLE(int index)
_getIntLE
在类
AbstractByteBuf
public long getLong(int index)
ByteBuf
复制的描述
index
处获取一个64位长整数。
此方法不会修改此缓冲区的readerIndex
或writerIndex
。
getLong
在类
AbstractByteBuf
protected long _getLong(int index)
_getLong
在课程
AbstractByteBuf
public long getLongLE(int index)
ByteBuf
复制的描述
index
处获取64位长整数。
此方法不会修改此缓冲区的readerIndex
或writerIndex
。
protected long _getLongLE(int index)
_getLongLE
在类
AbstractByteBuf
public ByteBuf setByte(int index, int value)
ByteBuf
复制的描述
index
处设置指定的字节。
指定值的24个高位被忽略。
此方法不会修改此缓冲区的readerIndex
或writerIndex
。
protected void _setByte(int index, int value)
_setByte
AbstractByteBuf
public ByteBuf setShort(int index, int value)
ByteBuf
复制的描述
index
处设置指定的16位短整数。
指定值的16个高位被忽略。
此方法不会修改此缓冲区的readerIndex
或writerIndex
。
setShort
在课堂
AbstractByteBuf
protected void _setShort(int index, int value)
_setShort
在课堂
AbstractByteBuf
public ByteBuf setShortLE(int index, int value)
ByteBuf
复制的描述
index
处设置指定的16位短整数。
指定值的16个高位被忽略。
此方法不会修改此缓冲区的readerIndex
或writerIndex
。
setShortLE
在课堂
AbstractByteBuf
protected void _setShortLE(int index, int value)
_setShortLE
AbstractByteBuf
public ByteBuf setMedium(int index, int value)
ByteBuf
复制的描述
index
处设置指定的24位中等整数。
请注意,最高有效字节在指定值中被忽略。
此方法不会修改此缓冲区的readerIndex
或writerIndex
。
setMedium
在课程
AbstractByteBuf
protected void _setMedium(int index, int value)
_setMedium
在类
AbstractByteBuf
public ByteBuf setMediumLE(int index, int value)
ByteBuf
复制的描述
index
处设置指定的24位中等整数。
请注意,最高有效字节在指定值中被忽略。
此方法不会修改此缓冲区的readerIndex
或writerIndex
。
protected void _setMediumLE(int index, int value)
_setMediumLE
在类
AbstractByteBuf
public ByteBuf setInt(int index, int value)
ByteBuf
复制的描述
index
处设置指定的32位整数。
此方法不会修改此缓冲区的readerIndex
或writerIndex
。
setInt
在类
AbstractByteBuf
protected void _setInt(int index, int value)
_setInt
在类
AbstractByteBuf
public ByteBuf setIntLE(int index, int value)
ByteBuf
复制的描述
index
处设置指定的32位整数。
此方法不会修改此缓冲区的readerIndex
或writerIndex
。
setIntLE
在课堂
AbstractByteBuf
protected void _setIntLE(int index, int value)
_setIntLE
AbstractByteBuf
public ByteBuf setLong(int index, long value)
ByteBuf
复制的描述
index
处设置指定的64位长整数。
此方法不会修改此缓冲区的readerIndex
或writerIndex
。
setLong
在类
AbstractByteBuf
protected void _setLong(int index, long value)
_setLong
在类
AbstractByteBuf
public ByteBuf setLongLE(int index, long value)
ByteBuf
复制的描述
index
设置指定的64位长整数。
此方法不会修改此缓冲区的readerIndex
或writerIndex
。
protected void _setLongLE(int index, long value)
_setLongLE
AbstractByteBuf
public ByteBuf copy(int index, int length)
ByteBuf
复制的描述
readerIndex
或writerIndex
。
protected void deallocate()
deallocate
在课堂
AbstractReferenceCountedByteBuf
Copyright © 2008–2018 The Netty Project. All rights reserved.