blob: d99fcde27ee218ba5ad72ea9eb69c273947906f6 [file] [log] [blame]
Ayaka Koshibe84411362014-10-01 09:33:42 -07001package org.onlab.onos.store.serializers;
2
Ayaka Koshibe84411362014-10-01 09:33:42 -07003import org.onlab.onos.cluster.NodeId;
Yuta HIGUCHI80912e62014-10-12 00:15:47 -07004import org.onlab.onos.mastership.MastershipTerm;
5
Ayaka Koshibe84411362014-10-01 09:33:42 -07006import com.esotericsoftware.kryo.Kryo;
7import com.esotericsoftware.kryo.Serializer;
8import com.esotericsoftware.kryo.io.Input;
9import com.esotericsoftware.kryo.io.Output;
10
11/**
Yuta HIGUCHI80912e62014-10-12 00:15:47 -070012 * Kryo Serializer for {@link org.onlab.onos.mastership.MastershipTerm}.
Ayaka Koshibe84411362014-10-01 09:33:42 -070013 */
14public class MastershipTermSerializer extends Serializer<MastershipTerm> {
15
Yuta HIGUCHI03fec1f2014-10-03 09:13:50 -070016 /**
17 * Creates {@link MastershipTerm} serializer instance.
18 */
19 public MastershipTermSerializer() {
20 // non-null, immutable
21 super(false, true);
22 }
23
Ayaka Koshibe84411362014-10-01 09:33:42 -070024 @Override
25 public MastershipTerm read(Kryo kryo, Input input, Class<MastershipTerm> type) {
Yuta HIGUCHI5bdebe32014-10-04 21:40:41 -070026 final NodeId node = new NodeId(input.readString());
Ayaka Koshibe84411362014-10-01 09:33:42 -070027 final int term = input.readInt();
28 return MastershipTerm.of(node, term);
29 }
30
31 @Override
32 public void write(Kryo kryo, Output output, MastershipTerm object) {
33 output.writeString(object.master().toString());
34 output.writeInt(object.termNumber());
35 }
36
37}