blob: 062ae03bfb430ec78215cf81a49b374fba9f7d64 [file] [log] [blame]
Yuta HIGUCHI273dcc82014-10-03 00:32:12 -07001package org.onlab.onos.store.serializers;
2
Yuta HIGUCHI8ce08732014-10-11 10:40:45 -07003import org.onlab.onos.store.impl.MastershipBasedTimestamp;
Yuta HIGUCHI273dcc82014-10-03 00:32:12 -07004
5import com.esotericsoftware.kryo.Kryo;
6import com.esotericsoftware.kryo.Serializer;
7import com.esotericsoftware.kryo.io.Input;
8import com.esotericsoftware.kryo.io.Output;
9
10// To be used if Timestamp ever needs to cross bundle boundary.
11/**
12 * Kryo Serializer for {@link MastershipBasedTimestamp}.
13 */
14public class MastershipBasedTimestampSerializer extends Serializer<MastershipBasedTimestamp> {
15
16 /**
Yuta HIGUCHI3e0b6512014-10-07 17:43:56 -070017 * Creates a serializer for {@link MastershipBasedTimestamp}.
Yuta HIGUCHI273dcc82014-10-03 00:32:12 -070018 */
19 public MastershipBasedTimestampSerializer() {
20 // non-null, immutable
21 super(false, true);
22 }
23
24 @Override
25 public void write(Kryo kryo, Output output, MastershipBasedTimestamp object) {
26 output.writeInt(object.termNumber());
27 output.writeInt(object.sequenceNumber());
28 }
29
30 @Override
31 public MastershipBasedTimestamp read(Kryo kryo, Input input, Class<MastershipBasedTimestamp> type) {
32 final int term = input.readInt();
33 final int sequence = input.readInt();
34 return new MastershipBasedTimestamp(term, sequence);
35 }
36}