blob: e13bf7ee940f3fc0891b4378556dc59b4d9999cb [file] [log] [blame]
package net.onrc.onos.core.datastore.utils;
import com.esotericsoftware.kryo.Kryo;
/**
* Helper class to create thread local instance of Kryo.
*/
public final class ThreadLocalKryo extends ThreadLocal<Kryo> {
private final Class<?>[] expectedTypes;
/**
* Constructor specifying expected classes to be serialized using this
* Kryo instance.
* <p/>
* @param expectedTypes list of .class to register to Kryo
*/
public ThreadLocalKryo(Class<?>... expectedTypes) {
this.expectedTypes = expectedTypes;
}
@Override
protected Kryo initialValue() {
Kryo kryo = new Kryo();
// kryo.setRegistrationRequired(true);
// kryo.setReferences(false);
for (Class<?> type : expectedTypes) {
kryo.register(type);
}
return kryo;
}
}