package org.infinispan.server.hotrod; import org.infinispan.Cache; import org.infinispan.manager.EmbeddedCacheManager; import org.infinispan.remoting.transport.Address; import org.infinispan.server.hotrod.Events.Event; import io.netty.buffer.ByteBuf; /** * This class represents the work to be done by an encoder of a particular Hot Rod protocol version. * * @author Galder ZamarreƱo * @since 5.1 */ interface VersionedEncoder { /** * Write the header to the given channel buffer */ void writeHeader(Response r, ByteBuf buf, Cache<Address, ServerAddress> c, HotRodServer server); /** * Write operation response using the given channel buffer */ void writeResponse(Response r, ByteBuf buf, EmbeddedCacheManager cacheManager, HotRodServer server); /** * Write an event, including its header, using the given channel buffer */ void writeEvent(Event e, ByteBuf buf); }