blob: ea00185671c1ce5fbe93ae98b4475560a628be57 [file] [log] [blame]
tom28e1fa22014-09-30 10:38:21 -07001package org.onlab.onos.store.cluster.messaging;
2
3import org.onlab.onos.cluster.NodeId;
4import org.onlab.packet.IpPrefix;
5
6/**
7 * Base for cluster membership messages.
8 */
9public abstract class ClusterMembershipMessage extends ClusterMessage {
10
11 private NodeId nodeId;
12 private IpPrefix ipAddress;
13 private int tcpPort;
14
15 // For serialization
16 protected ClusterMembershipMessage() {
17 super(MessageSubject.HELLO);
18 nodeId = null;
19 ipAddress = null;
20 tcpPort = 0;
21 }
22
23 /**
24 * Creates a new membership message for the specified end-point data.
25 *
26 * @param subject message subject
27 * @param nodeId sending node identification
28 * @param ipAddress sending node IP address
29 * @param tcpPort sending node TCP port
30 */
31 protected ClusterMembershipMessage(MessageSubject subject, NodeId nodeId,
32 IpPrefix ipAddress, int tcpPort) {
33 super(subject);
34 this.nodeId = nodeId;
35 this.ipAddress = ipAddress;
36 this.tcpPort = tcpPort;
37 }
38
39 /**
40 * Returns the sending node identifer.
41 *
42 * @return node identifier
43 */
44 public NodeId nodeId() {
45 return nodeId;
46 }
47
48 /**
49 * Returns the sending node IP address.
50 *
51 * @return node IP address
52 */
53 public IpPrefix ipAddress() {
54 return ipAddress;
55 }
56
57 /**
58 * Returns the sending node TCP listen port.
59 *
60 * @return TCP listen port
61 */
62 public int tcpPort() {
63 return tcpPort;
64 }
65
66}