View Javadoc

1   /*
2    *  Licensed to the Apache Software Foundation (ASF) under one
3    *  or more contributor license agreements.  See the NOTICE file
4    *  distributed with this work for additional information
5    *  regarding copyright ownership.  The ASF licenses this file
6    *  to you under the Apache License, Version 2.0 (the
7    *  "License"); you may not use this file except in compliance
8    *  with the License.  You may obtain a copy of the License at
9    *
10   *    http://www.apache.org/licenses/LICENSE-2.0
11   *
12   *  Unless required by applicable law or agreed to in writing,
13   *  software distributed under the License is distributed on an
14   *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   *  KIND, either express or implied.  See the License for the
16   *  specific language governing permissions and limitations
17   *  under the License.
18   *
19   */
20  package org.apache.mina.integration.jmx;
21  
22  import java.util.Date;
23  
24  /**
25   * MBean interface for the session manager, it's used for instrumenting IoSession
26   * @author The Apache Directory Project (mina-dev@directory.apache.org)
27   * @version $Rev: 555855 $, $Date: 2007-07-13 12:19:00 +0900 (금, 13  7월 2007) $
28   */
29  public interface IoSessionManagerMBean {
30      /**
31       * is the session is connected
32       * @return connection status
33       */
34      public boolean isConnected();
35  
36      /**
37       * bytes read from the beginning
38       * @return total of bytes read
39       */
40      public long getReadBytes();
41  
42      /**
43       * bytes written from the beginning
44       * @return total of bytes written
45       */
46      public long getWrittenBytes();
47  
48      /**
49       * PDU decoded from the beginning. Only revelent if a ProtocolCodecFilter is installed.
50       * @return Number of read messages
51       */
52      public long getReadMessages();
53  
54      /**
55       * PDU encoded from the beginning. Only revelent if a ProtocolCodecFilter is installed.
56       * @return Number of written messages
57       */
58      public long getWrittenMessages();
59  
60      /**
61       * close the session
62       */
63      public void close() throws InterruptedException;
64  
65      /**
66       * when the session was created
67       * @return the date of session creation
68       */
69      public Date getCreationTime();
70  
71      /**
72       * last time the session processed an IO
73       * @return date of last IO
74       */
75      public Date getLastIoTime();
76  
77      /**
78       * last time the session processed a write
79       * @return date of last write
80       */
81      public Date getLastWriteTime();
82  
83      /**
84       * last time the session processed an read
85       * @return date of last read
86       */
87      public Date getLastReadTime();
88  
89      /**
90       * get the list of filters installed in the filter chain
91       * @return array of filter names
92       */
93      public String[] getInstalledFilters();
94  
95      /**
96       * add a logging filter at end of the chain
97       */
98      public void addLastLoggingFilter();
99  
100     /**
101      * remove the logging filter at end of the chain
102      */
103     public void removeLastLoggingFilter();
104 
105     /**
106      * add a logging filter at begining of the chain
107      */
108     public void addFirstLoggingFilter();
109 
110     /**
111      * remove the logging filter at begining of the chain
112      */
113     public void removeFirstLoggingFilter();
114 
115     /**
116      * read and write IDLE time
117      * @return idle time in milli-seconds
118      */
119     public long getBothIdleTime();
120 
121     /**
122      * read IDLE time
123      * @return read idle time in milli-seconds
124      */
125     public long getReadIdleTime();
126 
127     /**
128      * write IDLE time
129      * @return write idle time in milli-seconds
130      */
131     public long getWriteIdleTime();
132 
133     /**
134      * get the read bytes per second throughput
135      * works only if a stat collector is inspecting this session,
136      * @return read bytes per seconds
137      */
138     public float getByteReadThroughtput();
139 
140     /**
141      * get the written bytes per second throughput
142      * works only if a stat collector is inspecting this session,
143      * @return written bytes per seconds
144      */
145     public float getByteWrittenThroughtput();
146 
147     /**
148      * get the read messages per second throughput
149      * works only if a stat collector is inspecting this session, and only if a ProtocolDecoderFilter is used
150      * @return read messages per seconds
151      */
152     public float getMessageReadThroughtput();
153 
154     /**
155      * get the written messages per second throughput
156      * works only if a stat collector is inspecting this session, and only if a ProtocolDecoderFilter is used
157      * @return written messages per seconds
158      */
159     public float getMessageWrittenThroughtput();
160 
161 }