View Javadoc

1   /*
2    * @(#) $Id: VmPipeFilter.java 357871 2005-12-20 01:56:40Z trustin $
3    */
4   package org.apache.mina.protocol.vmpipe;
5   
6   import org.apache.mina.common.IdleStatus;
7   import org.apache.mina.protocol.ProtocolFilterAdapter;
8   import org.apache.mina.protocol.ProtocolSession;
9   
10  /***
11   * Sets last(Read|Write)Time for {@link VmPipeSession}s. 
12   * 
13   * @author The Apache Directory Project (dev@directory.apache.org)
14   * @version $Rev: 357871 $, $Date: 2005-12-20 10:56:40 +0900 (Tue, 20 Dec 2005) $
15   */
16  class VmPipeFilter extends ProtocolFilterAdapter
17  {
18      public void messageReceived( NextFilter nextFilter,
19                                   ProtocolSession session, Object message )
20      {
21          VmPipeSession vps = ( VmPipeSession ) session;
22  
23          vps.resetIdleCount( IdleStatus.BOTH_IDLE );
24          vps.resetIdleCount( IdleStatus.READER_IDLE );
25          vps.increaseReadBytes( 1 );
26  
27          // fire messageSent event first
28          vps.remoteSession.getManagerFilterChain().messageSent( vps.remoteSession, message );
29  
30          // and then messageReceived
31          nextFilter.messageReceived( session, message );
32      }
33  
34      public void messageSent( NextFilter nextFilter,
35                              ProtocolSession session, Object message )
36      {
37          VmPipeSession vps = ( VmPipeSession ) session;
38          vps.resetIdleCount( IdleStatus.BOTH_IDLE );
39          vps.resetIdleCount( IdleStatus.WRITER_IDLE );
40          vps.increaseWrittenBytes( 1 );
41          vps.increaseWrittenWriteRequests();
42  
43          nextFilter.messageSent( session, message );
44      }
45  }