1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.mina.io;
20
21 import org.apache.mina.common.ByteBuffer;
22 import org.apache.mina.common.IdleStatus;
23
24 /***
25 * An {@link IoFilterChain} that forwards all events
26 * except <tt>filterWrite</tt> to the {@link IoSessionFilterChain}
27 * of the recipient session.
28 * <p>
29 * This filter chain is used by implementations of {@link IoSessionManager}s.
30 *
31 * @author The Apache Directory Project (dev@directory.apache.org)
32 * @version $Rev: 332218 $, $Date: 2005-11-10 12:52:42 +0900 $
33 */
34 public abstract class IoSessionManagerFilterChain extends AbstractIoFilterChain {
35
36 private final IoSessionManager manager;
37
38 protected IoSessionManagerFilterChain( IoSessionManager manager )
39 {
40 this.manager = manager;
41 }
42
43 public IoSessionManager getManager()
44 {
45 return manager;
46 }
47
48 protected IoFilter createTailFilter()
49 {
50 return new IoFilter()
51 {
52 public void sessionOpened( NextFilter nextFilter, IoSession session ) throws Exception
53 {
54 ( ( IoSessionFilterChain ) session.getFilterChain() ).sessionOpened( session );
55 }
56
57 public void sessionClosed( NextFilter nextFilter, IoSession session ) throws Exception
58 {
59 ( ( IoSessionFilterChain ) session.getFilterChain() ).sessionClosed( session );
60 }
61
62 public void sessionIdle( NextFilter nextFilter, IoSession session,
63 IdleStatus status ) throws Exception
64 {
65 ( ( IoSessionFilterChain ) session.getFilterChain() ).sessionIdle( session, status );
66 }
67
68 public void exceptionCaught( NextFilter nextFilter,
69 IoSession session, Throwable cause ) throws Exception
70 {
71 ( ( IoSessionFilterChain ) session.getFilterChain() ).exceptionCaught( session, cause );
72 }
73
74 public void dataRead( NextFilter nextFilter, IoSession session,
75 ByteBuffer buf ) throws Exception
76 {
77 ( ( IoSessionFilterChain ) session.getFilterChain() ).dataRead( session, buf );
78 }
79
80 public void dataWritten( NextFilter nextFilter, IoSession session,
81 Object marker ) throws Exception
82 {
83 ( ( IoSessionFilterChain ) session.getFilterChain() ).dataWritten( session, marker );
84 }
85
86 public void filterWrite( NextFilter nextFilter,
87 IoSession session, ByteBuffer buf, Object marker ) throws Exception
88 {
89 nextFilter.filterWrite( session, buf, marker );
90 }
91 };
92 }
93 }