blob: f1a12fe8572ba2a3f2121968bdee9cd6b0898131 [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;
5import java.util.HashMap;
6
7import org.onlab.onos.cluster.ControllerNode;
8import org.onlab.onos.cluster.DefaultControllerNode;
9import org.onlab.onos.cluster.MastershipTerm;
10import org.onlab.onos.cluster.NodeId;
11import org.onlab.onos.net.ConnectPoint;
12import org.onlab.onos.net.DefaultAnnotations;
13import org.onlab.onos.net.DefaultDevice;
14import org.onlab.onos.net.DefaultLink;
15import org.onlab.onos.net.DefaultPort;
16import org.onlab.onos.net.Device;
17import org.onlab.onos.net.DeviceId;
18import org.onlab.onos.net.Element;
19import org.onlab.onos.net.Link;
20import org.onlab.onos.net.LinkKey;
21import org.onlab.onos.net.MastershipRole;
22import org.onlab.onos.net.Port;
23import org.onlab.onos.net.PortNumber;
24import org.onlab.onos.net.provider.ProviderId;
25import org.onlab.packet.IpAddress;
26import org.onlab.packet.IpPrefix;
27import org.onlab.util.KryoPool;
28
29import de.javakaffee.kryoserializers.URISerializer;
30
31public final class KryoPoolUtil {
32
33 /**
34 * KryoPool which can serialize ON.lab misc classes.
35 */
36 public static final KryoPool MISC = KryoPool.newBuilder()
37 .register(IpPrefix.class, new IpPrefixSerializer())
38 .register(IpAddress.class, new IpAddressSerializer())
39 .build();
40
41 // TODO: Populate other classes
42 /**
43 * KryoPool which can serialize API bundle classes.
44 */
45 public static final KryoPool API = KryoPool.newBuilder()
46 .register(MISC)
47 .register(
48 //
49 ArrayList.class,
50 HashMap.class,
51 //
52 ControllerNode.State.class,
53 Device.Type.class,
54 DefaultAnnotations.class,
55 DefaultControllerNode.class,
56 DefaultDevice.class,
57 MastershipRole.class,
58 Port.class,
59 Element.class,
60 Link.Type.class
61 )
62 .register(URI.class, new URISerializer())
63 .register(NodeId.class, new NodeIdSerializer())
64 .register(ProviderId.class, new ProviderIdSerializer())
65 .register(DeviceId.class, new DeviceIdSerializer())
66 .register(PortNumber.class, new PortNumberSerializer())
67 .register(DefaultPort.class, new DefaultPortSerializer())
68 .register(LinkKey.class, new LinkKeySerializer())
69 .register(ConnectPoint.class, new ConnectPointSerializer())
70 .register(DefaultLink.class, new DefaultLinkSerializer())
71 .register(MastershipTerm.class, new MastershipTermSerializer())
72 .register(MastershipRole.class, new MastershipRoleSerializer())
73
74 .build();
75
76
77 // not to be instantiated
78 private KryoPoolUtil() {}
79}