View Javadoc

1   /*
2    * @(#) $Id: VmPipeFilter.java 210062 2005-07-11 03:52:38Z 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 Trustin Lee (trustin@apache.org)
14   * @version $Rev: 210062 $, $Date: 2005-07-11 12:52:38 +0900 $
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.setIdle( IdleStatus.BOTH_IDLE, false );
24          vps.setIdle( IdleStatus.READER_IDLE, false );
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.setIdle( IdleStatus.BOTH_IDLE, false );
39          vps.setIdle( IdleStatus.WRITER_IDLE, false );
40          vps.increaseWrittenBytes( 1 );
41          vps.increaseWrittenWriteRequests();
42  
43          nextFilter.messageSent( session, message );
44      }
45  }