blob: 5f97afd6977c64a8152be9235667eabbeab393be [file] [log] [blame]
Madan Jampanifef9b3a2014-10-07 18:38:17 -07001package org.onlab.onos.store.device.impl;
2
3import org.onlab.onos.net.DeviceId;
4import org.onlab.onos.net.device.DeviceDescription;
5import org.onlab.onos.net.provider.ProviderId;
Yuta HIGUCHIeecee552014-10-16 14:09:01 -07006import org.onlab.onos.store.impl.Timestamped;
Madan Jampanifef9b3a2014-10-07 18:38:17 -07007
8import com.esotericsoftware.kryo.Kryo;
9import com.esotericsoftware.kryo.Serializer;
10import com.esotericsoftware.kryo.io.Input;
11import com.esotericsoftware.kryo.io.Output;
12
13/**
14 * Kryo Serializer for {@link InternalDeviceEvent}.
15 */
16public class InternalDeviceEventSerializer extends Serializer<InternalDeviceEvent> {
17
18 /**
19 * Creates a serializer for {@link InternalDeviceEvent}.
20 */
21 public InternalDeviceEventSerializer() {
22 // does not accept null
23 super(false);
24 }
25
26 @Override
27 public void write(Kryo kryo, Output output, InternalDeviceEvent event) {
28 kryo.writeClassAndObject(output, event.providerId());
29 kryo.writeClassAndObject(output, event.deviceId());
30 kryo.writeClassAndObject(output, event.deviceDescription());
31 }
32
33 @Override
34 public InternalDeviceEvent read(Kryo kryo, Input input,
35 Class<InternalDeviceEvent> type) {
36 ProviderId providerId = (ProviderId) kryo.readClassAndObject(input);
37 DeviceId deviceId = (DeviceId) kryo.readClassAndObject(input);
Yuta HIGUCHI74ebeff12014-10-07 19:54:05 -070038 Timestamped<DeviceDescription> deviceDescription
39 = (Timestamped<DeviceDescription>) kryo.readClassAndObject(input);
Madan Jampanifef9b3a2014-10-07 18:38:17 -070040
41 return new InternalDeviceEvent(providerId, deviceId, deviceDescription);
42 }
43}