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 (Fri, 13 Jul 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 }