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 | } |