org.jboss.netty.buffer
类 DirectChannelBufferFactory

java.lang.Object
  继承者 org.jboss.netty.buffer.AbstractChannelBufferFactory
      继承者 org.jboss.netty.buffer.DirectChannelBufferFactory
所有已实现的接口:
ChannelBufferFactory

public class DirectChannelBufferFactory
extends AbstractChannelBufferFactory

为直接缓冲预分配一个大块和在需要时返回它的切片的ChannelBufferFactory. 直接缓冲在大多数JDK实现中是通过 ReferenceQueue 回收的,因此释放它们比原始堆缓冲性能差.因此,当分配一个直接缓冲比GC直接缓冲的吞吐量小得多或比GC堆缓冲的吞吐量低得多时会抛出 OutOfMemoryError.该工厂避免了为直接缓冲预分配一个大块的问题,以及减少垃圾回收内部直接缓冲对像的数量.


构造方法摘要
DirectChannelBufferFactory()
          创建一个字节序默认为ByteOrder.BIG_ENDIAN的工厂.
DirectChannelBufferFactory(java.nio.ByteOrder defaultOrder)
          使用指定的字节序创建一个工厂
DirectChannelBufferFactory(java.nio.ByteOrder defaultOrder, int preallocatedBufferCapacity)
          使用指定的字节序创建一个工厂
DirectChannelBufferFactory(int preallocatedBufferCapacity)
          创建一个字节序默认为ByteOrder.BIG_ENDIAN的工厂.
 
方法摘要
 ChannelBuffer getBuffer(java.nio.ByteBuffer nioBuffer)
          返回一个内容与指定的NIO缓冲子部分相同的ChannelBuffer ,依赖工厂的实现,返回的缓冲可以封装该NIO缓冲或创建该NIO缓冲的拷贝.
 ChannelBuffer getBuffer(java.nio.ByteOrder order, byte[] array, int offset, int length)
          返回一个内容等同于指定数组子部分的ChannelBuffer.
 ChannelBuffer getBuffer(java.nio.ByteOrder order, int capacity)
          返回一个指定字节序和容量的ChannelBuffer.
static ChannelBufferFactory getInstance()
           
static ChannelBufferFactory getInstance(java.nio.ByteOrder defaultEndianness)
           
 
从类 org.jboss.netty.buffer.AbstractChannelBufferFactory 继承的方法
getBuffer, getBuffer, getDefaultOrder
 
从类 java.lang.Object 继承的方法
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

DirectChannelBufferFactory

public DirectChannelBufferFactory()
创建一个字节序默认为ByteOrder.BIG_ENDIAN的工厂.


DirectChannelBufferFactory

public DirectChannelBufferFactory(int preallocatedBufferCapacity)
创建一个字节序默认为ByteOrder.BIG_ENDIAN的工厂.


DirectChannelBufferFactory

public DirectChannelBufferFactory(java.nio.ByteOrder defaultOrder)
使用指定的字节序创建一个工厂

参数:
defaultOrder - 工厂的默认字节序

DirectChannelBufferFactory

public DirectChannelBufferFactory(java.nio.ByteOrder defaultOrder,
                                  int preallocatedBufferCapacity)
使用指定的字节序创建一个工厂

参数:
defaultOrder - 工厂的默认字节序
方法详细信息

getInstance

public static ChannelBufferFactory getInstance()

getInstance

public static ChannelBufferFactory getInstance(java.nio.ByteOrder defaultEndianness)

getBuffer

public ChannelBuffer getBuffer(java.nio.ByteOrder order,
                               int capacity)
从接口 ChannelBufferFactory 复制的描述
返回一个指定字节序和容量的ChannelBuffer.

参数:
order - 返回的ChannelBuffer的字节序
capacity - 返回的ChannelBuffer的容量
返回:
一个指定字节序和容量以及readerIndexwriterIndex都为0的 ChannelBuffer

getBuffer

public ChannelBuffer getBuffer(java.nio.ByteOrder order,
                               byte[] array,
                               int offset,
                               int length)
从接口 ChannelBufferFactory 复制的描述
返回一个内容等同于指定数组子部分的ChannelBuffer. 依赖工厂的实现,返回的缓冲可以封装该数组或创建该数组的拷贝.

参数:
order - 返回ChannelBuffer的字节序
array - 字节数组
offset - 字节数组偏移值
length - 字节数组的长度
返回:
一个指定内容且readerIndexwriterIndex分别为 0(length - offset)ChannelBuffer

getBuffer

public ChannelBuffer getBuffer(java.nio.ByteBuffer nioBuffer)
从接口 ChannelBufferFactory 复制的描述
返回一个内容与指定的NIO缓冲子部分相同的ChannelBuffer ,依赖工厂的实现,返回的缓冲可以封装该NIO缓冲或创建该NIO缓冲的拷贝.

参数:
nioBuffer - NIO ByteBuffer
返回:
一个指定内容且readerIndexwriterIndex分别为 0nioBuffer.remaining()ChannelBuffer