类 DynamicChannelBuffer
- java.lang.Object
-
- com.alibaba.dubbo.remoting.buffer.AbstractChannelBuffer
-
- com.alibaba.dubbo.remoting.buffer.DynamicChannelBuffer
-
- 所有已实现的接口:
ChannelBuffer
,Comparable<ChannelBuffer>
public class DynamicChannelBuffer extends AbstractChannelBuffer
-
-
构造器概要
构造器 构造器 说明 DynamicChannelBuffer(int estimatedLength)
DynamicChannelBuffer(int estimatedLength, ChannelBufferFactory factory)
-
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 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.ChannelBuffer
copy(int index, int length)
Returns a copy of this buffer's sub-region.void
ensureWritableBytes(int minWritableBytes)
Makes sure the number of the writable bytes is equal to or greater than the specified value.ChannelBufferFactory
factory()
Returns the factory which creates aChannelBuffer
whose type and defaultByteOrder
are same with this buffer.byte
getByte(int index)
Gets a byte at the specified absoluteindex
in this buffer.void
getBytes(int index, byte[] dst, int dstIndex, int length)
Transfers this buffer's data to the specified destination starting at the specified absoluteindex
.void
getBytes(int index, ChannelBuffer dst, int dstIndex, int length)
Transfers this buffer's data to the specified destination starting at the specified absoluteindex
.void
getBytes(int index, OutputStream dst, int length)
Transfers this buffer's data to the specified stream starting at the specified absoluteindex
.void
getBytes(int index, ByteBuffer dst)
Transfers this buffer's data to the specified destination starting at the specified absoluteindex
until the destination's position reaches its limit.boolean
hasArray()
Returnstrue
if and only if this buffer has a backing byte array.boolean
isDirect()
Returnstrue
if and only if this buffer is backed by an NIO direct buffer.void
setByte(int index, int value)
Sets the specified byte at the specified absoluteindex
in this buffer.void
setBytes(int index, byte[] src, int srcIndex, int length)
Transfers the specified source array's data to this buffer starting at the specified absoluteindex
.void
setBytes(int index, ChannelBuffer src, int srcIndex, int length)
Transfers the specified source buffer's data to this buffer starting at the specified absoluteindex
.int
setBytes(int index, InputStream src, int length)
Transfers the content of the specified source stream to this buffer starting at the specified absoluteindex
.void
setBytes(int index, ByteBuffer src)
Transfers the specified source buffer's data to this buffer starting at the specified absoluteindex
until the source buffer's position reaches its limit.ByteBuffer
toByteBuffer(int index, int length)
Converts this buffer's sub-region into a NIO buffer.void
writeByte(int value)
Sets the specified byte at the currentwriterIndex
and increases thewriterIndex
by1
in this buffer.void
writeBytes(byte[] src, int srcIndex, int length)
Transfers the specified source array's data to this buffer starting at the currentwriterIndex
and increases thewriterIndex
by the number of the transferred bytes (=length
).void
writeBytes(ChannelBuffer src, int srcIndex, int length)
Transfers the specified source buffer's data to this buffer starting at the currentwriterIndex
and increases thewriterIndex
by the number of the transferred bytes (=length
).int
writeBytes(InputStream in, int length)
Transfers the content of the specified stream to this buffer starting at the currentwriterIndex
and increases thewriterIndex
by the number of the transferred bytes.void
writeBytes(ByteBuffer src)
Transfers the specified source buffer's data to this buffer starting at the currentwriterIndex
until the source buffer's position reaches its limit, and increases thewriterIndex
by the number of the transferred bytes.-
从类继承的方法 com.alibaba.dubbo.remoting.buffer.AbstractChannelBuffer
clear, compareTo, copy, discardReadBytes, equals, getBytes, getBytes, getBytes, markReaderIndex, markWriterIndex, readable, readableBytes, readByte, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readerIndex, readerIndex, resetReaderIndex, resetWriterIndex, setBytes, setBytes, setBytes, setIndex, skipBytes, toByteBuffer, toString, writable, writableBytes, writeBytes, writeBytes, writeBytes, writerIndex, writerIndex
-
-
-
-
构造器详细资料
-
DynamicChannelBuffer
public DynamicChannelBuffer(int estimatedLength)
-
DynamicChannelBuffer
public DynamicChannelBuffer(int estimatedLength, ChannelBufferFactory factory)
-
-
方法详细资料
-
ensureWritableBytes
public void ensureWritableBytes(int minWritableBytes)
从接口复制的说明:ChannelBuffer
Makes sure the number of the writable bytes is equal to or greater than the specified value. If there is enough writable bytes in this buffer, this method returns with no side effect. Otherwise:- a non-dynamic buffer will throw an
IndexOutOfBoundsException
. - a dynamic buffer will expand its
capacity so that the number of the
writable bytes
becomes equal to or greater than the specified value. The expansion involves the reallocation of the internal buffer and consequently memory copy.
- 指定者:
ensureWritableBytes
在接口中ChannelBuffer
- 覆盖:
ensureWritableBytes
在类中AbstractChannelBuffer
- 参数:
minWritableBytes
- the expected minimum number of writable bytes
- a non-dynamic buffer will throw an
-
capacity
public int capacity()
从接口复制的说明:ChannelBuffer
Returns the number of bytes (octets) this buffer can contain.
-
copy
public ChannelBuffer copy(int index, int length)
从接口复制的说明:ChannelBuffer
Returns a copy of this buffer's sub-region. Modifying the content of the returned buffer or this buffer does not affect each other at all. This method does not modifyreaderIndex
orwriterIndex
of this buffer.
-
factory
public ChannelBufferFactory factory()
从接口复制的说明:ChannelBuffer
Returns the factory which creates aChannelBuffer
whose type and defaultByteOrder
are same with this buffer.
-
getByte
public byte getByte(int index)
从接口复制的说明:ChannelBuffer
Gets a byte at the specified absoluteindex
in this buffer. This method does not modifyreaderIndex
orwriterIndex
of this buffer.
-
getBytes
public void getBytes(int index, byte[] dst, int dstIndex, int length)
从接口复制的说明:ChannelBuffer
Transfers this buffer's data to the specified destination starting at the specified absoluteindex
. This method does not modifyreaderIndex
orwriterIndex
of this buffer.dstIndex
- the first index of the destinationlength
- the number of bytes to transfer
-
getBytes
public void getBytes(int index, ByteBuffer dst)
从接口复制的说明:ChannelBuffer
Transfers this buffer's data to the specified destination starting at the specified absoluteindex
until the destination's position reaches its limit. This method does not modifyreaderIndex
orwriterIndex
of this buffer while the destination'sposition
will be increased.
-
getBytes
public void getBytes(int index, ChannelBuffer dst, int dstIndex, int length)
从接口复制的说明:ChannelBuffer
Transfers this buffer's data to the specified destination starting at the specified absoluteindex
. This method does not modifyreaderIndex
orwriterIndex
of both the source (i.e.this
) and the destination.dstIndex
- the first index of the destinationlength
- the number of bytes to transfer
-
getBytes
public void getBytes(int index, OutputStream dst, int length) throws IOException
从接口复制的说明:ChannelBuffer
Transfers this buffer's data to the specified stream starting at the specified absoluteindex
. This method does not modifyreaderIndex
orwriterIndex
of this buffer.length
- the number of bytes to transfer- 抛出:
IOException
- if the specified stream threw an exception during I/O
-
isDirect
public boolean isDirect()
从接口复制的说明:ChannelBuffer
Returnstrue
if and only if this buffer is backed by an NIO direct buffer.
-
setByte
public void setByte(int index, int value)
从接口复制的说明:ChannelBuffer
Sets the specified byte at the specified absoluteindex
in this buffer. The 24 high-order bits of the specified value are ignored. This method does not modifyreaderIndex
orwriterIndex
of this buffer.
-
setBytes
public void setBytes(int index, byte[] src, int srcIndex, int length)
从接口复制的说明:ChannelBuffer
Transfers the specified source array's data to this buffer starting at the specified absoluteindex
. This method does not modifyreaderIndex
orwriterIndex
of this buffer.
-
setBytes
public void setBytes(int index, ByteBuffer src)
从接口复制的说明:ChannelBuffer
Transfers the specified source buffer's data to this buffer starting at the specified absoluteindex
until the source buffer's position reaches its limit. This method does not modifyreaderIndex
orwriterIndex
of this buffer.
-
setBytes
public void setBytes(int index, ChannelBuffer src, int srcIndex, int length)
从接口复制的说明:ChannelBuffer
Transfers the specified source buffer's data to this buffer starting at the specified absoluteindex
. This method does not modifyreaderIndex
orwriterIndex
of both the source (i.e.this
) and the destination.srcIndex
- the first index of the sourcelength
- the number of bytes to transfer
-
setBytes
public int setBytes(int index, InputStream src, int length) throws IOException
从接口复制的说明:ChannelBuffer
Transfers the content of the specified source stream to this buffer starting at the specified absoluteindex
. This method does not modifyreaderIndex
orwriterIndex
of this buffer.length
- the number of bytes to transfer- 返回:
- the actual number of bytes read in from the specified channel.
-1
if the specified channel is closed. - 抛出:
IOException
- if the specified stream threw an exception during I/O
-
toByteBuffer
public ByteBuffer toByteBuffer(int index, int length)
从接口复制的说明:ChannelBuffer
Converts this buffer's sub-region into a NIO buffer. The returned buffer might or might not share the content with this buffer, while they have separate indexes and marks. This method does not modifyreaderIndex
orwriterIndex
of this buffer.
-
writeByte
public void writeByte(int value)
从接口复制的说明:ChannelBuffer
Sets the specified byte at the currentwriterIndex
and increases thewriterIndex
by1
in this buffer. The 24 high-order bits of the specified value are ignored.- 指定者:
writeByte
在接口中ChannelBuffer
- 覆盖:
writeByte
在类中AbstractChannelBuffer
-
writeBytes
public void writeBytes(byte[] src, int srcIndex, int length)
从接口复制的说明:ChannelBuffer
Transfers the specified source array's data to this buffer starting at the currentwriterIndex
and increases thewriterIndex
by the number of the transferred bytes (=length
).- 指定者:
writeBytes
在接口中ChannelBuffer
- 覆盖:
writeBytes
在类中AbstractChannelBuffer
srcIndex
- the first index of the sourcelength
- the number of bytes to transfer
-
writeBytes
public void writeBytes(ChannelBuffer src, int srcIndex, int length)
从接口复制的说明:ChannelBuffer
Transfers the specified source buffer's data to this buffer starting at the currentwriterIndex
and increases thewriterIndex
by the number of the transferred bytes (=length
).- 指定者:
writeBytes
在接口中ChannelBuffer
- 覆盖:
writeBytes
在类中AbstractChannelBuffer
srcIndex
- the first index of the sourcelength
- the number of bytes to transfer
-
writeBytes
public void writeBytes(ByteBuffer src)
从接口复制的说明:ChannelBuffer
Transfers the specified source buffer's data to this buffer starting at the currentwriterIndex
until the source buffer's position reaches its limit, and increases thewriterIndex
by the number of the transferred bytes.- 指定者:
writeBytes
在接口中ChannelBuffer
- 覆盖:
writeBytes
在类中AbstractChannelBuffer
-
writeBytes
public int writeBytes(InputStream in, int length) throws IOException
从接口复制的说明:ChannelBuffer
Transfers the content of the specified stream to this buffer starting at the currentwriterIndex
and increases thewriterIndex
by the number of the transferred bytes.- 指定者:
writeBytes
在接口中ChannelBuffer
- 覆盖:
writeBytes
在类中AbstractChannelBuffer
length
- the number of bytes to transfer- 返回:
- the actual number of bytes read in from the specified stream
- 抛出:
IOException
- if the specified stream threw an exception during I/O
-
array
public byte[] array()
从接口复制的说明:ChannelBuffer
Returns the backing byte array of this buffer.
-
hasArray
public boolean hasArray()
从接口复制的说明:ChannelBuffer
Returnstrue
if and only if this buffer has a backing byte array. If this method returns true, you can safely callChannelBuffer.array()
andChannelBuffer.arrayOffset()
.
-
arrayOffset
public int arrayOffset()
从接口复制的说明:ChannelBuffer
Returns the offset of the first byte within the backing byte array of this buffer.
-
-