1 package org.apache.mina.io.socket; 2 3 import org.apache.mina.common.ByteBuffer; 4 import org.apache.mina.io.IoFilterChain; 5 import org.apache.mina.io.IoSession; 6 import org.apache.mina.io.IoSessionManager; 7 import org.apache.mina.io.IoSessionManagerFilterChain; 8 import org.apache.mina.util.Queue; 9 10 /*** 11 * An {@link IoFilterChain} for socket transport (TCP/IP). 12 * 13 * @author The Apache Directory Project 14 */ 15 class SocketSessionManagerFilterChain extends IoSessionManagerFilterChain { 16 17 SocketSessionManagerFilterChain( IoSessionManager manager ) 18 { 19 super( manager ); 20 } 21 22 protected void doWrite( IoSession session, ByteBuffer buf, Object marker ) 23 { 24 SocketSession s = ( SocketSession ) session; 25 Queue writeBufferQueue = s.getWriteBufferQueue(); 26 Queue writeMarkerQueue = s.getWriteMarkerQueue(); 27 28 synchronized( writeBufferQueue ) 29 { 30 writeBufferQueue.push( buf ); 31 writeMarkerQueue.push( marker ); 32 } 33 34 SocketIoProcessor.getInstance().flushSession( s ); 35 } 36 }