org.jboss.netty.buffer
类 DynamicChannelBuffer

java.lang.Object
  继承者 org.jboss.netty.buffer.AbstractChannelBuffer
      继承者 org.jboss.netty.buffer.DynamicChannelBuffer
所有已实现的接口:
java.lang.Comparable<ChannelBuffer>, ChannelBuffer

public class DynamicChannelBuffer
extends AbstractChannelBuffer

一个能根据容量需求增加的动态容量缓冲.强烈建议使用ChannelBuffers.dynamicBuffer(int)代替调用构造方法.


构造方法摘要
DynamicChannelBuffer(java.nio.ByteOrder endianness, int estimatedLength)
           
DynamicChannelBuffer(java.nio.ByteOrder endianness, int estimatedLength, ChannelBufferFactory factory)
           
DynamicChannelBuffer(int estimatedLength)
           
 
方法摘要
 byte[] array()
          返回该缓冲支持的字节数组.
 int arrayOffset()
          返回该缓冲内部的字节数组的第一个字节的偏移量
 int capacity()
          返回缓冲区包含字节数量.
 ChannelBuffer copy(int index, int length)
          返回该缓冲的子部分,修改其中任何一个缓冲对另一个都不会有影响.且并不修改该缓冲区的 readerIndexwriterIndex.
 ChannelBuffer duplicate()
          返回该缓冲全部分.修改其中任何一个缓冲对另一个都会有影响,不过它们维护着各自的索引和标记,该方法等同于 buf.slice(0, buf.capacity()).
 void ensureWritableBytes(int minWritableBytes)
          保证可写字节数量大于等于指定的值.
 ChannelBufferFactory factory()
          返回一个用于创建与这个缓冲相同类型和默认ByteOrderChannelBuffer的工厂.
 byte getByte(int index)
          在指定绝对值index处获取一个字节.该方法并不修改缓冲的 readerIndexwriterIndex.
 void getBytes(int index, byte[] dst, int dstIndex, int length)
          在该缓冲区指定绝对值index开始处传输数据到指定的目标.
 void getBytes(int index, java.nio.ByteBuffer dst)
          在该缓冲区指定绝对值index开始处传输数据到指定的目标,直到目标的position到达限制为止.
 void getBytes(int index, ChannelBuffer dst, int dstIndex, int length)
          在该缓冲区指定绝对值index开始处传输数据到指定的目标.
 int getBytes(int index, java.nio.channels.GatheringByteChannel out, int length)
          在该缓冲区指定绝对值index开始处传输数据到指定的通道.该方法并不修改该缓冲区的 readerIndexwriterIndex.
 void getBytes(int index, java.io.OutputStream out, int length)
          在该缓冲区指定绝对值index开始处传输数据到指定的数据流.该方法并不修改该缓冲区的 readerIndexwriterIndex.
 int getInt(int index)
          在指定绝对值index处获取一个32位符号整型.该方法并不修改缓冲的 readerIndexwriterIndex.
 long getLong(int index)
          在指定绝对值index处获取一个64位整型.该方法并不修改缓冲的 readerIndexwriterIndex.
 short getShort(int index)
          在指定绝对值index处获取一个16位整型.该方法并不修改缓冲的 readerIndexwriterIndex.
 int getUnsignedMedium(int index)
          在指定绝对值index处获取一个24位无符号整型.该方法并不修改缓冲的 readerIndexwriterIndex.
 boolean hasArray()
          只有当该缓冲有一个支持的字节数组才返回true,如果该方法返回true,你可以安全的调用 ChannelBuffer.array()ChannelBuffer.arrayOffset().
 boolean isDirect()
          判断该缓冲区是否是由NIO direct缓冲支持.
 java.nio.ByteOrder order()
          返回缓冲区的 字节序.
 void setByte(int index, int value)
          在指定绝对值index处设置指定的字节. 24高序位会被忽略.
 void setBytes(int index, byte[] src, int srcIndex, int length)
          把指定的源数组的数据传输到该缓冲区指定绝对值index的位置 .
 void setBytes(int index, java.nio.ByteBuffer src)
          把指定的源缓冲的数据传输到该缓冲区指定绝对值index的位置 ,直到源缓冲的position到达限制为止.
 void setBytes(int index, ChannelBuffer src, int srcIndex, int length)
          把指定的源缓冲区的数据传输到该缓冲区指定绝对值index的位置 .
 int setBytes(int index, java.io.InputStream in, int length)
          把指定的源输入流的数据传输到该缓冲区指定绝对值index的位置 .
 int setBytes(int index, java.nio.channels.ScatteringByteChannel in, int length)
          把指定的源通道的数据传输到该缓冲区指定绝对值index的位置 .
 void setInt(int index, int value)
          在指定绝对值index处设置指定的32位整型.
 void setLong(int index, long value)
          在指定绝对值index处设置指定的64位长整型.
 void setMedium(int index, int value)
          在指定绝对值index处设置指定的24位整型.
 void setShort(int index, int value)
          在指定绝对值index处设置指定的16位短整型. 16高序位会被忽略.
 ChannelBuffer slice(int index, int length)
          返回该缓冲子部分的切片.修改其中任何一个缓冲对另一个都会有影响,不过它们维护着各自的索引和标记,且并不修改该缓冲区的 readerIndexwriterIndex.
 java.nio.ByteBuffer toByteBuffer(int index, int length)
          转化该缓冲区的子部分到一个NIO缓冲区.返回的缓冲区可能有或没有和该缓冲共享内容,但是它们有各自的索引和标记.
 void writeByte(int value)
          在当前的writerIndex设置指定的字节,并为writerIndex加1. 24高序位会被忽略.
 void writeBytes(byte[] src, int srcIndex, int length)
          从指定的源数组中传输数据到该缓冲区的当前writerIndex处,并使用传输的字节数( = length )增加 wirterIndex.
 void writeBytes(java.nio.ByteBuffer src)
          从指定的源缓冲中传输数据到该缓冲区的当前writerIndex处,直到源缓冲的position达到限制为止,并使用传输的字节数增加 wirterIndex.
 void writeBytes(ChannelBuffer src, int srcIndex, int length)
          从指定的源缓冲区中传输数据到该缓冲区的当前writerIndex处,并使用传输的字节数( = length )增加 wirterIndex
 int writeBytes(java.io.InputStream in, int length)
          从指定的源输入流中传输数据到该缓冲区的当前writerIndex处,并使用传输的字节数( = length )增加 wirterIndex.
 int writeBytes(java.nio.channels.ScatteringByteChannel in, int length)
          从指定的源通道中传输数据到该缓冲区的当前writerIndex处,并使用传输的字节数增加 wirterIndex.
 void writeInt(int value)
          在当前的writerIndex设置指定的32位整型,并为writerIndex加4.
 void writeLong(long value)
          在当前的writerIndex设置指定的64位长整型,并为writerIndex加8.
 void writeMedium(int value)
          在当前的writerIndex设置指定的24位整型,并为writerIndex加3.
 void writeShort(int value)
          在当前的writerIndex设置指定的16位短整型,并为writerIndex加2. 16高序位会被忽略.
 void writeZero(int length)
          在当前的writerIndex处填充NUL (0x00),并使用指定的length增加writerIndex.
 
从类 org.jboss.netty.buffer.AbstractChannelBuffer 继承的方法
bytesBefore, bytesBefore, bytesBefore, bytesBefore, bytesBefore, bytesBefore, clear, compareTo, copy, discardReadBytes, equals, getBytes, getBytes, getBytes, getChar, getDouble, getFloat, getMedium, getUnsignedByte, getUnsignedInt, getUnsignedShort, hashCode, indexOf, indexOf, markReaderIndex, markWriterIndex, readable, readableBytes, readByte, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readBytes, readChar, readDouble, readerIndex, readerIndex, readFloat, readInt, readLong, readMedium, readShort, readSlice, readSlice, readUnsignedByte, readUnsignedInt, readUnsignedMedium, readUnsignedShort, resetReaderIndex, resetWriterIndex, setBytes, setBytes, setBytes, setChar, setDouble, setFloat, setIndex, setZero, skipBytes, skipBytes, slice, toByteBuffer, toByteBuffers, toByteBuffers, toString, toString, toString, toString, toString, toString, toString, writable, writableBytes, writeBytes, writeBytes, writeBytes, writeChar, writeDouble, writeFloat, writerIndex, writerIndex
 
从类 java.lang.Object 继承的方法
getClass, notify, notifyAll, wait, wait, wait
 

构造方法详细信息

DynamicChannelBuffer

public DynamicChannelBuffer(int estimatedLength)

DynamicChannelBuffer

public DynamicChannelBuffer(java.nio.ByteOrder endianness,
                            int estimatedLength)

DynamicChannelBuffer

public DynamicChannelBuffer(java.nio.ByteOrder endianness,
                            int estimatedLength,
                            ChannelBufferFactory factory)
方法详细信息

ensureWritableBytes

public void ensureWritableBytes(int minWritableBytes)
从接口 ChannelBuffer 复制的描述
保证可写字节数量大于等于指定的值. 如果有足够的可写字节,该方法会不做任何操作直接返回. 否则:

指定者:
接口 ChannelBuffer 中的 ensureWritableBytes
覆盖:
AbstractChannelBuffer 中的 ensureWritableBytes
参数:
minWritableBytes - 最小期望的可写字节

factory

public ChannelBufferFactory factory()
从接口 ChannelBuffer 复制的描述
返回一个用于创建与这个缓冲相同类型和默认ByteOrderChannelBuffer的工厂.


order

public java.nio.ByteOrder order()
从接口 ChannelBuffer 复制的描述
返回缓冲区的 字节序.


isDirect

public boolean isDirect()
从接口 ChannelBuffer 复制的描述
判断该缓冲区是否是由NIO direct缓冲支持.


capacity

public int capacity()
从接口 ChannelBuffer 复制的描述
返回缓冲区包含字节数量.


hasArray

public boolean hasArray()
从接口 ChannelBuffer 复制的描述
只有当该缓冲有一个支持的字节数组才返回true,如果该方法返回true,你可以安全的调用 ChannelBuffer.array()ChannelBuffer.arrayOffset().


array

public byte[] array()
从接口 ChannelBuffer 复制的描述
返回该缓冲支持的字节数组.


arrayOffset

public int arrayOffset()
从接口 ChannelBuffer 复制的描述
返回该缓冲内部的字节数组的第一个字节的偏移量


getByte

public byte getByte(int index)
从接口 ChannelBuffer 复制的描述
在指定绝对值index处获取一个字节.该方法并不修改缓冲的 readerIndexwriterIndex.


getShort

public short getShort(int index)
从接口 ChannelBuffer 复制的描述
在指定绝对值index处获取一个16位整型.该方法并不修改缓冲的 readerIndexwriterIndex.


getUnsignedMedium

public int getUnsignedMedium(int index)
从接口 ChannelBuffer 复制的描述
在指定绝对值index处获取一个24位无符号整型.该方法并不修改缓冲的 readerIndexwriterIndex.


getInt

public int getInt(int index)
从接口 ChannelBuffer 复制的描述
在指定绝对值index处获取一个32位符号整型.该方法并不修改缓冲的 readerIndexwriterIndex.


getLong

public long getLong(int index)
从接口 ChannelBuffer 复制的描述
在指定绝对值index处获取一个64位整型.该方法并不修改缓冲的 readerIndexwriterIndex.


getBytes

public void getBytes(int index,
                     byte[] dst,
                     int dstIndex,
                     int length)
从接口 ChannelBuffer 复制的描述
在该缓冲区指定绝对值index开始处传输数据到指定的目标. 该方法并不修改该缓冲区的 readerIndexwriterIndex.

dstIndex - 目标缓冲区的开始索引
length - 传输的字节数量

getBytes

public void getBytes(int index,
                     ChannelBuffer dst,
                     int dstIndex,
                     int length)
从接口 ChannelBuffer 复制的描述
在该缓冲区指定绝对值index开始处传输数据到指定的目标. 该方法并不修改源缓冲区和目标缓冲区的 readerIndexwriterIndex

dstIndex - 目标缓冲区的开始索引
length - 传输字节数量

getBytes

public void getBytes(int index,
                     java.nio.ByteBuffer dst)
从接口 ChannelBuffer 复制的描述
在该缓冲区指定绝对值index开始处传输数据到指定的目标,直到目标的position到达限制为止. 该方法并不修改该缓冲区的 readerIndexwriterIndex,但会增加目标的 position.


getBytes

public int getBytes(int index,
                    java.nio.channels.GatheringByteChannel out,
                    int length)
             throws java.io.IOException
从接口 ChannelBuffer 复制的描述
在该缓冲区指定绝对值index开始处传输数据到指定的通道.该方法并不修改该缓冲区的 readerIndexwriterIndex.

length - 传输字节的最大数
返回:
传输的实际字节数
抛出:
java.io.IOException - 指定的通道在I/O期间抛出的异常

getBytes

public void getBytes(int index,
                     java.io.OutputStream out,
                     int length)
              throws java.io.IOException
从接口 ChannelBuffer 复制的描述
在该缓冲区指定绝对值index开始处传输数据到指定的数据流.该方法并不修改该缓冲区的 readerIndexwriterIndex.

length - 传输字节的数量
抛出:
java.io.IOException - 指定的数据流在I/O期间抛出的异常

setByte

public void setByte(int index,
                    int value)
从接口 ChannelBuffer 复制的描述
在指定绝对值index处设置指定的字节. 24高序位会被忽略. 该方法并不修改该缓冲区的 readerIndexwriterIndex.


setShort

public void setShort(int index,
                     int value)
从接口 ChannelBuffer 复制的描述
在指定绝对值index处设置指定的16位短整型. 16高序位会被忽略. 该方法并不修改该缓冲区的 readerIndexwriterIndex.


setMedium

public void setMedium(int index,
                      int value)
从接口 ChannelBuffer 复制的描述
在指定绝对值index处设置指定的24位整型. 请注意大多数有意义的字节会被忽略. 该方法并不修改该缓冲区的 readerIndexwriterIndex.


setInt

public void setInt(int index,
                   int value)
从接口 ChannelBuffer 复制的描述
在指定绝对值index处设置指定的32位整型. 该方法并不修改该缓冲区的 readerIndexwriterIndex.


setLong

public void setLong(int index,
                    long value)
从接口 ChannelBuffer 复制的描述
在指定绝对值index处设置指定的64位长整型. 该方法并不修改该缓冲区的 readerIndexwriterIndex.


setBytes

public void setBytes(int index,
                     byte[] src,
                     int srcIndex,
                     int length)
从接口 ChannelBuffer 复制的描述
把指定的源数组的数据传输到该缓冲区指定绝对值index的位置 . 该方法并不修改该缓冲区和源缓冲区的 readerIndexwriterIndex.


setBytes

public void setBytes(int index,
                     ChannelBuffer src,
                     int srcIndex,
                     int length)
从接口 ChannelBuffer 复制的描述
把指定的源缓冲区的数据传输到该缓冲区指定绝对值index的位置 . 该方法并不修改该缓冲区和源缓冲区的 readerIndexwriterIndex.

srcIndex - 源缓冲区的开始索引
length - 传输的字节数

setBytes

public void setBytes(int index,
                     java.nio.ByteBuffer src)
从接口 ChannelBuffer 复制的描述
把指定的源缓冲的数据传输到该缓冲区指定绝对值index的位置 ,直到源缓冲的position到达限制为止. 该方法并不修改该缓冲区和源缓冲区的 readerIndexwriterIndex.


setBytes

public int setBytes(int index,
                    java.io.InputStream in,
                    int length)
             throws java.io.IOException
从接口 ChannelBuffer 复制的描述
把指定的源输入流的数据传输到该缓冲区指定绝对值index的位置 . 该方法并不修改该缓冲区和源缓冲区的 readerIndexwriterIndex.

length - 传输的字节数
返回:
返回从输入流读取的实际字节数.如果指定的输入流被关闭则返回 -1.
抛出:
java.io.IOException - 输入流在IO期间抛出的异常

setBytes

public int setBytes(int index,
                    java.nio.channels.ScatteringByteChannel in,
                    int length)
             throws java.io.IOException
从接口 ChannelBuffer 复制的描述
把指定的源通道的数据传输到该缓冲区指定绝对值index的位置 . 该方法并不修改该缓冲区和源缓冲区的 readerIndexwriterIndex.

length - 最大的传输字节数
返回:
返回从通道读取的实际字节数.如果指定的通道被关闭则返回 -1.
抛出:
java.io.IOException - 通道在IO期间抛出的异常

writeByte

public void writeByte(int value)
从接口 ChannelBuffer 复制的描述
在当前的writerIndex设置指定的字节,并为writerIndex加1. 24高序位会被忽略.

指定者:
接口 ChannelBuffer 中的 writeByte
覆盖:
AbstractChannelBuffer 中的 writeByte

writeShort

public void writeShort(int value)
从接口 ChannelBuffer 复制的描述
在当前的writerIndex设置指定的16位短整型,并为writerIndex加2. 16高序位会被忽略.

指定者:
接口 ChannelBuffer 中的 writeShort
覆盖:
AbstractChannelBuffer 中的 writeShort

writeMedium

public void writeMedium(int value)
从接口 ChannelBuffer 复制的描述
在当前的writerIndex设置指定的24位整型,并为writerIndex加3.

指定者:
接口 ChannelBuffer 中的 writeMedium
覆盖:
AbstractChannelBuffer 中的 writeMedium

writeInt

public void writeInt(int value)
从接口 ChannelBuffer 复制的描述
在当前的writerIndex设置指定的32位整型,并为writerIndex加4.

指定者:
接口 ChannelBuffer 中的 writeInt
覆盖:
AbstractChannelBuffer 中的 writeInt

writeLong

public void writeLong(long value)
从接口 ChannelBuffer 复制的描述
在当前的writerIndex设置指定的64位长整型,并为writerIndex加8.

指定者:
接口 ChannelBuffer 中的 writeLong
覆盖:
AbstractChannelBuffer 中的 writeLong

writeBytes

public void writeBytes(byte[] src,
                       int srcIndex,
                       int length)
从接口 ChannelBuffer 复制的描述
从指定的源数组中传输数据到该缓冲区的当前writerIndex处,并使用传输的字节数( = length )增加 wirterIndex.

指定者:
接口 ChannelBuffer 中的 writeBytes
覆盖:
AbstractChannelBuffer 中的 writeBytes
srcIndex - 源数组的开始索引
length - 要传输的字节数

writeBytes

public void writeBytes(ChannelBuffer src,
                       int srcIndex,
                       int length)
从接口 ChannelBuffer 复制的描述
从指定的源缓冲区中传输数据到该缓冲区的当前writerIndex处,并使用传输的字节数( = length )增加 wirterIndex

指定者:
接口 ChannelBuffer 中的 writeBytes
覆盖:
AbstractChannelBuffer 中的 writeBytes
srcIndex - 源缓冲区的开始索引
length - 要传输的字节数

writeBytes

public void writeBytes(java.nio.ByteBuffer src)
从接口 ChannelBuffer 复制的描述
从指定的源缓冲中传输数据到该缓冲区的当前writerIndex处,直到源缓冲的position达到限制为止,并使用传输的字节数增加 wirterIndex.

指定者:
接口 ChannelBuffer 中的 writeBytes
覆盖:
AbstractChannelBuffer 中的 writeBytes

writeBytes

public int writeBytes(java.io.InputStream in,
                      int length)
               throws java.io.IOException
从接口 ChannelBuffer 复制的描述
从指定的源输入流中传输数据到该缓冲区的当前writerIndex处,并使用传输的字节数( = length )增加 wirterIndex.

指定者:
接口 ChannelBuffer 中的 writeBytes
覆盖:
AbstractChannelBuffer 中的 writeBytes
length - 要传输的字节数
返回:
从指定流中读取到的实际字节数
抛出:
java.io.IOException - 指定流在I/O期间抛出的异常

writeBytes

public int writeBytes(java.nio.channels.ScatteringByteChannel in,
                      int length)
               throws java.io.IOException
从接口 ChannelBuffer 复制的描述
从指定的源通道中传输数据到该缓冲区的当前writerIndex处,并使用传输的字节数增加 wirterIndex.

指定者:
接口 ChannelBuffer 中的 writeBytes
覆盖:
AbstractChannelBuffer 中的 writeBytes
length - 最大的传输字节数
返回:
从指定的通道中读取到的实际字节数
抛出:
java.io.IOException - 指定通道在I/O期间抛出的异常

writeZero

public void writeZero(int length)
从接口 ChannelBuffer 复制的描述
在当前的writerIndex处填充NUL (0x00),并使用指定的length增加writerIndex.

指定者:
接口 ChannelBuffer 中的 writeZero
覆盖:
AbstractChannelBuffer 中的 writeZero
参数:
length - 填充到该缓冲区的NUL数量

duplicate

public ChannelBuffer duplicate()
从接口 ChannelBuffer 复制的描述
返回该缓冲全部分.修改其中任何一个缓冲对另一个都会有影响,不过它们维护着各自的索引和标记,该方法等同于 buf.slice(0, buf.capacity()). 且并不修改该缓冲区的 readerIndexwriterIndex.


copy

public ChannelBuffer copy(int index,
                          int length)
从接口 ChannelBuffer 复制的描述
返回该缓冲的子部分,修改其中任何一个缓冲对另一个都不会有影响.且并不修改该缓冲区的 readerIndexwriterIndex.


slice

public ChannelBuffer slice(int index,
                           int length)
从接口 ChannelBuffer 复制的描述
返回该缓冲子部分的切片.修改其中任何一个缓冲对另一个都会有影响,不过它们维护着各自的索引和标记,且并不修改该缓冲区的 readerIndexwriterIndex.


toByteBuffer

public java.nio.ByteBuffer toByteBuffer(int index,
                                        int length)
从接口 ChannelBuffer 复制的描述
转化该缓冲区的子部分到一个NIO缓冲区.返回的缓冲区可能有或没有和该缓冲共享内容,但是它们有各自的索引和标记. 且并不修改该缓冲区的 readerIndexwriterIndex.