package io.craft.atom.protocol.rpc.spi; import io.craft.atom.protocol.ProtocolException; /** * Serialize object to bytes or deserialize object from bytes. * * @author mindwind * @version 1.0, Jul 23, 2014 */ public interface Serialization<T> { /** * @return serialization type. */ byte type(); /** * Serialize object to bytes. * * @param object * @return serialized bytes */ byte[] serialize(T object) throws ProtocolException; /** * Deserialize object from bytes. * * @param bytes byte array * @return deserialized object. */ T deserialize(byte[] bytes) throws ProtocolException; /** * Deserialize object from bytes at specific offset . * * @param bytes byte array * @param off offset * @return deserialized object. */ T deserialize(byte[] bytes, int off) throws ProtocolException; }