类 AbstractChannelBuffer
- java.lang.Object
-
- com.alibaba.dubbo.remoting.buffer.AbstractChannelBuffer
-
- 所有已实现的接口:
ChannelBuffer,Comparable<ChannelBuffer>
public abstract class AbstractChannelBuffer extends Object implements ChannelBuffer
-
-
构造器概要
构造器 构造器 说明 AbstractChannelBuffer()
-
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 voidclear()Sets thereaderIndexandwriterIndexof this buffer to0.intcompareTo(ChannelBuffer that)ChannelBuffercopy()Returns a copy of this buffer's readable bytes.voiddiscardReadBytes()Discards the bytes between the 0th index andreaderIndex.voidensureWritableBytes(int writableBytes)Makes sure the number of the writable bytes is equal to or greater than the specified value.booleanequals(Object o)Determines if the content of the specified buffer is identical to the content of this array.voidgetBytes(int index, byte[] dst)Transfers this buffer's data to the specified destination starting at the specified absoluteindex.voidgetBytes(int index, ChannelBuffer dst)Transfers this buffer's data to the specified destination starting at the specified absoluteindexuntil the destination becomes non-writable.voidgetBytes(int index, ChannelBuffer dst, int length)Transfers this buffer's data to the specified destination starting at the specified absoluteindex.voidmarkReaderIndex()Marks the currentreaderIndexin this buffer.voidmarkWriterIndex()Marks the currentwriterIndexin this buffer.booleanreadable()Returnstrueif and only if(this.writerIndex - this.readerIndex)is greater than0.intreadableBytes()Returns the number of readable bytes which is equal to(this.writerIndex - this.readerIndex).bytereadByte()Gets a byte at the currentreaderIndexand increases thereaderIndexby1in this buffer.voidreadBytes(byte[] dst)Transfers this buffer's data to the specified destination starting at the currentreaderIndexand increases thereaderIndexby the number of the transferred bytes (=dst.length).voidreadBytes(byte[] dst, int dstIndex, int length)Transfers this buffer's data to the specified destination starting at the currentreaderIndexand increases thereaderIndexby the number of the transferred bytes (=length).ChannelBufferreadBytes(int length)Transfers this buffer's data to a newly created buffer starting at the currentreaderIndexand increases thereaderIndexby the number of the transferred bytes (=length).voidreadBytes(ChannelBuffer dst)Transfers this buffer's data to the specified destination starting at the currentreaderIndexuntil the destination becomes non-writable, and increases thereaderIndexby the number of the transferred bytes.voidreadBytes(ChannelBuffer dst, int length)Transfers this buffer's data to the specified destination starting at the currentreaderIndexand increases thereaderIndexby the number of the transferred bytes (=length).voidreadBytes(ChannelBuffer dst, int dstIndex, int length)Transfers this buffer's data to the specified destination starting at the currentreaderIndexand increases thereaderIndexby the number of the transferred bytes (=length).voidreadBytes(OutputStream out, int length)Transfers this buffer's data to the specified stream starting at the currentreaderIndex.voidreadBytes(ByteBuffer dst)Transfers this buffer's data to the specified destination starting at the currentreaderIndexuntil the destination's position reaches its limit, and increases thereaderIndexby the number of the transferred bytes.intreaderIndex()Returns thereaderIndexof this buffer.voidreaderIndex(int readerIndex)Sets thereaderIndexof this buffer.voidresetReaderIndex()Repositions the currentreaderIndexto the markedreaderIndexin this buffer.voidresetWriterIndex()Marks the currentwriterIndexin this buffer.voidsetBytes(int index, byte[] src)Transfers the specified source array's data to this buffer starting at the specified absoluteindex.voidsetBytes(int index, ChannelBuffer src)Transfers the specified source buffer's data to this buffer starting at the specified absoluteindexuntil the source buffer becomes unreadable.voidsetBytes(int index, ChannelBuffer src, int length)Transfers the specified source buffer's data to this buffer starting at the specified absoluteindex.voidsetIndex(int readerIndex, int writerIndex)Sets thereaderIndexandwriterIndexof this buffer in one shot.voidskipBytes(int length)Increases the currentreaderIndexby the specifiedlengthin this buffer.ByteBuffertoByteBuffer()Converts this buffer's readable bytes into a NIO buffer.StringtoString()booleanwritable()Returnstrueif and only if(this.capacity - this.writerIndex)is greater than0.intwritableBytes()Returns the number of writable bytes which is equal to(this.capacity - this.writerIndex).voidwriteByte(int value)Sets the specified byte at the currentwriterIndexand increases thewriterIndexby1in this buffer.voidwriteBytes(byte[] src)Transfers the specified source array's data to this buffer starting at the currentwriterIndexand increases thewriterIndexby the number of the transferred bytes (=src.length).voidwriteBytes(byte[] src, int srcIndex, int length)Transfers the specified source array's data to this buffer starting at the currentwriterIndexand increases thewriterIndexby the number of the transferred bytes (=length).voidwriteBytes(ChannelBuffer src)Transfers the specified source buffer's data to this buffer starting at the currentwriterIndexuntil the source buffer becomes unreadable, and increases thewriterIndexby the number of the transferred bytes.voidwriteBytes(ChannelBuffer src, int length)Transfers the specified source buffer's data to this buffer starting at the currentwriterIndexand increases thewriterIndexby the number of the transferred bytes (=length).voidwriteBytes(ChannelBuffer src, int srcIndex, int length)Transfers the specified source buffer's data to this buffer starting at the currentwriterIndexand increases thewriterIndexby the number of the transferred bytes (=length).intwriteBytes(InputStream in, int length)Transfers the content of the specified stream to this buffer starting at the currentwriterIndexand increases thewriterIndexby the number of the transferred bytes.voidwriteBytes(ByteBuffer src)Transfers the specified source buffer's data to this buffer starting at the currentwriterIndexuntil the source buffer's position reaches its limit, and increases thewriterIndexby the number of the transferred bytes.intwriterIndex()Returns thewriterIndexof this buffer.voidwriterIndex(int writerIndex)Sets thewriterIndexof this buffer.
-
-
-
方法详细资料
-
readerIndex
public int readerIndex()
从接口复制的说明:ChannelBufferReturns thereaderIndexof this buffer.- 指定者:
readerIndex在接口中ChannelBuffer
-
readerIndex
public void readerIndex(int readerIndex)
从接口复制的说明:ChannelBufferSets thereaderIndexof this buffer.- 指定者:
readerIndex在接口中ChannelBuffer
-
writerIndex
public int writerIndex()
从接口复制的说明:ChannelBufferReturns thewriterIndexof this buffer.- 指定者:
writerIndex在接口中ChannelBuffer
-
writerIndex
public void writerIndex(int writerIndex)
从接口复制的说明:ChannelBufferSets thewriterIndexof this buffer.- 指定者:
writerIndex在接口中ChannelBuffer
-
setIndex
public void setIndex(int readerIndex, int writerIndex)从接口复制的说明:ChannelBufferSets thereaderIndexandwriterIndexof 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: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 anIndexOutOfBoundsExceptionas 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()
从接口复制的说明:ChannelBufferSets thereaderIndexandwriterIndexof 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 thelimitto thecapacityof the buffer.- 指定者:
clear在接口中ChannelBuffer
-
readable
public boolean readable()
从接口复制的说明:ChannelBufferReturnstrueif and only if(this.writerIndex - this.readerIndex)is greater than0.- 指定者:
readable在接口中ChannelBuffer
-
writable
public boolean writable()
从接口复制的说明:ChannelBufferReturnstrueif and only if(this.capacity - this.writerIndex)is greater than0.- 指定者:
writable在接口中ChannelBuffer
-
readableBytes
public int readableBytes()
从接口复制的说明:ChannelBufferReturns the number of readable bytes which is equal to(this.writerIndex - this.readerIndex).- 指定者:
readableBytes在接口中ChannelBuffer
-
writableBytes
public int writableBytes()
从接口复制的说明:ChannelBufferReturns the number of writable bytes which is equal to(this.capacity - this.writerIndex).- 指定者:
writableBytes在接口中ChannelBuffer
-
markReaderIndex
public void markReaderIndex()
从接口复制的说明:ChannelBufferMarks the currentreaderIndexin this buffer. You can reposition the currentreaderIndexto the markedreaderIndexby callingChannelBuffer.resetReaderIndex(). The initial value of the markedreaderIndexis0.- 指定者:
markReaderIndex在接口中ChannelBuffer
-
resetReaderIndex
public void resetReaderIndex()
从接口复制的说明:ChannelBufferRepositions the currentreaderIndexto the markedreaderIndexin this buffer.- 指定者:
resetReaderIndex在接口中ChannelBuffer
-
markWriterIndex
public void markWriterIndex()
从接口复制的说明:ChannelBufferMarks the currentwriterIndexin this buffer. You can reposition the currentwriterIndexto the markedwriterIndexby callingChannelBuffer.resetWriterIndex(). The initial value of the markedwriterIndexis0.- 指定者:
markWriterIndex在接口中ChannelBuffer
-
resetWriterIndex
public void resetWriterIndex()
从接口复制的说明:ChannelBufferMarks the currentwriterIndexin this buffer. You can reposition the currentwriterIndexto the markedwriterIndexby callingChannelBuffer.resetWriterIndex(). The initial value of the markedwriterIndexis0.- 指定者:
resetWriterIndex在接口中ChannelBuffer
-
discardReadBytes
public void discardReadBytes()
从接口复制的说明:ChannelBufferDiscards the bytes between the 0th index andreaderIndex. It moves the bytes betweenreaderIndexandwriterIndexto the 0th index, and setsreaderIndexandwriterIndexto0andoldWriterIndex - oldReaderIndexrespectively. Please refer to the class documentation for more detailed explanation.- 指定者:
discardReadBytes在接口中ChannelBuffer
-
ensureWritableBytes
public void ensureWritableBytes(int writableBytes)
从接口复制的说明:ChannelBufferMakes 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 bytesbecomes 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)从接口复制的说明:ChannelBufferTransfers this buffer's data to the specified destination starting at the specified absoluteindex. This method does not modifyreaderIndexorwriterIndexof this buffer- 指定者:
getBytes在接口中ChannelBuffer
-
getBytes
public void getBytes(int index, ChannelBuffer dst)从接口复制的说明:ChannelBufferTransfers this buffer's data to the specified destination starting at the specified absoluteindexuntil the destination becomes non-writable. This method is basically same withChannelBuffer.getBytes(int, ChannelBuffer, int, int), except that this method increases thewriterIndexof the destination by the number of the transferred bytes whileChannelBuffer.getBytes(int, ChannelBuffer, int, int)does not. This method does not modifyreaderIndexorwriterIndexof the source buffer (i.e.this).- 指定者:
getBytes在接口中ChannelBuffer
-
getBytes
public void getBytes(int index, ChannelBuffer dst, int length)从接口复制的说明:ChannelBufferTransfers 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 thewriterIndexof the destination by the number of the transferred bytes whileChannelBuffer.getBytes(int, ChannelBuffer, int, int)does not. This method does not modifyreaderIndexorwriterIndexof the source buffer (i.e.this).- 指定者:
getBytes在接口中ChannelBufferlength- the number of bytes to transfer
-
setBytes
public void setBytes(int index, byte[] src)从接口复制的说明:ChannelBufferTransfers the specified source array's data to this buffer starting at the specified absoluteindex. This method does not modifyreaderIndexorwriterIndexof this buffer.- 指定者:
setBytes在接口中ChannelBuffer
-
setBytes
public void setBytes(int index, ChannelBuffer src)从接口复制的说明:ChannelBufferTransfers the specified source buffer's data to this buffer starting at the specified absoluteindexuntil the source buffer becomes unreadable. This method is basically same withChannelBuffer.setBytes(int, ChannelBuffer, int, int), except that this method increases thereaderIndexof the source buffer by the number of the transferred bytes whileChannelBuffer.setBytes(int, ChannelBuffer, int, int)does not. This method does not modifyreaderIndexorwriterIndexof the source buffer (i.e.this).- 指定者:
setBytes在接口中ChannelBuffer
-
setBytes
public void setBytes(int index, ChannelBuffer src, int length)从接口复制的说明:ChannelBufferTransfers 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 thereaderIndexof the source buffer by the number of the transferred bytes whileChannelBuffer.setBytes(int, ChannelBuffer, int, int)does not. This method does not modifyreaderIndexorwriterIndexof the source buffer (i.e.this).- 指定者:
setBytes在接口中ChannelBufferlength- the number of bytes to transfer
-
readByte
public byte readByte()
从接口复制的说明:ChannelBufferGets a byte at the currentreaderIndexand increases thereaderIndexby1in this buffer.- 指定者:
readByte在接口中ChannelBuffer
-
readBytes
public ChannelBuffer readBytes(int length)
从接口复制的说明:ChannelBufferTransfers this buffer's data to a newly created buffer starting at the currentreaderIndexand increases thereaderIndexby the number of the transferred bytes (=length). The returned buffer'sreaderIndexandwriterIndexare0andlengthrespectively.- 指定者:
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)从接口复制的说明:ChannelBufferTransfers this buffer's data to the specified destination starting at the currentreaderIndexand increases thereaderIndexby the number of the transferred bytes (=length).- 指定者:
readBytes在接口中ChannelBufferdstIndex- the first index of the destinationlength- the number of bytes to transfer
-
readBytes
public void readBytes(byte[] dst)
从接口复制的说明:ChannelBufferTransfers this buffer's data to the specified destination starting at the currentreaderIndexand increases thereaderIndexby the number of the transferred bytes (=dst.length).- 指定者:
readBytes在接口中ChannelBuffer
-
readBytes
public void readBytes(ChannelBuffer dst)
从接口复制的说明:ChannelBufferTransfers this buffer's data to the specified destination starting at the currentreaderIndexuntil the destination becomes non-writable, and increases thereaderIndexby the number of the transferred bytes. This method is basically same withChannelBuffer.readBytes(ChannelBuffer, int, int), except that this method increases thewriterIndexof 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)
从接口复制的说明:ChannelBufferTransfers this buffer's data to the specified destination starting at the currentreaderIndexand increases thereaderIndexby the number of the transferred bytes (=length). This method is basically same withChannelBuffer.readBytes(ChannelBuffer, int, int), except that this method increases thewriterIndexof 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)
从接口复制的说明:ChannelBufferTransfers this buffer's data to the specified destination starting at the currentreaderIndexand increases thereaderIndexby the number of the transferred bytes (=length).- 指定者:
readBytes在接口中ChannelBufferdstIndex- the first index of the destinationlength- the number of bytes to transfer
-
readBytes
public void readBytes(ByteBuffer dst)
从接口复制的说明:ChannelBufferTransfers this buffer's data to the specified destination starting at the currentreaderIndexuntil the destination's position reaches its limit, and increases thereaderIndexby the number of the transferred bytes.- 指定者:
readBytes在接口中ChannelBuffer
-
readBytes
public void readBytes(OutputStream out, int length) throws IOException
从接口复制的说明:ChannelBufferTransfers this buffer's data to the specified stream starting at the currentreaderIndex.- 指定者:
readBytes在接口中ChannelBufferlength- the number of bytes to transfer- 抛出:
IOException- if the specified stream threw an exception during I/O
-
skipBytes
public void skipBytes(int length)
从接口复制的说明:ChannelBufferIncreases the currentreaderIndexby the specifiedlengthin this buffer.- 指定者:
skipBytes在接口中ChannelBuffer
-
writeByte
public void writeByte(int value)
从接口复制的说明:ChannelBufferSets the specified byte at the currentwriterIndexand increases thewriterIndexby1in 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)从接口复制的说明:ChannelBufferTransfers the specified source array's data to this buffer starting at the currentwriterIndexand increases thewriterIndexby the number of the transferred bytes (=length).- 指定者:
writeBytes在接口中ChannelBuffersrcIndex- the first index of the sourcelength- the number of bytes to transfer
-
writeBytes
public void writeBytes(byte[] src)
从接口复制的说明:ChannelBufferTransfers the specified source array's data to this buffer starting at the currentwriterIndexand increases thewriterIndexby the number of the transferred bytes (=src.length).- 指定者:
writeBytes在接口中ChannelBuffer
-
writeBytes
public void writeBytes(ChannelBuffer src)
从接口复制的说明:ChannelBufferTransfers the specified source buffer's data to this buffer starting at the currentwriterIndexuntil the source buffer becomes unreadable, and increases thewriterIndexby the number of the transferred bytes. This method is basically same withChannelBuffer.writeBytes(ChannelBuffer, int, int), except that this method increases thereaderIndexof 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)
从接口复制的说明:ChannelBufferTransfers the specified source buffer's data to this buffer starting at the currentwriterIndexand increases thewriterIndexby the number of the transferred bytes (=length). This method is basically same withChannelBuffer.writeBytes(ChannelBuffer, int, int), except that this method increases thereaderIndexof the source buffer by the number of the transferred bytes (=length) whileChannelBuffer.writeBytes(ChannelBuffer, int, int)does not.- 指定者:
writeBytes在接口中ChannelBufferlength- the number of bytes to transfer
-
writeBytes
public void writeBytes(ChannelBuffer src, int srcIndex, int length)
从接口复制的说明:ChannelBufferTransfers the specified source buffer's data to this buffer starting at the currentwriterIndexand increases thewriterIndexby the number of the transferred bytes (=length).- 指定者:
writeBytes在接口中ChannelBuffersrcIndex- the first index of the sourcelength- the number of bytes to transfer
-
writeBytes
public void writeBytes(ByteBuffer src)
从接口复制的说明:ChannelBufferTransfers the specified source buffer's data to this buffer starting at the currentwriterIndexuntil the source buffer's position reaches its limit, and increases thewriterIndexby the number of the transferred bytes.- 指定者:
writeBytes在接口中ChannelBuffer
-
writeBytes
public int writeBytes(InputStream in, int length) throws IOException
从接口复制的说明:ChannelBufferTransfers the content of the specified stream to this buffer starting at the currentwriterIndexand increases thewriterIndexby the number of the transferred bytes.- 指定者:
writeBytes在接口中ChannelBufferlength- 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()
从接口复制的说明:ChannelBufferReturns 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 modifyreaderIndexorwriterIndexof this buffer.- 指定者:
copy在接口中ChannelBuffer
-
toByteBuffer
public ByteBuffer toByteBuffer()
从接口复制的说明:ChannelBufferConverts 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 modifyreaderIndexorwriterIndexof this buffer.- 指定者:
toByteBuffer在接口中ChannelBuffer
-
equals
public boolean equals(Object o)
从接口复制的说明:ChannelBufferDetermines 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 returnsfalsefornulland an object which is not an instance ofChannelBuffertype.- 指定者:
equals在接口中ChannelBuffer- 覆盖:
equals在类中Object
-
compareTo
public int compareTo(ChannelBuffer that)
- 指定者:
compareTo在接口中Comparable<ChannelBuffer>
-
-