1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.mina.filter.keepalive;
21
22 import org.apache.mina.core.session.IoSession;
23 import org.slf4j.Logger;
24 import org.slf4j.LoggerFactory;
25
26
27
28
29
30
31
32 public interface KeepAliveRequestTimeoutHandler {
33
34
35
36 static KeepAliveRequestTimeoutHandler NOOP = new KeepAliveRequestTimeoutHandler() {
37 public void keepAliveRequestTimedOut(
38 KeepAliveFilter filter, IoSession session) throws Exception {
39
40 }
41 };
42
43
44
45
46 static KeepAliveRequestTimeoutHandler LOG = new KeepAliveRequestTimeoutHandler() {
47 private final Logger LOGGER =
48 LoggerFactory.getLogger(KeepAliveFilter.class);
49
50 public void keepAliveRequestTimedOut(
51 KeepAliveFilter filter, IoSession session) throws Exception {
52 LOGGER.warn("A keep-alive response message was not received within " +
53 "{} second(s).", filter.getRequestTimeout());
54 }
55 };
56
57
58
59
60 static KeepAliveRequestTimeoutHandler EXCEPTION = new KeepAliveRequestTimeoutHandler() {
61 public void keepAliveRequestTimedOut(
62 KeepAliveFilter filter, IoSession session) throws Exception {
63 throw new KeepAliveRequestTimeoutException(
64 "A keep-alive response message was not received within " +
65 filter.getRequestTimeout() + " second(s).");
66 }
67 };
68
69
70
71
72 static KeepAliveRequestTimeoutHandler CLOSE = new KeepAliveRequestTimeoutHandler() {
73 private final Logger LOGGER =
74 LoggerFactory.getLogger(KeepAliveFilter.class);
75
76 public void keepAliveRequestTimedOut(
77 KeepAliveFilter filter, IoSession session) throws Exception {
78 LOGGER.warn("Closing the session because a keep-alive response " +
79 "message was not received within {} second(s).",
80 filter.getRequestTimeout());
81 session.close(true);
82 }
83 };
84
85
86
87
88 static KeepAliveRequestTimeoutHandler DEAF_SPEAKER = new KeepAliveRequestTimeoutHandler() {
89 public void keepAliveRequestTimedOut(
90 KeepAliveFilter filter, IoSession session) throws Exception {
91 throw new Error("Shouldn't be invoked. Please file a bug report.");
92 }
93 };
94
95
96
97
98
99 void keepAliveRequestTimedOut(KeepAliveFilter filter, IoSession session) throws Exception;
100 }