blob: 5d809a48e2a00d1cf59c4bc0a265a4b9df511777 [file] [log] [blame]
Madan Jampanie4ff21b2014-10-02 15:17:32 -07001package org.onlab.onos.store.messaging.impl;
2
3import org.onlab.util.KryoPool;
4import org.slf4j.Logger;
5import org.slf4j.LoggerFactory;
6
7import java.util.ArrayList;
8import java.util.HashMap;
9
10/**
11 * Kryo Serializer.
12 */
13public class KryoSerializer implements Serializer {
14
15 private final Logger log = LoggerFactory.getLogger(getClass());
16
17 private KryoPool serializerPool;
18
19 public KryoSerializer() {
20 setupKryoPool();
21 }
22
23 /**
24 * Sets up the common serialzers pool.
25 */
26 protected void setupKryoPool() {
27 // FIXME Slice out types used in common to separate pool/namespace.
28 serializerPool = KryoPool.newBuilder()
29 .register(ArrayList.class,
30 HashMap.class,
31 ArrayList.class
32 )
33 .build()
34 .populate(1);
35 }
36
37
38 @Override
39 public Object decode(byte[] data) {
40 return serializerPool.deserialize(data);
41 }
42
43 @Override
44 public byte[] encode(Object payload) {
45 return serializerPool.serialize(payload);
46 }
47}