类 AbstractChannelBuffer
- java.lang.Object
-
- com.alibaba.dubbo.remoting.buffer.AbstractChannelBuffer
-
- 所有已实现的接口:
ChannelBuffer
,Comparable<ChannelBuffer>
public abstract class AbstractChannelBuffer extends Object implements ChannelBuffer
-
-
构造器概要
构造器 构造器 说明 AbstractChannelBuffer()
-
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 void
clear()
Sets thereaderIndex
andwriterIndex
of this buffer to0
.int
compareTo(ChannelBuffer that)
ChannelBuffer
copy()
Returns a copy of this buffer's readable bytes.void
discardReadBytes()
Discards the bytes between the 0th index andreaderIndex
.void
ensureWritableBytes(int writableBytes)
Makes sure the number of the writable bytes is equal to or greater than the specified value.boolean
equals(Object o)
Determines if the content of the specified buffer is identical to the content of this array.void
getBytes(int index, byte[] dst)
Transfers this buffer's data to the specified destination starting at the specified absoluteindex
.void
getBytes(int index, ChannelBuffer dst)
Transfers this buffer's data to the specified destination starting at the specified absoluteindex
until the destination becomes non-writable.void
getBytes(int index, ChannelBuffer dst, int length)
Transfers this buffer's data to the specified destination starting at the specified absoluteindex
.void
markReaderIndex()
Marks the currentreaderIndex
in this buffer.void
markWriterIndex()
Marks the currentwriterIndex
in this buffer.boolean
readable()
Returnstrue
if and only if(this.writerIndex - this.readerIndex)
is greater than0
.int
readableBytes()
Returns the number of readable bytes which is equal to(this.writerIndex - this.readerIndex)
.byte
readByte()
Gets a byte at the currentreaderIndex
and increases thereaderIndex
by1
in this buffer.void
readBytes(byte[] dst)
Transfers this buffer's data to the specified destination starting at the currentreaderIndex
and increases thereaderIndex
by the number of the transferred bytes (=dst.length
).void
readBytes(byte[] dst, int dstIndex, int length)
Transfers this buffer's data to the specified destination starting at the currentreaderIndex
and increases thereaderIndex
by the number of the transferred bytes (=length
).ChannelBuffer
readBytes(int length)
Transfers this buffer's data to a newly created buffer starting at the currentreaderIndex
and increases thereaderIndex
by the number of the transferred bytes (=length
).void
readBytes(ChannelBuffer dst)
Transfers this buffer's data to the specified destination starting at the currentreaderIndex
until the destination becomes non-writable, and increases thereaderIndex
by the number of the transferred bytes.void
readBytes(ChannelBuffer dst, int length)
Transfers this buffer's data to the specified destination starting at the currentreaderIndex
and increases thereaderIndex
by the number of the transferred bytes (=length
).void
readBytes(ChannelBuffer dst, int dstIndex, int length)
Transfers this buffer's data to the specified destination starting at the currentreaderIndex
and increases thereaderIndex
by the number of the transferred bytes (=length
).void
readBytes(OutputStream out, int length)
Transfers this buffer's data to the specified stream starting at the currentreaderIndex
.void
readBytes(ByteBuffer dst)
Transfers this buffer's data to the specified destination starting at the currentreaderIndex
until the destination's position reaches its limit, and increases thereaderIndex
by the number of the transferred bytes.int
readerIndex()
Returns thereaderIndex
of this buffer.void
readerIndex(int readerIndex)
Sets thereaderIndex
of this buffer.void
resetReaderIndex()
Repositions the currentreaderIndex
to the markedreaderIndex
in this buffer.void
resetWriterIndex()
Marks the currentwriterIndex
in this buffer.void
setBytes(int index, byte[] src)
Transfers the specified source array's data to this buffer starting at the specified absoluteindex
.void
setBytes(int index, ChannelBuffer src)
Transfers the specified source buffer's data to this buffer starting at the specified absoluteindex
until the source buffer becomes unreadable.void
setBytes(int index, ChannelBuffer src, int length)
Transfers the specified source buffer's data to this buffer starting at the specified absoluteindex
.void
setIndex(int readerIndex, int writerIndex)
Sets thereaderIndex
andwriterIndex
of this buffer in one shot.void
skipBytes(int length)
Increases the currentreaderIndex
by the specifiedlength
in this buffer.ByteBuffer
toByteBuffer()
Converts this buffer's readable bytes into a NIO buffer.String
toString()
boolean
writable()
Returnstrue
if and only if(this.capacity - this.writerIndex)
is greater than0
.int
writableBytes()
Returns the number of writable bytes which is equal to(this.capacity - this.writerIndex)
.void
writeByte(int value)
Sets the specified byte at the currentwriterIndex
and increases thewriterIndex
by1
in this buffer.void
writeBytes(byte[] src)
Transfers the specified source array's data to this buffer starting at the currentwriterIndex
and increases thewriterIndex
by the number of the transferred bytes (=src.length
).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)
Transfers the specified source buffer's data to this buffer starting at the currentwriterIndex
until the source buffer becomes unreadable, and increases thewriterIndex
by the number of the transferred bytes.void
writeBytes(ChannelBuffer src, 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
).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.int
writerIndex()
Returns thewriterIndex
of this buffer.void
writerIndex(int writerIndex)
Sets thewriterIndex
of this buffer.
-
-
-
方法详细资料
-
readerIndex
public int readerIndex()
从接口复制的说明:ChannelBuffer
Returns thereaderIndex
of this buffer.- 指定者:
readerIndex
在接口中ChannelBuffer
-
readerIndex
public void readerIndex(int readerIndex)
从接口复制的说明:ChannelBuffer
Sets thereaderIndex
of this buffer.- 指定者:
readerIndex
在接口中ChannelBuffer
-
writerIndex
public int writerIndex()
从接口复制的说明:ChannelBuffer
Returns thewriterIndex
of this buffer.- 指定者:
writerIndex
在接口中ChannelBuffer
-
writerIndex
public void writerIndex(int writerIndex)
从接口复制的说明:ChannelBuffer
Sets thewriterIndex
of this buffer.- 指定者:
writerIndex
在接口中ChannelBuffer
-
setIndex
public void setIndex(int readerIndex, int writerIndex)
从接口复制的说明:ChannelBuffer
Sets thereaderIndex
andwriterIndex
of this buffer in one shot. This method is useful when you have to worry about the invocation order ofChannelBuffer.readerIndex(int)
andChannelBuffer.writerIndex(int)
methods. For example, the following code will fail:// Create a buffer whose readerIndex, writerIndex and capacity are // 0, 0 and 8 respectively.
The following code will also fail:ChannelBuffer
buf =ChannelBuffers
.buffer(8); // IndexOutOfBoundsException is thrown because the specified // readerIndex (2) cannot be greater than the current writerIndex (0). buf.readerIndex(2); buf.writerIndex(4);// Create a buffer whose readerIndex, writerIndex and capacity are // 0, 8 and 8 respectively.
By contrast,ChannelBuffer
buf =ChannelBuffers
.wrappedBuffer(new byte[8]); // readerIndex becomes 8. buf.readLong(); // IndexOutOfBoundsException is thrown because the specified // writerIndex (4) cannot be less than the current readerIndex (8). buf.writerIndex(4); buf.readerIndex(2);ChannelBuffer.setIndex(int, int)
guarantees that it never throws anIndexOutOfBoundsException
as long as the specified indexes meet basic constraints, regardless what the current index values of the buffer are:// No matter what the current state of the buffer is, the following // call always succeeds as long as the capacity of the buffer is not // less than 4. buf.setIndex(2, 4);
- 指定者:
setIndex
在接口中ChannelBuffer
-
clear
public void clear()
从接口复制的说明:ChannelBuffer
Sets thereaderIndex
andwriterIndex
of this buffer to0
. This method is identical tosetIndex(0, 0)
. Please note that the behavior of this method is different from that of NIO buffer, which sets thelimit
to thecapacity
of the buffer.- 指定者:
clear
在接口中ChannelBuffer
-
readable
public boolean readable()
从接口复制的说明:ChannelBuffer
Returnstrue
if and only if(this.writerIndex - this.readerIndex)
is greater than0
.- 指定者:
readable
在接口中ChannelBuffer
-
writable
public boolean writable()
从接口复制的说明:ChannelBuffer
Returnstrue
if and only if(this.capacity - this.writerIndex)
is greater than0
.- 指定者:
writable
在接口中ChannelBuffer
-
readableBytes
public int readableBytes()
从接口复制的说明:ChannelBuffer
Returns the number of readable bytes which is equal to(this.writerIndex - this.readerIndex)
.- 指定者:
readableBytes
在接口中ChannelBuffer
-
writableBytes
public int writableBytes()
从接口复制的说明:ChannelBuffer
Returns the number of writable bytes which is equal to(this.capacity - this.writerIndex)
.- 指定者:
writableBytes
在接口中ChannelBuffer
-
markReaderIndex
public void markReaderIndex()
从接口复制的说明:ChannelBuffer
Marks the currentreaderIndex
in this buffer. You can reposition the currentreaderIndex
to the markedreaderIndex
by callingChannelBuffer.resetReaderIndex()
. The initial value of the markedreaderIndex
is0
.- 指定者:
markReaderIndex
在接口中ChannelBuffer
-
resetReaderIndex
public void resetReaderIndex()
从接口复制的说明:ChannelBuffer
Repositions the currentreaderIndex
to the markedreaderIndex
in this buffer.- 指定者:
resetReaderIndex
在接口中ChannelBuffer
-
markWriterIndex
public void markWriterIndex()
从接口复制的说明:ChannelBuffer
Marks the currentwriterIndex
in this buffer. You can reposition the currentwriterIndex
to the markedwriterIndex
by callingChannelBuffer.resetWriterIndex()
. The initial value of the markedwriterIndex
is0
.- 指定者:
markWriterIndex
在接口中ChannelBuffer
-
resetWriterIndex
public void resetWriterIndex()
从接口复制的说明:ChannelBuffer
Marks the currentwriterIndex
in this buffer. You can reposition the currentwriterIndex
to the markedwriterIndex
by callingChannelBuffer.resetWriterIndex()
. The initial value of the markedwriterIndex
is0
.- 指定者:
resetWriterIndex
在接口中ChannelBuffer
-
discardReadBytes
public void discardReadBytes()
从接口复制的说明:ChannelBuffer
Discards the bytes between the 0th index andreaderIndex
. It moves the bytes betweenreaderIndex
andwriterIndex
to the 0th index, and setsreaderIndex
andwriterIndex
to0
andoldWriterIndex - oldReaderIndex
respectively. Please refer to the class documentation for more detailed explanation.- 指定者:
discardReadBytes
在接口中ChannelBuffer
-
ensureWritableBytes
public void ensureWritableBytes(int writableBytes)
从接口复制的说明: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
- 参数:
writableBytes
- the expected minimum number of writable bytes
- a non-dynamic buffer will throw an
-
getBytes
public void getBytes(int index, byte[] dst)
从接口复制的说明:ChannelBuffer
Transfers this buffer's data to the specified destination starting at the specified absoluteindex
. This method does not modifyreaderIndex
orwriterIndex
of this buffer- 指定者:
getBytes
在接口中ChannelBuffer
-
getBytes
public void getBytes(int index, ChannelBuffer dst)
从接口复制的说明:ChannelBuffer
Transfers this buffer's data to the specified destination starting at the specified absoluteindex
until the destination becomes non-writable. This method is basically same withChannelBuffer.getBytes(int, ChannelBuffer, int, int)
, except that this method increases thewriterIndex
of the destination by the number of the transferred bytes whileChannelBuffer.getBytes(int, ChannelBuffer, int, int)
does not. This method does not modifyreaderIndex
orwriterIndex
of the source buffer (i.e.this
).- 指定者:
getBytes
在接口中ChannelBuffer
-
getBytes
public void getBytes(int index, ChannelBuffer dst, int length)
从接口复制的说明:ChannelBuffer
Transfers this buffer's data to the specified destination starting at the specified absoluteindex
. This method is basically same withChannelBuffer.getBytes(int, ChannelBuffer, int, int)
, except that this method increases thewriterIndex
of the destination by the number of the transferred bytes whileChannelBuffer.getBytes(int, ChannelBuffer, int, int)
does not. This method does not modifyreaderIndex
orwriterIndex
of the source buffer (i.e.this
).- 指定者:
getBytes
在接口中ChannelBuffer
length
- the number of bytes to transfer
-
setBytes
public void setBytes(int index, byte[] src)
从接口复制的说明: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
在接口中ChannelBuffer
-
setBytes
public void setBytes(int index, ChannelBuffer src)
从接口复制的说明:ChannelBuffer
Transfers the specified source buffer's data to this buffer starting at the specified absoluteindex
until the source buffer becomes unreadable. This method is basically same withChannelBuffer.setBytes(int, ChannelBuffer, int, int)
, except that this method increases thereaderIndex
of the source buffer by the number of the transferred bytes whileChannelBuffer.setBytes(int, ChannelBuffer, int, int)
does not. This method does not modifyreaderIndex
orwriterIndex
of the source buffer (i.e.this
).- 指定者:
setBytes
在接口中ChannelBuffer
-
setBytes
public void setBytes(int index, ChannelBuffer src, int length)
从接口复制的说明:ChannelBuffer
Transfers the specified source buffer's data to this buffer starting at the specified absoluteindex
. This method is basically same withChannelBuffer.setBytes(int, ChannelBuffer, int, int)
, except that this method increases thereaderIndex
of the source buffer by the number of the transferred bytes whileChannelBuffer.setBytes(int, ChannelBuffer, int, int)
does not. This method does not modifyreaderIndex
orwriterIndex
of the source buffer (i.e.this
).- 指定者:
setBytes
在接口中ChannelBuffer
length
- the number of bytes to transfer
-
readByte
public byte readByte()
从接口复制的说明:ChannelBuffer
Gets a byte at the currentreaderIndex
and increases thereaderIndex
by1
in this buffer.- 指定者:
readByte
在接口中ChannelBuffer
-
readBytes
public ChannelBuffer readBytes(int length)
从接口复制的说明:ChannelBuffer
Transfers this buffer's data to a newly created buffer starting at the currentreaderIndex
and increases thereaderIndex
by the number of the transferred bytes (=length
). The returned buffer'sreaderIndex
andwriterIndex
are0
andlength
respectively.- 指定者:
readBytes
在接口中ChannelBuffer
- 参数:
length
- the number of bytes to transfer- 返回:
- the newly created buffer which contains the transferred bytes
-
readBytes
public void readBytes(byte[] dst, int dstIndex, int length)
从接口复制的说明:ChannelBuffer
Transfers this buffer's data to the specified destination starting at the currentreaderIndex
and increases thereaderIndex
by the number of the transferred bytes (=length
).- 指定者:
readBytes
在接口中ChannelBuffer
dstIndex
- the first index of the destinationlength
- the number of bytes to transfer
-
readBytes
public void readBytes(byte[] dst)
从接口复制的说明:ChannelBuffer
Transfers this buffer's data to the specified destination starting at the currentreaderIndex
and increases thereaderIndex
by the number of the transferred bytes (=dst.length
).- 指定者:
readBytes
在接口中ChannelBuffer
-
readBytes
public void readBytes(ChannelBuffer dst)
从接口复制的说明:ChannelBuffer
Transfers this buffer's data to the specified destination starting at the currentreaderIndex
until the destination becomes non-writable, and increases thereaderIndex
by the number of the transferred bytes. This method is basically same withChannelBuffer.readBytes(ChannelBuffer, int, int)
, except that this method increases thewriterIndex
of the destination by the number of the transferred bytes whileChannelBuffer.readBytes(ChannelBuffer, int, int)
does not.- 指定者:
readBytes
在接口中ChannelBuffer
-
readBytes
public void readBytes(ChannelBuffer dst, int length)
从接口复制的说明:ChannelBuffer
Transfers this buffer's data to the specified destination starting at the currentreaderIndex
and increases thereaderIndex
by the number of the transferred bytes (=length
). This method is basically same withChannelBuffer.readBytes(ChannelBuffer, int, int)
, except that this method increases thewriterIndex
of the destination by the number of the transferred bytes (=length
) whileChannelBuffer.readBytes(ChannelBuffer, int, int)
does not.- 指定者:
readBytes
在接口中ChannelBuffer
-
readBytes
public void readBytes(ChannelBuffer dst, int dstIndex, int length)
从接口复制的说明:ChannelBuffer
Transfers this buffer's data to the specified destination starting at the currentreaderIndex
and increases thereaderIndex
by the number of the transferred bytes (=length
).- 指定者:
readBytes
在接口中ChannelBuffer
dstIndex
- the first index of the destinationlength
- the number of bytes to transfer
-
readBytes
public void readBytes(ByteBuffer dst)
从接口复制的说明:ChannelBuffer
Transfers this buffer's data to the specified destination starting at the currentreaderIndex
until the destination's position reaches its limit, and increases thereaderIndex
by the number of the transferred bytes.- 指定者:
readBytes
在接口中ChannelBuffer
-
readBytes
public void readBytes(OutputStream out, int length) throws IOException
从接口复制的说明:ChannelBuffer
Transfers this buffer's data to the specified stream starting at the currentreaderIndex
.- 指定者:
readBytes
在接口中ChannelBuffer
length
- the number of bytes to transfer- 抛出:
IOException
- if the specified stream threw an exception during I/O
-
skipBytes
public void skipBytes(int length)
从接口复制的说明:ChannelBuffer
Increases the currentreaderIndex
by the specifiedlength
in this buffer.- 指定者:
skipBytes
在接口中ChannelBuffer
-
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
-
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
srcIndex
- the first index of the sourcelength
- the number of bytes to transfer
-
writeBytes
public void writeBytes(byte[] src)
从接口复制的说明: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 (=src.length
).- 指定者:
writeBytes
在接口中ChannelBuffer
-
writeBytes
public void writeBytes(ChannelBuffer src)
从接口复制的说明:ChannelBuffer
Transfers the specified source buffer's data to this buffer starting at the currentwriterIndex
until the source buffer becomes unreadable, and increases thewriterIndex
by the number of the transferred bytes. This method is basically same withChannelBuffer.writeBytes(ChannelBuffer, int, int)
, except that this method increases thereaderIndex
of the source buffer by the number of the transferred bytes whileChannelBuffer.writeBytes(ChannelBuffer, int, int)
does not.- 指定者:
writeBytes
在接口中ChannelBuffer
-
writeBytes
public void writeBytes(ChannelBuffer src, 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
). This method is basically same withChannelBuffer.writeBytes(ChannelBuffer, int, int)
, except that this method increases thereaderIndex
of the source buffer by the number of the transferred bytes (=length
) whileChannelBuffer.writeBytes(ChannelBuffer, int, int)
does not.- 指定者:
writeBytes
在接口中ChannelBuffer
length
- 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
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
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
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
-
copy
public ChannelBuffer copy()
从接口复制的说明:ChannelBuffer
Returns a copy of this buffer's readable bytes. Modifying the content of the returned buffer or this buffer does not affect each other at all. This method is identical tobuf.copy(buf.readerIndex(), buf.readableBytes())
. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- 指定者:
copy
在接口中ChannelBuffer
-
toByteBuffer
public ByteBuffer toByteBuffer()
从接口复制的说明:ChannelBuffer
Converts this buffer's readable bytes 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 is identical tobuf.toByteBuffer(buf.readerIndex(), buf.readableBytes())
. This method does not modifyreaderIndex
orwriterIndex
of this buffer.- 指定者:
toByteBuffer
在接口中ChannelBuffer
-
equals
public boolean equals(Object o)
从接口复制的说明:ChannelBuffer
Determines if the content of the specified buffer is identical to the content of this array. 'Identical' here means:- the size of the contents of the two buffers are same and
- every single byte of the content of the two buffers are same.
ChannelBuffer.readerIndex()
norChannelBuffer.writerIndex()
. This method also returnsfalse
fornull
and an object which is not an instance ofChannelBuffer
type.- 指定者:
equals
在接口中ChannelBuffer
- 覆盖:
equals
在类中Object
-
compareTo
public int compareTo(ChannelBuffer that)
- 指定者:
compareTo
在接口中Comparable<ChannelBuffer>
-
-