forked from fredlund/JavaErlang
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathOtpStatusHandler.java
More file actions
69 lines (61 loc) · 2.88 KB
/
OtpStatusHandler.java
File metadata and controls
69 lines (61 loc) · 2.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
// Copyright (c) 2011, Lars-Ake Fredlund
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
// // Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// // Redistributions in binary form must reproduce the above copyright
// notice, this list of conditions and the following disclaimer in the
// documentation and/or other materials provided with the distribution.
// // Neither the name of the copyright holders nor the
// names of its contributors may be used to endorse or promote products
// derived from this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ''AS IS''
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// @author Lars-Ake Fredlund (lfredlund@fi.upm.es)
// @copyright 2011 Lars-Ake Fredlund
//
package javaErlang;
import java.util.logging.Logger;
import java.util.logging.Level;
import com.ericsson.otp.erlang.OtpErlangObject;
import com.ericsson.otp.erlang.OtpNodeStatus;
class OtpStatusHandler extends OtpNodeStatus {
String connectedNode = null;
private final OtpErlangObject nodeIdentifier;
public OtpStatusHandler(final OtpErlangObject nodeIdentifier) {
this.nodeIdentifier = nodeIdentifier;
}
@Override
public void remoteStatus(final String node, final boolean up,
final Object info) {
if (JavaErlang.logger.isLoggable(Level.FINER)) {
JavaErlang.logger.log
(Level.FINER,
"Event at node " + node + " with " + up
+ "; info=" + info);
}
if (connectedNode == null && up) {
connectedNode = node;
} else if (connectedNode != null && !up && node.equals(connectedNode)) {
if (JavaErlang.logger.isLoggable(Level.INFO)) {
JavaErlang.logger.log
(Level.INFO,
"Erlang peer node " + nodeIdentifier
+ " died; terminating...");
}
System.exit(0);
}
}
}