package io.craft.atom.rpc.spi; import io.craft.atom.protocol.rpc.model.RpcMessage; import io.craft.atom.rpc.RpcException; import java.util.List; /** * RPC channel, provides abilities: <br> * - Write <code>RpcMessage</code> to remote peer.<br> * - Read <code>RpcMessage</code> from remote peer. * * @see RpcAcceptor * @author mindwind * @version 1.0, Aug 22, 2014 */ public interface RpcChannel { /** * Write rpc message and encode it to bytes to remote peer of the channel. * * @param msg * @throws RpcException if any other error occurs */ void write(RpcMessage msg) throws RpcException; /** * Read bytes and decode it to rcp messages from remote peer of the channel. * * @param bytes * @return rpc message list */ List<RpcMessage> read(byte[] bytes); }