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 * @version $Rev: 357871 $, $Date: 2005-12-20 10:56:40 +0900 (Tue, 20 Dec 2005) $
32 */
33 public abstract class ProtocolSessionManagerFilterChain extends AbstractProtocolFilterChain {
34
35 private final ProtocolSessionManager manager;
36
37 protected ProtocolSessionManagerFilterChain( ProtocolSessionManager manager )
38 {
39 this.manager = manager;
40 }
41
42 public ProtocolSessionManager getManager()
43 {
44 return manager;
45 }
46
47 protected ProtocolFilter createTailFilter()
48 {
49 return new ProtocolFilter()
50 {
51 public void sessionOpened( NextFilter nextFilter, ProtocolSession session )
52 {
53 ( ( ProtocolSessionFilterChain ) session.getFilterChain() ).sessionOpened( session );
54 }
55
56 public void sessionClosed( NextFilter nextFilter, ProtocolSession session )
57 {
58 ( ( ProtocolSessionFilterChain ) session.getFilterChain() ).sessionClosed( session );
59 }
60
61 public void sessionIdle( NextFilter nextFilter, ProtocolSession session,
62 IdleStatus status )
63 {
64 ( ( ProtocolSessionFilterChain ) session.getFilterChain() ).sessionIdle( session, status );
65 }
66
67 public void exceptionCaught( NextFilter nextFilter,
68 ProtocolSession session, Throwable cause )
69 {
70 ( ( ProtocolSessionFilterChain ) session.getFilterChain() ).exceptionCaught( session, cause );
71 }
72
73 public void messageReceived( NextFilter nextFilter, ProtocolSession session,
74 Object message )
75 {
76 ( ( ProtocolSessionFilterChain ) session.getFilterChain() ).messageReceived( session, message );
77 }
78
79 public void messageSent( NextFilter nextFilter, ProtocolSession session,
80 Object message )
81 {
82 ( ( ProtocolSessionFilterChain ) session.getFilterChain() ).messageSent( session, message );
83 }
84
85 public void filterWrite( NextFilter nextFilter,
86 ProtocolSession session, Object message )
87 {
88 nextFilter.filterWrite( session, message );
89 }
90 };
91 }
92 }