|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.alibaba.dubbo.remoting.buffer.AbstractChannelBuffer
public abstract class AbstractChannelBuffer
Constructor Summary | |
---|---|
AbstractChannelBuffer()
|
Method Summary | |
---|---|
void |
clear()
Sets the readerIndex and writerIndex of this buffer to
0 . |
int |
compareTo(ChannelBuffer that)
|
ChannelBuffer |
copy()
Returns a copy of this buffer's readable bytes. |
void |
discardReadBytes()
Discards the bytes between the 0th index and readerIndex . |
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 absolute index . |
void |
getBytes(int index,
ChannelBuffer dst)
Transfers this buffer's data to the specified destination starting at the specified absolute index 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 absolute index . |
void |
markReaderIndex()
Marks the current readerIndex in this buffer. |
void |
markWriterIndex()
Marks the current writerIndex in this buffer. |
boolean |
readable()
Returns true if and only if (this.writerIndex -
this.readerIndex) is greater than 0 . |
int |
readableBytes()
Returns the number of readable bytes which is equal to (this.writerIndex - this.readerIndex) . |
byte |
readByte()
Gets a byte at the current readerIndex and increases the readerIndex by 1 in this buffer. |
void |
readBytes(byte[] dst)
Transfers this buffer's data to the specified destination starting at the current readerIndex and increases the readerIndex 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 current readerIndex and increases the readerIndex by the
number of the transferred bytes (= length ). |
void |
readBytes(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. |
void |
readBytes(ChannelBuffer dst)
Transfers this buffer's data to the specified destination starting at the current readerIndex until the destination becomes non-writable,
and increases the readerIndex 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 current readerIndex and increases the readerIndex 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 current readerIndex and increases the readerIndex 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 current readerIndex and increases the readerIndex 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 current readerIndex . |
int |
readerIndex()
Returns the readerIndex of this buffer. |
void |
readerIndex(int readerIndex)
Sets the readerIndex of this buffer. |
void |
resetReaderIndex()
Repositions the current readerIndex to the marked readerIndex in this buffer. |
void |
resetWriterIndex()
Marks the current writerIndex in this buffer. |
void |
setBytes(int index,
byte[] src)
Transfers the specified source array's data to this buffer starting at the specified absolute index . |
void |
setBytes(int index,
ChannelBuffer src)
Transfers the specified source buffer's data to this buffer starting at the specified absolute index 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 absolute index . |
void |
setIndex(int readerIndex,
int writerIndex)
Sets the readerIndex and writerIndex of this buffer in
one shot. |
void |
skipBytes(int length)
Increases the current readerIndex by the specified length
in this buffer. |
ByteBuffer |
toByteBuffer()
Converts this buffer's readable bytes into a NIO buffer. |
String |
toString()
|
boolean |
writable()
Returns true if and only if (this.capacity -
this.writerIndex) is greater than 0 . |
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 current writerIndex and increases
the writerIndex by 1 in this buffer. |
void |
writeBytes(byte[] src)
Transfers the specified source array's data to this buffer starting at the current writerIndex and increases the writerIndex 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 current writerIndex and increases the writerIndex by
the number of the transferred bytes (= length ). |
void |
writeBytes(ByteBuffer src)
Transfers the specified source buffer's data to this buffer starting at the current writerIndex until the source buffer's position
reaches its limit, and increases the writerIndex by the number of
the transferred bytes. |
void |
writeBytes(ChannelBuffer src)
Transfers the specified source buffer's data to this buffer starting at the current writerIndex until the source buffer becomes
unreadable, and increases the writerIndex 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 current writerIndex and increases the writerIndex 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 current writerIndex and increases the writerIndex 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 current writerIndex and increases the writerIndex by
the number of the transferred bytes. |
int |
writerIndex()
Returns the writerIndex of this buffer. |
void |
writerIndex(int writerIndex)
Sets the writerIndex of this buffer. |
Methods inherited from class java.lang.Object |
---|
getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface com.alibaba.dubbo.remoting.buffer.ChannelBuffer |
---|
array, arrayOffset, capacity, copy, factory, getByte, getBytes, getBytes, getBytes, getBytes, hasArray, isDirect, setByte, setBytes, setBytes, setBytes, setBytes, toByteBuffer |
Constructor Detail |
---|
public AbstractChannelBuffer()
Method Detail |
---|
public int readerIndex()
ChannelBuffer
readerIndex
of this buffer.
readerIndex
in interface ChannelBuffer
public void readerIndex(int readerIndex)
ChannelBuffer
readerIndex
of this buffer.
readerIndex
in interface ChannelBuffer
public int writerIndex()
ChannelBuffer
writerIndex
of this buffer.
writerIndex
in interface ChannelBuffer
public void writerIndex(int writerIndex)
ChannelBuffer
writerIndex
of this buffer.
writerIndex
in interface ChannelBuffer
public void setIndex(int readerIndex, int writerIndex)
ChannelBuffer
readerIndex
and writerIndex
of this buffer in
one shot. This method is useful when you have to worry about the
invocation order of ChannelBuffer.readerIndex(int)
and ChannelBuffer.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
an IndexOutOfBoundsException
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
in interface ChannelBuffer
public void clear()
ChannelBuffer
readerIndex
and writerIndex
of this buffer to
0
. This method is identical to setIndex(0, 0)
.
Please note that the behavior of this method is different from that of
NIO buffer, which sets the limit
to the capacity
of the
buffer.
clear
in interface ChannelBuffer
public boolean readable()
ChannelBuffer
true
if and only if (this.writerIndex -
this.readerIndex)
is greater than 0
.
readable
in interface ChannelBuffer
public boolean writable()
ChannelBuffer
true
if and only if (this.capacity -
this.writerIndex)
is greater than 0
.
writable
in interface ChannelBuffer
public int readableBytes()
ChannelBuffer
(this.writerIndex - this.readerIndex)
.
readableBytes
in interface ChannelBuffer
public int writableBytes()
ChannelBuffer
(this.capacity - this.writerIndex)
.
writableBytes
in interface ChannelBuffer
public void markReaderIndex()
ChannelBuffer
readerIndex
in this buffer. You can reposition
the current readerIndex
to the marked readerIndex
by
calling ChannelBuffer.resetReaderIndex()
. The initial value of the marked
readerIndex
is 0
.
markReaderIndex
in interface ChannelBuffer
public void resetReaderIndex()
ChannelBuffer
readerIndex
to the marked readerIndex
in this buffer.
resetReaderIndex
in interface ChannelBuffer
public void markWriterIndex()
ChannelBuffer
writerIndex
in this buffer. You can reposition
the current writerIndex
to the marked writerIndex
by
calling ChannelBuffer.resetWriterIndex()
. The initial value of the marked
writerIndex
is 0
.
markWriterIndex
in interface ChannelBuffer
public void resetWriterIndex()
ChannelBuffer
writerIndex
in this buffer. You can reposition
the current writerIndex
to the marked writerIndex
by
calling ChannelBuffer.resetWriterIndex()
. The initial value of the marked
writerIndex
is 0
.
resetWriterIndex
in interface ChannelBuffer
public void discardReadBytes()
ChannelBuffer
readerIndex
. It
moves the bytes between readerIndex
and writerIndex
to
the 0th index, and sets readerIndex
and writerIndex
to
0
and oldWriterIndex - oldReaderIndex
respectively.
Please refer to the class documentation for more detailed explanation.
discardReadBytes
in interface ChannelBuffer
public void ensureWritableBytes(int writableBytes)
ChannelBuffer
IndexOutOfBoundsException
.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
in interface ChannelBuffer
writableBytes
- the expected minimum number of writable bytespublic void getBytes(int index, byte[] dst)
ChannelBuffer
index
. This method does not modify readerIndex
or writerIndex
of this buffer
getBytes
in interface ChannelBuffer
public void getBytes(int index, ChannelBuffer dst)
ChannelBuffer
index
until the destination becomes
non-writable. This method is basically same with ChannelBuffer.getBytes(int,
ChannelBuffer, int, int)
, except that this method increases the writerIndex
of the destination by the number of the transferred bytes
while ChannelBuffer.getBytes(int, ChannelBuffer, int, int)
does not. This
method does not modify readerIndex
or writerIndex
of the
source buffer (i.e. this
).
getBytes
in interface ChannelBuffer
public void getBytes(int index, ChannelBuffer dst, int length)
ChannelBuffer
index
. This method is basically same with
ChannelBuffer.getBytes(int, ChannelBuffer, int, int)
, except that this method
increases the writerIndex
of the destination by the number of the
transferred bytes while ChannelBuffer.getBytes(int, ChannelBuffer, int, int)
does not. This method does not modify readerIndex
or writerIndex
of the source buffer (i.e. this
).
getBytes
in interface ChannelBuffer
length
- the number of bytes to transferpublic void setBytes(int index, byte[] src)
ChannelBuffer
index
. This method does not modify readerIndex
or writerIndex
of this buffer.
setBytes
in interface ChannelBuffer
public void setBytes(int index, ChannelBuffer src)
ChannelBuffer
index
until the source buffer becomes
unreadable. This method is basically same with ChannelBuffer.setBytes(int,
ChannelBuffer, int, int)
, except that this method increases the readerIndex
of the source buffer by the number of the transferred bytes
while ChannelBuffer.setBytes(int, ChannelBuffer, int, int)
does not. This
method does not modify readerIndex
or writerIndex
of the
source buffer (i.e. this
).
setBytes
in interface ChannelBuffer
public void setBytes(int index, ChannelBuffer src, int length)
ChannelBuffer
index
. This method is basically same with
ChannelBuffer.setBytes(int, ChannelBuffer, int, int)
, except that this method
increases the readerIndex
of the source buffer by the number of
the transferred bytes while ChannelBuffer.setBytes(int, ChannelBuffer, int,
int)
does not. This method does not modify readerIndex
or writerIndex
of the source buffer (i.e. this
).
setBytes
in interface ChannelBuffer
length
- the number of bytes to transferpublic byte readByte()
ChannelBuffer
readerIndex
and increases the readerIndex
by 1
in this buffer.
readByte
in interface ChannelBuffer
public ChannelBuffer readBytes(int length)
ChannelBuffer
readerIndex
and increases the readerIndex
by the
number of the transferred bytes (= length
). The returned buffer's
readerIndex
and writerIndex
are 0
and length
respectively.
readBytes
in interface ChannelBuffer
length
- the number of bytes to transfer
public void readBytes(byte[] dst, int dstIndex, int length)
ChannelBuffer
readerIndex
and increases the readerIndex
by the
number of the transferred bytes (= length
).
readBytes
in interface ChannelBuffer
dstIndex
- the first index of the destinationlength
- the number of bytes to transferpublic void readBytes(byte[] dst)
ChannelBuffer
readerIndex
and increases the readerIndex
by the
number of the transferred bytes (= dst.length
).
readBytes
in interface ChannelBuffer
public void readBytes(ChannelBuffer dst)
ChannelBuffer
readerIndex
until the destination becomes non-writable,
and increases the readerIndex
by the number of the transferred
bytes. This method is basically same with ChannelBuffer.readBytes(ChannelBuffer, int, int)
, except that this method increases
the writerIndex
of the destination by the number of the
transferred bytes while ChannelBuffer.readBytes(ChannelBuffer, int, int)
does
not.
readBytes
in interface ChannelBuffer
public void readBytes(ChannelBuffer dst, int length)
ChannelBuffer
readerIndex
and increases the readerIndex
by the
number of the transferred bytes (= length
). This method is
basically same with ChannelBuffer.readBytes(ChannelBuffer, int, int)
, except
that this method increases the writerIndex
of the destination by
the number of the transferred bytes (= length
) while ChannelBuffer.readBytes(ChannelBuffer, int, int)
does not.
readBytes
in interface ChannelBuffer
public void readBytes(ChannelBuffer dst, int dstIndex, int length)
ChannelBuffer
readerIndex
and increases the readerIndex
by the
number of the transferred bytes (= length
).
readBytes
in interface ChannelBuffer
dstIndex
- the first index of the destinationlength
- the number of bytes to transferpublic void readBytes(ByteBuffer dst)
ChannelBuffer
readerIndex
until the destination's position reaches its
limit, and increases the readerIndex
by the number of the
transferred bytes.
readBytes
in interface ChannelBuffer
public void readBytes(OutputStream out, int length) throws IOException
ChannelBuffer
readerIndex
.
readBytes
in interface ChannelBuffer
length
- the number of bytes to transfer
IOException
- if the specified stream threw an
exception during I/Opublic void skipBytes(int length)
ChannelBuffer
readerIndex
by the specified length
in this buffer.
skipBytes
in interface ChannelBuffer
public void writeByte(int value)
ChannelBuffer
writerIndex
and increases
the writerIndex
by 1
in this buffer. The 24 high-order
bits of the specified value are ignored.
writeByte
in interface ChannelBuffer
public void writeBytes(byte[] src, int srcIndex, int length)
ChannelBuffer
writerIndex
and increases the writerIndex
by
the number of the transferred bytes (= length
).
writeBytes
in interface ChannelBuffer
srcIndex
- the first index of the sourcelength
- the number of bytes to transferpublic void writeBytes(byte[] src)
ChannelBuffer
writerIndex
and increases the writerIndex
by
the number of the transferred bytes (= src.length
).
writeBytes
in interface ChannelBuffer
public void writeBytes(ChannelBuffer src)
ChannelBuffer
writerIndex
until the source buffer becomes
unreadable, and increases the writerIndex
by the number of the
transferred bytes. This method is basically same with ChannelBuffer.writeBytes(ChannelBuffer, int, int)
, except that this method increases
the readerIndex
of the source buffer by the number of the
transferred bytes while ChannelBuffer.writeBytes(ChannelBuffer, int, int)
does
not.
writeBytes
in interface ChannelBuffer
public void writeBytes(ChannelBuffer src, int length)
ChannelBuffer
writerIndex
and increases the writerIndex
by
the number of the transferred bytes (= length
). This method is
basically same with ChannelBuffer.writeBytes(ChannelBuffer, int, int)
, except
that this method increases the readerIndex
of the source buffer
by the number of the transferred bytes (= length
) while ChannelBuffer.writeBytes(ChannelBuffer, int, int)
does not.
writeBytes
in interface ChannelBuffer
length
- the number of bytes to transferpublic void writeBytes(ChannelBuffer src, int srcIndex, int length)
ChannelBuffer
writerIndex
and increases the writerIndex
by
the number of the transferred bytes (= length
).
writeBytes
in interface ChannelBuffer
srcIndex
- the first index of the sourcelength
- the number of bytes to transferpublic void writeBytes(ByteBuffer src)
ChannelBuffer
writerIndex
until the source buffer's position
reaches its limit, and increases the writerIndex
by the number of
the transferred bytes.
writeBytes
in interface ChannelBuffer
public int writeBytes(InputStream in, int length) throws IOException
ChannelBuffer
writerIndex
and increases the writerIndex
by
the number of the transferred bytes.
writeBytes
in interface ChannelBuffer
length
- the number of bytes to transfer
IOException
- if the specified stream threw an
exception during I/Opublic ChannelBuffer copy()
ChannelBuffer
buf.copy(buf.readerIndex(),
buf.readableBytes())
. This method does not modify readerIndex
or
writerIndex
of this buffer.
copy
in interface ChannelBuffer
public ByteBuffer toByteBuffer()
ChannelBuffer
buf.toByteBuffer(buf.readerIndex(), buf.readableBytes())
. This method
does not modify readerIndex
or writerIndex
of this
buffer.
toByteBuffer
in interface ChannelBuffer
public boolean equals(Object o)
ChannelBuffer
ChannelBuffer.readerIndex()
nor ChannelBuffer.writerIndex()
. This
method also returns false
for null
and an object which is
not an instance of ChannelBuffer
type.
equals
in interface ChannelBuffer
equals
in class Object
public int compareTo(ChannelBuffer that)
compareTo
in interface Comparable<ChannelBuffer>
public String toString()
toString
in class Object
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |