blob: ee558dd9c5aa121942f847528c88ed29f187bbdb [file] [log] [blame]
tom1d416c52014-09-29 20:55:24 -07001package org.onlab.onos.store.cluster.messaging;
2
Madan Jampani890bc352014-10-01 22:35:29 -07003import org.onlab.onos.cluster.NodeId;
tom1d416c52014-09-29 20:55:24 -07004
5/**
6 * Base message for cluster-wide communications.
7 */
Madan Jampani890bc352014-10-01 22:35:29 -07008public class ClusterMessage {
tom1d416c52014-09-29 20:55:24 -07009
Madan Jampani890bc352014-10-01 22:35:29 -070010 private final NodeId sender;
tom1d416c52014-09-29 20:55:24 -070011 private final MessageSubject subject;
Madan Jampani890bc352014-10-01 22:35:29 -070012 private final Object payload;
tom1d416c52014-09-29 20:55:24 -070013
14 /**
15 * Creates a cluster message.
16 *
17 * @param subject message subject
18 */
Madan Jampani890bc352014-10-01 22:35:29 -070019 public ClusterMessage(NodeId sender, MessageSubject subject, Object payload) {
20 this.sender = sender;
tom1d416c52014-09-29 20:55:24 -070021 this.subject = subject;
Madan Jampani890bc352014-10-01 22:35:29 -070022 this.payload = payload;
tom1d416c52014-09-29 20:55:24 -070023 }
24
25 /**
Madan Jampani890bc352014-10-01 22:35:29 -070026 * Returns the id of the controller sending this message.
27 *
28 * @return message sender id.
29 */
30 public NodeId sender() {
31 return sender;
32 }
33
34 /**
tom1d416c52014-09-29 20:55:24 -070035 * Returns the message subject indicator.
36 *
37 * @return message subject
38 */
39 public MessageSubject subject() {
40 return subject;
41 }
42
Madan Jampani890bc352014-10-01 22:35:29 -070043 /**
44 * Returns the message payload.
45 *
46 * @return message payload.
47 */
48 public Object payload() {
49 return payload;
tom1d416c52014-09-29 20:55:24 -070050 }
tom1d416c52014-09-29 20:55:24 -070051}