1 package org.apache.mina.io.datagram; 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.IoSessionManagerFilterChain; 7 import org.apache.mina.util.Queue; 8 9 /*** 10 * An {@link IoFilterChain} for datagram transport (UDP/IP). 11 * 12 * @author The Apache Directory Project 13 */ 14 class DatagramSessionManagerFilterChain extends IoSessionManagerFilterChain { 15 16 DatagramSessionManagerFilterChain( DatagramSessionManager processor ) 17 { 18 super( processor ); 19 } 20 21 protected void doWrite( IoSession session, ByteBuffer buf, Object marker ) 22 { 23 DatagramSession s = ( DatagramSession ) session; 24 Queue writeBufferQueue = s.getWriteBufferQueue(); 25 Queue writeMarkerQueue = s.getWriteMarkerQueue(); 26 27 synchronized( writeBufferQueue ) 28 { 29 writeBufferQueue.push( buf ); 30 writeMarkerQueue.push( marker ); 31 } 32 33 ( ( DatagramSessionManager ) getManager() ).flushSession( s ); 34 } 35 }