blob: 0ac61a88f6fc79d73b442032a058b4442f933823 [file] [log] [blame]
Ayaka Koshibe84411362014-10-01 09:33:42 -07001package org.onlab.onos.store.serializers;
2
3import org.onlab.onos.cluster.MastershipTerm;
4import org.onlab.onos.cluster.NodeId;
Ayaka Koshibe84411362014-10-01 09:33:42 -07005import com.esotericsoftware.kryo.Kryo;
6import com.esotericsoftware.kryo.Serializer;
7import com.esotericsoftware.kryo.io.Input;
8import com.esotericsoftware.kryo.io.Output;
9
10/**
11 * Kryo Serializer for {@link org.onlab.onos.cluster.MastershipTerm}.
12 */
13public class MastershipTermSerializer extends Serializer<MastershipTerm> {
14
Yuta HIGUCHI03fec1f2014-10-03 09:13:50 -070015 /**
16 * Creates {@link MastershipTerm} serializer instance.
17 */
18 public MastershipTermSerializer() {
19 // non-null, immutable
20 super(false, true);
21 }
22
Ayaka Koshibe84411362014-10-01 09:33:42 -070023 @Override
24 public MastershipTerm read(Kryo kryo, Input input, Class<MastershipTerm> type) {
Yuta HIGUCHI5bdebe32014-10-04 21:40:41 -070025 final NodeId node = new NodeId(input.readString());
Ayaka Koshibe84411362014-10-01 09:33:42 -070026 final int term = input.readInt();
27 return MastershipTerm.of(node, term);
28 }
29
30 @Override
31 public void write(Kryo kryo, Output output, MastershipTerm object) {
32 output.writeString(object.master().toString());
33 output.writeInt(object.termNumber());
34 }
35
36}