blob: f9e0d6332c4c7e171c16888b220c34623ed3cad8 [file] [log] [blame]
Yuta HIGUCHI533ec322014-09-30 13:29:52 -07001package org.onlab.onos.store.cluster.messaging;
2
3import static org.onlab.onos.store.cluster.messaging.MessageSubject.AE_ADVERTISEMENT;
4import java.util.Map;
5
6import org.onlab.onos.cluster.NodeId;
7import org.onlab.onos.store.Timestamp;
8
9import com.google.common.collect.ImmutableMap;
10
11/**
12 * Anti-Entropy advertisement message.
Yuta HIGUCHIeeb75a02014-09-30 15:58:08 -070013 * <p>
14 * Message to advertise the information this node holds.
Yuta HIGUCHI533ec322014-09-30 13:29:52 -070015 *
16 * @param <ID> ID type
17 */
18public class AntiEntropyAdvertisement<ID> extends ClusterMessage {
19
20 private final NodeId sender;
21 private final ImmutableMap<ID, Timestamp> advertisement;
22
23 /**
24 * Creates anti-entropy advertisement message.
25 *
26 * @param sender sender of this message
27 * @param advertisement timestamp information of the data sender holds
28 */
29 public AntiEntropyAdvertisement(NodeId sender, Map<ID, Timestamp> advertisement) {
30 super(AE_ADVERTISEMENT);
31 this.sender = sender;
32 this.advertisement = ImmutableMap.copyOf(advertisement);
33 }
34
35 public NodeId sender() {
36 return sender;
37 }
38
39 public ImmutableMap<ID, Timestamp> advertisement() {
40 return advertisement;
41 }
42
43 // Default constructor for serializer
44 protected AntiEntropyAdvertisement() {
45 super(AE_ADVERTISEMENT);
46 this.sender = null;
47 this.advertisement = null;
48 }
49}