package org.infinispan.remoting.rpc; import org.infinispan.remoting.responses.Response; import org.infinispan.remoting.transport.Address; /** * A mechanism of filtering RPC responses. Used with the RPC manager. * * @author Manik Surtani * @since 4.0 */ public interface ResponseFilter { /** * Determines whether a response from a given sender should be added to the response list of the request * * @param response The response (usually a serializable value) * @param sender The sender of response * @return True if we should add the response to the response list of a request, otherwise false. In the latter case, * we don't add the response to the response list. */ boolean isAcceptable(Response response, Address sender); /** * Right after calling {@link #isAcceptable(Response, Address)}, this method is called to see whether we are done * with the request and can unblock the caller * * @return False if the request is done, otherwise true */ boolean needMoreResponses(); }