package org.infinispan.marshaller.kryo; import net.spy.memcached.CachedData; import net.spy.memcached.transcoders.Transcoder; /** * @author Ryan Emerson * @since 9.0 */ public class KryoTranscoder implements Transcoder<Object> { private KryoMarshaller marshaller; public KryoTranscoder(KryoMarshaller marshaller) { this.marshaller = marshaller; } public KryoMarshaller getMarshaller() { return marshaller; } public void setMarshaller(KryoMarshaller marshaller) { this.marshaller = marshaller; } @Override public boolean asyncDecode(CachedData d) { return false; } @Override public CachedData encode(Object o) { try { byte[] bytes = marshaller.objectToByteBuffer(o); return new CachedData(0, bytes, bytes.length); } catch (Throwable t) { throw new RuntimeException(t); } } @Override public Object decode(CachedData d) { byte[] data = d.getData(); try { return marshaller.objectFromByteBuffer(data); } catch (Throwable t) { throw new RuntimeException(t); } } @Override public int getMaxSize() { return Integer.MAX_VALUE; } }