Yuta HIGUCHI

KryoNamespace as KryoFactory

Change-Id: I4b78433f08d01619b89f37a961213660a8e3c2db
...@@ -13,6 +13,7 @@ import com.esotericsoftware.kryo.io.ByteBufferInput; ...@@ -13,6 +13,7 @@ import com.esotericsoftware.kryo.io.ByteBufferInput;
13 import com.esotericsoftware.kryo.io.ByteBufferOutput; 13 import com.esotericsoftware.kryo.io.ByteBufferOutput;
14 import com.esotericsoftware.kryo.io.Input; 14 import com.esotericsoftware.kryo.io.Input;
15 import com.esotericsoftware.kryo.io.Output; 15 import com.esotericsoftware.kryo.io.Output;
16 +import com.esotericsoftware.kryo.pool.KryoFactory;
16 import com.google.common.collect.ImmutableList; 17 import com.google.common.collect.ImmutableList;
17 18
18 // TODO Add tests for this class. 19 // TODO Add tests for this class.
...@@ -20,7 +21,7 @@ import com.google.common.collect.ImmutableList; ...@@ -20,7 +21,7 @@ import com.google.common.collect.ImmutableList;
20 * Pool of Kryo instances, with classes pre-registered. 21 * Pool of Kryo instances, with classes pre-registered.
21 */ 22 */
22 //@ThreadSafe 23 //@ThreadSafe
23 -public final class KryoNamespace { 24 +public final class KryoNamespace implements KryoFactory {
24 25
25 /** 26 /**
26 * Default buffer size used for serialization. 27 * Default buffer size used for serialization.
...@@ -116,7 +117,7 @@ public final class KryoNamespace { ...@@ -116,7 +117,7 @@ public final class KryoNamespace {
116 public KryoNamespace populate(int instances) { 117 public KryoNamespace populate(int instances) {
117 List<Kryo> kryos = new ArrayList<>(instances); 118 List<Kryo> kryos = new ArrayList<>(instances);
118 for (int i = 0; i < instances; ++i) { 119 for (int i = 0; i < instances; ++i) {
119 - kryos.add(newKryoInstance()); 120 + kryos.add(create());
120 } 121 }
121 pool.addAll(kryos); 122 pool.addAll(kryos);
122 return this; 123 return this;
...@@ -130,7 +131,7 @@ public final class KryoNamespace { ...@@ -130,7 +131,7 @@ public final class KryoNamespace {
130 public Kryo getKryo() { 131 public Kryo getKryo() {
131 Kryo kryo = pool.poll(); 132 Kryo kryo = pool.poll();
132 if (kryo == null) { 133 if (kryo == null) {
133 - return newKryoInstance(); 134 + return create();
134 } 135 }
135 return kryo; 136 return kryo;
136 } 137 }
...@@ -235,7 +236,8 @@ public final class KryoNamespace { ...@@ -235,7 +236,8 @@ public final class KryoNamespace {
235 * 236 *
236 * @return Kryo instance 237 * @return Kryo instance
237 */ 238 */
238 - private Kryo newKryoInstance() { 239 + @Override
240 + public Kryo create() {
239 Kryo kryo = new Kryo(); 241 Kryo kryo = new Kryo();
240 kryo.setRegistrationRequired(registrationRequired); 242 kryo.setRegistrationRequired(registrationRequired);
241 for (Pair<Class<?>, Serializer<?>> registry : registeredTypes) { 243 for (Pair<Class<?>, Serializer<?>> registry : registeredTypes) {
......