blob: 516915ec5d929a4863a36e8bb011c286f8a68c69 [file] [log] [blame]
Yuta HIGUCHI273dcc82014-10-03 00:32:12 -07001package org.onlab.onos.store.serializers;
2
3import org.onlab.onos.store.common.impl.MastershipBasedTimestamp;
4
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}