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