Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package com.tectonica.util;
  
  
  public class KryoUtil
  {
  	private static class KryoBox
 	{
 		final Kryo kryo;
 		final Output output;
 
 		public KryoBox()
 		{
 			 = new Kryo();
 			 = new Output(1024, -1);
 		}
 	}
 
 	public static interface Configurator
 	{
 		void configure(Kryo kryo);
 	}
 
 	private static Configurator defaultConfigurator = new Configurator()
 	{
 		public void configure(Kryo kryo)
 		{
 			kryo.setReferences(false); // faster, but not suitable when cross-references are used (especially cyclic)
 //			kryo.setDefaultSerializer(CompatibleFieldSerializer.class);
 		}
 	};
 
 	private static void configure(Kryo kryo)
 	{
 		// TODO: allow an SPI for custom configuration
 	}
 
 	private static ThreadLocal<KryoBoxkryos = new ThreadLocal<KryoBox>()
 	{
 		protected KryoBox initialValue()
 		{
 			return new KryoBox();
 		}
 	};
 
 	public static byte[] objToBytes(Object obj)
 	{
 		if (obj == null)
 			return null;
 		KryoBox kryoBox = .get();
 		kryoBox.output.clear();
 		kryoBox.kryo.writeObject(kryoBox.outputobj);
 		return kryoBox.output.toBytes();
 	}
 
 	public static <V> V bytesToObj(byte[] bytesClass<V> clz)
 	{
 		if (bytes == null)
 			return null;
 		return .get()..readObject(new Input(bytes), clz);
 	}
 
 	public static <V> V copyOf(V obj)
 	{
 		if (obj == null)
 			return null;
 		return .get()..copy(obj);
 	}
 
 	// ////////////////////////////////////////////////////////////////////////
 
 	private static Kryo kryo = new Kryo();
 	private static Output output = new Output(1024, -1);
 	static
 	{
 	}
 
 	public static byte[] objToBytes_SingleThreaded(Object obj)
 	{
 		return .toBytes();
 	}
 
 	public static <V> V bytesToObj_SingleThreaded(byte[] bytesClass<V> clz)
 	{
 		return .readObject(new Input(bytes), clz);
 	}
 
 	public static <V> V copyOf_SingleThreaded(V obj)
 	{
 		return .copy(obj);
 	}
New to GrepCode? Check out our FAQ X