public class NettyBackedChannelBuffer extends Object implements ChannelBuffer
| 构造器和说明 |
|---|
NettyBackedChannelBuffer(org.jboss.netty.buffer.ChannelBuffer buffer) |
| 限定符和类型 | 方法和说明 |
|---|---|
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. |
equalspublic NettyBackedChannelBuffer(org.jboss.netty.buffer.ChannelBuffer buffer)
public org.jboss.netty.buffer.ChannelBuffer nettyChannelBuffer()
public int capacity()
ChannelBuffercapacity 在接口中 ChannelBufferpublic ChannelBuffer copy(int index, int length)
ChannelBufferreaderIndex or writerIndex of this
buffer.copy 在接口中 ChannelBufferpublic ChannelBufferFactory factory()
ChannelBufferChannelBuffer whose type and
default ByteOrder are same with this buffer.factory 在接口中 ChannelBufferpublic byte getByte(int index)
ChannelBufferindex in this buffer. This
method does not modify readerIndex or writerIndex of this
buffer.getByte 在接口中 ChannelBufferpublic void getBytes(int index,
byte[] dst,
int dstIndex,
int length)
ChannelBufferindex. This method does not modify readerIndex or writerIndex of this buffer.getBytes 在接口中 ChannelBufferdstIndex - the first index of the destinationlength - the number of bytes to transferpublic 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 在接口中 ChannelBufferpublic 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 在接口中 ChannelBufferdstIndex - the first index of the destinationlength - the number of bytes to transferpublic void getBytes(int index,
OutputStream dst,
int length)
throws IOException
ChannelBufferindex. This method does not modify readerIndex or writerIndex of this buffer.getBytes 在接口中 ChannelBufferlength - the number of bytes to transferIOException - 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 在接口中 ChannelBufferpublic 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 在接口中 ChannelBufferpublic void setBytes(int index,
byte[] src,
int srcIndex,
int length)
ChannelBufferindex. This method does not modify readerIndex or writerIndex of this buffer.setBytes 在接口中 ChannelBufferpublic 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 在接口中 ChannelBufferpublic 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 在接口中 ChannelBuffersrcIndex - the first index of the sourcelength - the number of bytes to transferpublic int setBytes(int index,
InputStream src,
int length)
throws IOException
ChannelBufferindex. This method does not
modify readerIndex or writerIndex of this buffer.setBytes 在接口中 ChannelBufferlength - the number of bytes to transfer-1 if the specified channel is closed.IOException - if the specified stream threw an
exception during I/Opublic ByteBuffer toByteBuffer(int index, int length)
ChannelBufferreaderIndex or writerIndex of this buffer.toByteBuffer 在接口中 ChannelBufferpublic byte[] array()
ChannelBufferarray 在接口中 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 在接口中 ChannelBufferpublic int arrayOffset()
ChannelBufferarrayOffset 在接口中 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 在接口中 ChannelBufferpublic ChannelBuffer copy()
ChannelBufferbuf.copy(buf.readerIndex(),
buf.readableBytes()). This method does not modify readerIndex or
writerIndex of this buffer.copy 在接口中 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 在接口中 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 在接口中 ChannelBufferwritableBytes - the expected minimum number of writable bytespublic void getBytes(int index,
byte[] dst)
ChannelBufferindex. This method does not modify readerIndex or writerIndex of this buffergetBytes 在接口中 ChannelBufferpublic 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 在接口中 ChannelBufferpublic 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 在接口中 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 在接口中 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 在接口中 ChannelBufferpublic boolean readable()
ChannelBuffertrue if and only if (this.writerIndex -
this.readerIndex) is greater than 0.readable 在接口中 ChannelBufferpublic int readableBytes()
ChannelBuffer(this.writerIndex - this.readerIndex).readableBytes 在接口中 ChannelBufferpublic byte readByte()
ChannelBufferreaderIndex and increases the readerIndex by 1 in this buffer.readByte 在接口中 ChannelBufferpublic void readBytes(byte[] dst)
ChannelBufferreaderIndex and increases the readerIndex by the
number of the transferred bytes (= dst.length).readBytes 在接口中 ChannelBufferpublic void readBytes(byte[] dst,
int dstIndex,
int length)
ChannelBufferreaderIndex and increases the readerIndex by the
number of the transferred bytes (= length).readBytes 在接口中 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 在接口中 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 在接口中 ChannelBufferpublic 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 在接口中 ChannelBufferpublic void readBytes(ChannelBuffer dst, int dstIndex, int length)
ChannelBufferreaderIndex and increases the readerIndex by the
number of the transferred bytes (= length).readBytes 在接口中 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 在接口中 ChannelBufferlength - the number of bytes to transferpublic void resetReaderIndex()
ChannelBufferreaderIndex to the marked readerIndex in this buffer.resetReaderIndex 在接口中 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 在接口中 ChannelBufferpublic int readerIndex()
ChannelBufferreaderIndex of this buffer.readerIndex 在接口中 ChannelBufferpublic void readerIndex(int readerIndex)
ChannelBufferreaderIndex of this buffer.readerIndex 在接口中 ChannelBufferpublic void readBytes(OutputStream dst, int length) throws IOException
ChannelBufferreaderIndex.readBytes 在接口中 ChannelBufferlength - the number of bytes to transferIOException - if the specified stream threw an
exception during I/Opublic void setBytes(int index,
byte[] src)
ChannelBufferindex. This method does not modify readerIndex or writerIndex of this buffer.setBytes 在接口中 ChannelBufferpublic 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 在接口中 ChannelBufferpublic 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 在接口中 ChannelBufferlength - the number of bytes to transferpublic 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 在接口中 ChannelBufferpublic void skipBytes(int length)
ChannelBufferreaderIndex by the specified length
in this buffer.skipBytes 在接口中 ChannelBufferpublic ByteBuffer toByteBuffer()
ChannelBufferbuf.toByteBuffer(buf.readerIndex(), buf.readableBytes()). This method
does not modify readerIndex or writerIndex of this
buffer.toByteBuffer 在接口中 ChannelBufferpublic boolean writable()
ChannelBuffertrue if and only if (this.capacity -
this.writerIndex) is greater than 0.writable 在接口中 ChannelBufferpublic int writableBytes()
ChannelBuffer(this.capacity - this.writerIndex).writableBytes 在接口中 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 在接口中 ChannelBufferpublic void writeBytes(byte[] src)
ChannelBufferwriterIndex and increases the writerIndex by
the number of the transferred bytes (= src.length).writeBytes 在接口中 ChannelBufferpublic void writeBytes(byte[] src,
int index,
int length)
ChannelBufferwriterIndex and increases the writerIndex by
the number of the transferred bytes (= length).writeBytes 在接口中 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 在接口中 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 在接口中 ChannelBufferpublic 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 在接口中 ChannelBufferlength - the number of bytes to transferpublic void writeBytes(ChannelBuffer src, int srcIndex, int length)
ChannelBufferwriterIndex and increases the writerIndex by
the number of the transferred bytes (= length).writeBytes 在接口中 ChannelBuffersrcIndex - the first index of the sourcelength - the number of bytes to transferpublic int writeBytes(InputStream src, int length) throws IOException
ChannelBufferwriterIndex and increases the writerIndex by
the number of the transferred bytes.writeBytes 在接口中 ChannelBufferlength - the number of bytes to transferIOException - if the specified stream threw an
exception during I/Opublic int writerIndex()
ChannelBufferwriterIndex of this buffer.writerIndex 在接口中 ChannelBufferpublic void writerIndex(int writerIndex)
ChannelBufferwriterIndex of this buffer.writerIndex 在接口中 ChannelBufferpublic int compareTo(ChannelBuffer o)
compareTo 在接口中 Comparable<ChannelBuffer>Copyright © 2011–2018 The Apache Software Foundation. All rights reserved.