Madan Jampani

Added support for replicating device offline topology events: Added missing files

1 +package org.onlab.onos.store.device.impl;
2 +
3 +import org.onlab.onos.net.DeviceId;
4 +import org.onlab.onos.store.Timestamp;
5 +
6 +/**
7 + * Information published by GossipDeviceStore to notify peers of a device
8 + * going offline.
9 + */
10 +public class InternalDeviceOfflineEvent {
11 +
12 + private final DeviceId deviceId;
13 + private final Timestamp timestamp;
14 +
15 + /**
16 + * Creates a InternalDeviceOfflineEvent.
17 + * @param deviceId identifier of device going offline.
18 + * @param timestamp timestamp of when the device went offline.
19 + */
20 + public InternalDeviceOfflineEvent(DeviceId deviceId, Timestamp timestamp) {
21 + this.deviceId = deviceId;
22 + this.timestamp = timestamp;
23 + }
24 +
25 + public DeviceId deviceId() {
26 + return deviceId;
27 + }
28 +
29 + public Timestamp timestamp() {
30 + return timestamp;
31 + }
32 +
33 + // for serializer
34 + @SuppressWarnings("unused")
35 + private InternalDeviceOfflineEvent() {
36 + deviceId = null;
37 + timestamp = null;
38 + }
39 +}
1 +package org.onlab.onos.store.device.impl;
2 +
3 +import org.onlab.onos.net.DeviceId;
4 +import org.onlab.onos.store.Timestamp;
5 +
6 +import com.esotericsoftware.kryo.Kryo;
7 +import com.esotericsoftware.kryo.Serializer;
8 +import com.esotericsoftware.kryo.io.Input;
9 +import com.esotericsoftware.kryo.io.Output;
10 +
11 +/**
12 + * Kryo Serializer for {@link InternalDeviceOfflineEvent}.
13 + */
14 +public class InternalDeviceOfflineEventSerializer extends Serializer<InternalDeviceOfflineEvent> {
15 +
16 + /**
17 + * Creates a serializer for {@link InternalDeviceOfflineEvent}.
18 + */
19 + public InternalDeviceOfflineEventSerializer() {
20 + // does not accept null
21 + super(false);
22 + }
23 +
24 + @Override
25 + public void write(Kryo kryo, Output output, InternalDeviceOfflineEvent event) {
26 + kryo.writeClassAndObject(output, event.deviceId());
27 + kryo.writeClassAndObject(output, event.timestamp());
28 + }
29 +
30 + @Override
31 + public InternalDeviceOfflineEvent read(Kryo kryo, Input input,
32 + Class<InternalDeviceOfflineEvent> type) {
33 + DeviceId deviceId = (DeviceId) kryo.readClassAndObject(input);
34 + Timestamp timestamp = (Timestamp) kryo.readClassAndObject(input);
35 +
36 + return new InternalDeviceOfflineEvent(deviceId, timestamp);
37 + }
38 +}