blob: 398f8f728286ed9ff23d57df2427ebe94f43ba90 [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.
13 *
14 * @param <ID> ID type
15 */
16public class AntiEntropyAdvertisement<ID> extends ClusterMessage {
17
18 private final NodeId sender;
19 private final ImmutableMap<ID, Timestamp> advertisement;
20
21 /**
22 * Creates anti-entropy advertisement message.
23 *
24 * @param sender sender of this message
25 * @param advertisement timestamp information of the data sender holds
26 */
27 public AntiEntropyAdvertisement(NodeId sender, Map<ID, Timestamp> advertisement) {
28 super(AE_ADVERTISEMENT);
29 this.sender = sender;
30 this.advertisement = ImmutableMap.copyOf(advertisement);
31 }
32
33 public NodeId sender() {
34 return sender;
35 }
36
37 public ImmutableMap<ID, Timestamp> advertisement() {
38 return advertisement;
39 }
40
41 // Default constructor for serializer
42 protected AntiEntropyAdvertisement() {
43 super(AE_ADVERTISEMENT);
44 this.sender = null;
45 this.advertisement = null;
46 }
47}