blob: 3d3efe02d0fb3b223093c5e75b5b1d0ad2cdc4fa [file] [log] [blame]
Yuta HIGUCHI24a086b2014-09-21 23:28:41 -07001package org.onlab.onos.store.device.impl;
2
3import org.onlab.packet.IpPrefix;
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// TODO move to util, etc.
11public final class IpPrefixSerializer extends Serializer<IpPrefix> {
12
13 public IpPrefixSerializer() {
14 // non-null, immutable
15 super(false, true);
16 }
17
18 @Override
19 public void write(Kryo kryo, Output output,
20 IpPrefix object) {
21 byte[] octs = object.toOctets();
22 output.writeInt(octs.length);
23 output.writeBytes(octs);
24 output.writeInt(object.prefixLength());
25 }
26
27 @Override
28 public IpPrefix read(Kryo kryo, Input input,
29 Class<IpPrefix> type) {
30 int octLen = input.readInt();
31 byte[] octs = new byte[octLen];
32 input.read(octs);
33 int prefLen = input.readInt();
34 return IpPrefix.valueOf(octs, prefLen);
35 }
36}