blob: 0c33cfe50ad72c4e033affe2dcf34eb22aae5604 [file] [log] [blame]
Yuta HIGUCHI03fec1f2014-10-03 09:13:50 -07001package org.onlab.onos.store.serializers;
2
3import java.net.URI;
4import java.util.ArrayList;
Madan Jampani53e44e62014-10-07 12:39:51 -07005import java.util.Arrays;
Yuta HIGUCHI03fec1f2014-10-03 09:13:50 -07006import java.util.HashMap;
7
8import org.onlab.onos.cluster.ControllerNode;
9import org.onlab.onos.cluster.DefaultControllerNode;
10import org.onlab.onos.cluster.MastershipTerm;
11import org.onlab.onos.cluster.NodeId;
12import org.onlab.onos.net.ConnectPoint;
13import org.onlab.onos.net.DefaultAnnotations;
14import org.onlab.onos.net.DefaultDevice;
15import org.onlab.onos.net.DefaultLink;
16import org.onlab.onos.net.DefaultPort;
17import org.onlab.onos.net.Device;
18import org.onlab.onos.net.DeviceId;
19import org.onlab.onos.net.Element;
20import org.onlab.onos.net.Link;
21import org.onlab.onos.net.LinkKey;
22import org.onlab.onos.net.MastershipRole;
23import org.onlab.onos.net.Port;
24import org.onlab.onos.net.PortNumber;
Madan Jampani53e44e62014-10-07 12:39:51 -070025import org.onlab.onos.net.device.DefaultDeviceDescription;
26import org.onlab.onos.net.device.DefaultPortDescription;
Yuta HIGUCHI03fec1f2014-10-03 09:13:50 -070027import org.onlab.onos.net.provider.ProviderId;
28import org.onlab.packet.IpAddress;
29import org.onlab.packet.IpPrefix;
30import org.onlab.util.KryoPool;
31
32import de.javakaffee.kryoserializers.URISerializer;
33
34public final class KryoPoolUtil {
35
36 /**
37 * KryoPool which can serialize ON.lab misc classes.
38 */
39 public static final KryoPool MISC = KryoPool.newBuilder()
40 .register(IpPrefix.class, new IpPrefixSerializer())
41 .register(IpAddress.class, new IpAddressSerializer())
42 .build();
43
44 // TODO: Populate other classes
45 /**
46 * KryoPool which can serialize API bundle classes.
47 */
48 public static final KryoPool API = KryoPool.newBuilder()
49 .register(MISC)
50 .register(
51 //
52 ArrayList.class,
Madan Jampani53e44e62014-10-07 12:39:51 -070053 Arrays.asList().getClass(),
Yuta HIGUCHI03fec1f2014-10-03 09:13:50 -070054 HashMap.class,
55 //
56 ControllerNode.State.class,
57 Device.Type.class,
58 DefaultAnnotations.class,
59 DefaultControllerNode.class,
60 DefaultDevice.class,
Madan Jampani53e44e62014-10-07 12:39:51 -070061 DefaultDeviceDescription.class,
Yuta HIGUCHI03fec1f2014-10-03 09:13:50 -070062 MastershipRole.class,
63 Port.class,
Madan Jampani53e44e62014-10-07 12:39:51 -070064 DefaultPortDescription.class,
Yuta HIGUCHI03fec1f2014-10-03 09:13:50 -070065 Element.class,
66 Link.Type.class
67 )
68 .register(URI.class, new URISerializer())
69 .register(NodeId.class, new NodeIdSerializer())
70 .register(ProviderId.class, new ProviderIdSerializer())
71 .register(DeviceId.class, new DeviceIdSerializer())
72 .register(PortNumber.class, new PortNumberSerializer())
73 .register(DefaultPort.class, new DefaultPortSerializer())
74 .register(LinkKey.class, new LinkKeySerializer())
75 .register(ConnectPoint.class, new ConnectPointSerializer())
76 .register(DefaultLink.class, new DefaultLinkSerializer())
77 .register(MastershipTerm.class, new MastershipTermSerializer())
78 .register(MastershipRole.class, new MastershipRoleSerializer())
79
80 .build();
81
82
83 // not to be instantiated
84 private KryoPoolUtil() {}
85}