|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.alibaba.dubbo.remoting.transport.netty.NettyBackedChannelBuffer
public class NettyBackedChannelBuffer
| Constructor Summary | |
|---|---|
NettyBackedChannelBuffer(org.jboss.netty.buffer.ChannelBuffer buffer)
|
|
| Method Summary | |
|---|---|
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. |
void |
clear()
Sets the readerIndex and writerIndex of this buffer to
0. |
int |
compareTo(ChannelBuffer o)
|
ChannelBuffer |
copy()
Returns a copy of this buffer's readable bytes. |
ChannelBuffer |
copy(int index,
int length)
Returns a copy of this buffer's sub-region. |
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. |
ChannelBufferFactory |
factory()
Returns the factory which creates a ChannelBuffer whose type and
default ByteOrder are same with this buffer. |
byte |
getByte(int index)
Gets a byte at the specified absolute index in this buffer. |
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,
byte[] dst,
int dstIndex,
int length)
Transfers this buffer's data to the specified destination starting at the specified absolute index. |
void |
getBytes(int index,
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. |
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 |
getBytes(int index,
ChannelBuffer dst,
int dstIndex,
int length)
Transfers this buffer's data to the specified destination starting at the specified absolute index. |
void |
getBytes(int index,
OutputStream dst,
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 |
isDirect()
Returns true if and only if this buffer is backed by an NIO
direct buffer. |
void |
markReaderIndex()
Marks the current readerIndex in this buffer. |
void |
markWriterIndex()
Marks the current writerIndex in this buffer. |
org.jboss.netty.buffer.ChannelBuffer |
nettyChannelBuffer()
|
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 dst,
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 |
setByte(int index,
int value)
Sets the specified byte at the specified absolute index 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,
byte[] src,
int srcIndex,
int length)
Transfers the specified source array's data to this buffer starting at the specified absolute index. |
void |
setBytes(int index,
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. |
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 |
setBytes(int index,
ChannelBuffer 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,
InputStream src,
int length)
Transfers the content of the specified source stream 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. |
ByteBuffer |
toByteBuffer(int index,
int length)
Converts this buffer's sub-region into a NIO buffer. |
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 index,
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 src,
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 |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface com.alibaba.dubbo.remoting.buffer.ChannelBuffer |
|---|
equals |
| Constructor Detail |
|---|
public NettyBackedChannelBuffer(org.jboss.netty.buffer.ChannelBuffer buffer)
| Method Detail |
|---|
public org.jboss.netty.buffer.ChannelBuffer nettyChannelBuffer()
public int capacity()
ChannelBuffer
capacity in interface ChannelBuffer
public ChannelBuffer copy(int index,
int length)
ChannelBufferreaderIndex or writerIndex of this
buffer.
copy in interface ChannelBufferpublic ChannelBufferFactory factory()
ChannelBufferChannelBuffer whose type and
default ByteOrder are same with this buffer.
factory in interface ChannelBufferpublic byte getByte(int index)
ChannelBufferindex in this buffer. This
method does not modify readerIndex or writerIndex of this
buffer.
getByte in interface ChannelBuffer
public void getBytes(int index,
byte[] dst,
int dstIndex,
int length)
ChannelBufferindex. This method does not modify readerIndex or writerIndex of this buffer.
getBytes in interface ChannelBufferdstIndex - the first index of the destinationlength - the number of bytes to transfer
public void getBytes(int index,
ByteBuffer dst)
ChannelBufferindex 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.
getBytes in interface ChannelBuffer
public void getBytes(int index,
ChannelBuffer dst,
int dstIndex,
int length)
ChannelBufferindex. This method does not modify readerIndex or writerIndex of both the source (i.e. this) and the destination.
getBytes in interface ChannelBufferdstIndex - the first index of the destinationlength - the number of bytes to transfer
public void getBytes(int index,
OutputStream dst,
int length)
throws IOException
ChannelBufferindex. This method does not modify readerIndex or writerIndex of this buffer.
getBytes in interface ChannelBufferlength - the number of bytes to transfer
IOException - if the specified stream threw an
exception during I/Opublic boolean isDirect()
ChannelBuffertrue if and only if this buffer is backed by an NIO
direct buffer.
isDirect in interface ChannelBuffer
public void setByte(int index,
int value)
ChannelBufferindex in this
buffer. The 24 high-order bits of the specified value are ignored. This
method does not modify readerIndex or writerIndex of this
buffer.
setByte in interface ChannelBuffer
public void setBytes(int index,
byte[] src,
int srcIndex,
int length)
ChannelBufferindex. This method does not modify readerIndex or writerIndex of this buffer.
setBytes in interface ChannelBuffer
public void setBytes(int index,
ByteBuffer src)
ChannelBufferindex until the source buffer's position
reaches its limit. This method does not modify readerIndex or
writerIndex of this buffer.
setBytes in interface ChannelBuffer
public void setBytes(int index,
ChannelBuffer src,
int srcIndex,
int length)
ChannelBufferindex. This method does not modify readerIndex or writerIndex of both the source (i.e. this) and the destination.
setBytes in interface ChannelBuffersrcIndex - the first index of the sourcelength - the number of bytes to transfer
public int setBytes(int index,
InputStream src,
int length)
throws IOException
ChannelBufferindex. This method does not
modify readerIndex or writerIndex of this buffer.
setBytes in interface ChannelBufferlength - the number of bytes to transfer
-1 if the specified channel is closed.
IOException - if the specified stream threw an
exception during I/O
public ByteBuffer toByteBuffer(int index,
int length)
ChannelBufferreaderIndex or writerIndex of this buffer.
toByteBuffer in interface ChannelBufferpublic byte[] array()
ChannelBuffer
array in interface ChannelBufferpublic boolean hasArray()
ChannelBuffertrue if and only if this buffer has a backing byte array.
If this method returns true, you can safely call ChannelBuffer.array() and
ChannelBuffer.arrayOffset().
hasArray in interface ChannelBufferpublic int arrayOffset()
ChannelBuffer
arrayOffset in interface ChannelBufferpublic void clear()
ChannelBufferreaderIndex 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 ChannelBufferpublic ChannelBuffer copy()
ChannelBufferbuf.copy(buf.readerIndex(),
buf.readableBytes()). This method does not modify readerIndex or
writerIndex of this buffer.
copy in interface ChannelBufferpublic void discardReadBytes()
ChannelBufferreaderIndex. 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 ChannelBufferpublic void ensureWritableBytes(int writableBytes)
ChannelBufferIndexOutOfBoundsException.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 ChannelBufferwritableBytes - the expected minimum number of writable bytes
public void getBytes(int index,
byte[] dst)
ChannelBufferindex. This method does not modify readerIndex or writerIndex of this buffer
getBytes in interface ChannelBuffer
public void getBytes(int index,
ChannelBuffer dst)
ChannelBufferindex 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)
ChannelBufferindex. 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 ChannelBufferlength - the number of bytes to transferpublic void markReaderIndex()
ChannelBufferreaderIndex 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 ChannelBufferpublic void markWriterIndex()
ChannelBufferwriterIndex 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 ChannelBufferpublic boolean readable()
ChannelBuffertrue if and only if (this.writerIndex -
this.readerIndex) is greater than 0.
readable in interface ChannelBufferpublic int readableBytes()
ChannelBuffer(this.writerIndex - this.readerIndex).
readableBytes in interface ChannelBufferpublic byte readByte()
ChannelBufferreaderIndex and increases the readerIndex by 1 in this buffer.
readByte in interface ChannelBufferpublic void readBytes(byte[] dst)
ChannelBufferreaderIndex and increases the readerIndex by the
number of the transferred bytes (= dst.length).
readBytes in interface ChannelBuffer
public void readBytes(byte[] dst,
int dstIndex,
int length)
ChannelBufferreaderIndex and increases the readerIndex by the
number of the transferred bytes (= length).
readBytes in interface ChannelBufferdstIndex - the first index of the destinationlength - the number of bytes to transferpublic void readBytes(ByteBuffer dst)
ChannelBufferreaderIndex until the destination's position reaches its
limit, and increases the readerIndex by the number of the
transferred bytes.
readBytes in interface ChannelBufferpublic void readBytes(ChannelBuffer dst)
ChannelBufferreaderIndex 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)
ChannelBufferreaderIndex 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)
ChannelBufferreaderIndex and increases the readerIndex by the
number of the transferred bytes (= length).
readBytes in interface ChannelBufferdstIndex - the first index of the destinationlength - the number of bytes to transferpublic ChannelBuffer readBytes(int length)
ChannelBufferreaderIndex 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 ChannelBufferlength - the number of bytes to transfer
public void resetReaderIndex()
ChannelBufferreaderIndex to the marked readerIndex in this buffer.
resetReaderIndex in interface ChannelBufferpublic void resetWriterIndex()
ChannelBufferwriterIndex 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 ChannelBufferpublic int readerIndex()
ChannelBufferreaderIndex of this buffer.
readerIndex in interface ChannelBufferpublic void readerIndex(int readerIndex)
ChannelBufferreaderIndex of this buffer.
readerIndex in interface ChannelBuffer
public void readBytes(OutputStream dst,
int length)
throws IOException
ChannelBufferreaderIndex.
readBytes in interface ChannelBufferlength - the number of bytes to transfer
IOException - if the specified stream threw an
exception during I/O
public void setBytes(int index,
byte[] src)
ChannelBufferindex. This method does not modify readerIndex or writerIndex of this buffer.
setBytes in interface ChannelBuffer
public void setBytes(int index,
ChannelBuffer src)
ChannelBufferindex 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)
ChannelBufferindex. 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 ChannelBufferlength - the number of bytes to transfer
public void setIndex(int readerIndex,
int writerIndex)
ChannelBufferreaderIndex 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:ChannelBufferbuf =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,ChannelBufferbuf =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 ChannelBufferpublic void skipBytes(int length)
ChannelBufferreaderIndex by the specified length
in this buffer.
skipBytes in interface ChannelBufferpublic ByteBuffer toByteBuffer()
ChannelBufferbuf.toByteBuffer(buf.readerIndex(), buf.readableBytes()). This method
does not modify readerIndex or writerIndex of this
buffer.
toByteBuffer in interface ChannelBufferpublic boolean writable()
ChannelBuffertrue if and only if (this.capacity -
this.writerIndex) is greater than 0.
writable in interface ChannelBufferpublic int writableBytes()
ChannelBuffer(this.capacity - this.writerIndex).
writableBytes in interface ChannelBufferpublic void writeByte(int value)
ChannelBufferwriterIndex and increases
the writerIndex by 1 in this buffer. The 24 high-order
bits of the specified value are ignored.
writeByte in interface ChannelBufferpublic void writeBytes(byte[] src)
ChannelBufferwriterIndex and increases the writerIndex by
the number of the transferred bytes (= src.length).
writeBytes in interface ChannelBuffer
public void writeBytes(byte[] src,
int index,
int length)
ChannelBufferwriterIndex and increases the writerIndex by
the number of the transferred bytes (= length).
writeBytes in interface ChannelBufferindex - the first index of the sourcelength - the number of bytes to transferpublic void writeBytes(ByteBuffer src)
ChannelBufferwriterIndex until the source buffer's position
reaches its limit, and increases the writerIndex by the number of
the transferred bytes.
writeBytes in interface ChannelBufferpublic void writeBytes(ChannelBuffer src)
ChannelBufferwriterIndex 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)
ChannelBufferwriterIndex 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 ChannelBufferlength - the number of bytes to transfer
public void writeBytes(ChannelBuffer src,
int srcIndex,
int length)
ChannelBufferwriterIndex and increases the writerIndex by
the number of the transferred bytes (= length).
writeBytes in interface ChannelBuffersrcIndex - the first index of the sourcelength - the number of bytes to transfer
public int writeBytes(InputStream src,
int length)
throws IOException
ChannelBufferwriterIndex and increases the writerIndex by
the number of the transferred bytes.
writeBytes in interface ChannelBufferlength - the number of bytes to transfer
IOException - if the specified stream threw an
exception during I/Opublic int writerIndex()
ChannelBufferwriterIndex of this buffer.
writerIndex in interface ChannelBufferpublic void writerIndex(int writerIndex)
ChannelBufferwriterIndex of this buffer.
writerIndex in interface ChannelBufferpublic int compareTo(ChannelBuffer o)
compareTo in interface Comparable<ChannelBuffer>
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||