org.jboss.netty.handler.stream
类 ChunkedWriteHandler

java.lang.Object
  继承者 org.jboss.netty.handler.stream.ChunkedWriteHandler
所有已实现的接口:
ChannelDownstreamHandler, ChannelHandler, ChannelUpstreamHandler

public class ChunkedWriteHandler
extends java.lang.Object
implements ChannelUpstreamHandler, ChannelDownstreamHandler

一个添加了既不会花费很多内存也不会抛出OutOfMemoryError异常的异步写大块数据流支持的 ChannelHandler.大数据流就如在ChannelHandler里实现那样文件传输需要很复杂状态管理. ChunkedWriteHandler管理这些复杂状态以便你可以很简单的发送一个大数据流.

要在你的程序里使用ChunkedWriteHandler,你必须插入一个新的ChunkedWriteHandler实例:

 ChannelPipeline p = ...;
 p.addLast("streamer", new ChunkedWriteHandler());
 p.addLast("handler", new MyHandler());
 
一旦插入,你可以写一个ChunkedInput以便该ChunkedWriteHandler 可以获得它和大块大块的从流中获取内容并写到下游:
 Channel ch = ...;
 ch.write(new ChunkedFile(new File("video.mkv"));
 

发送一个间接生成一个块的流

有些ChunkedInput会在一定的事件或时间内生成一个块 .这样的ChunkedInputChunkedInput.hasNextChunk()通常会返回false ,导致无限期的暂停传输.当有新的块时要恢复传输,需要调用resumeTransfer().


嵌套类摘要
 
从接口 org.jboss.netty.channel.ChannelHandler 继承的嵌套类/接口
ChannelHandler.Sharable
 
构造方法摘要
ChunkedWriteHandler()
          创建一个实例.
 
方法摘要
 void handleDownstream(ChannelHandlerContext ctx, ChannelEvent e)
          处理指定的下游事件.
 void handleUpstream(ChannelHandlerContext ctx, ChannelEvent e)
          处理一个指定的上游事件.
 void resumeTransfer()
          从一个输入继续获取块.
 
从类 java.lang.Object 继承的方法
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

ChunkedWriteHandler

public ChunkedWriteHandler()
创建一个实例.

方法详细信息

resumeTransfer

public void resumeTransfer()
从一个输入继续获取块.


handleDownstream

public void handleDownstream(ChannelHandlerContext ctx,
                             ChannelEvent e)
                      throws java.lang.Exception
从接口 ChannelDownstreamHandler 复制的描述
处理指定的下游事件.

指定者:
接口 ChannelDownstreamHandler 中的 handleDownstream
参数:
ctx - 处理器的上下文对象
e - 要处理或拦截的事件
抛出:
java.lang.Exception

handleUpstream

public void handleUpstream(ChannelHandlerContext ctx,
                           ChannelEvent e)
                    throws java.lang.Exception
从接口 ChannelUpstreamHandler 复制的描述
处理一个指定的上游事件.

指定者:
接口 ChannelUpstreamHandler 中的 handleUpstream
参数:
ctx - 处理器的上下文对象
e - 要处理或拦截的事件
抛出:
java.lang.Exception