org.apache.mina.filter.stream
Class StreamWriteFilter

java.lang.Object
  extended by org.apache.mina.core.filterchain.IoFilterAdapter
      extended by org.apache.mina.filter.stream.AbstractStreamWriteFilter<InputStream>
          extended by org.apache.mina.filter.stream.StreamWriteFilter
All Implemented Interfaces:
IoFilter

public class StreamWriteFilter
extends AbstractStreamWriteFilter<InputStream>

Filter implementation which makes it possible to write InputStream objects directly using IoSession#write(Object). When an InputStream is written to a session this filter will read the bytes from the stream into IoBuffer objects and write those buffers to the next filter. When end of stream has been reached this filter will call IoFilter.NextFilter#messageSent(IoSession,WriteRequest) using the original InputStream written to the session and notifies WriteFuture on the original WriteRequest.

This filter will ignore written messages which aren't InputStream instances. Such messages will be passed to the next filter directly.

NOTE: this filter does not close the stream after all data from stream has been written. The IoHandler should take care of that in its IoHandler.messageSent(IoSession,Object) callback.

Author:
Apache MINA Project

Nested Class Summary
 
Nested classes/interfaces inherited from interface org.apache.mina.core.filterchain.IoFilter
IoFilter.NextFilter
 
Field Summary
 
Fields inherited from class org.apache.mina.filter.stream.AbstractStreamWriteFilter
CURRENT_STREAM, CURRENT_WRITE_REQUEST, DEFAULT_STREAM_BUFFER_SIZE, WRITE_REQUEST_QUEUE
 
Constructor Summary
StreamWriteFilter()
           
 
Method Summary
protected  Class<InputStream> getMessageClass()
           
protected  IoBuffer getNextBuffer(InputStream is)
           
 
Methods inherited from class org.apache.mina.filter.stream.AbstractStreamWriteFilter
filterWrite, getWriteBufferSize, messageSent, onPreAdd, setWriteBufferSize
 
Methods inherited from class org.apache.mina.core.filterchain.IoFilterAdapter
destroy, exceptionCaught, filterClose, init, messageReceived, onPostAdd, onPostRemove, onPreRemove, sessionClosed, sessionCreated, sessionIdle, sessionOpened, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

StreamWriteFilter

public StreamWriteFilter()
Method Detail

getNextBuffer

protected IoBuffer getNextBuffer(InputStream is)
                          throws IOException
Specified by:
getNextBuffer in class AbstractStreamWriteFilter<InputStream>
Throws:
IOException

getMessageClass

protected Class<InputStream> getMessageClass()
Specified by:
getMessageClass in class AbstractStreamWriteFilter<InputStream>


Copyright © 2004-2011 Apache MINA Project. All Rights Reserved.