package edu.uw.zookeeper.client;
import com.google.common.util.concurrent.ListenableFuture;
import edu.uw.zookeeper.common.Eventful;
import edu.uw.zookeeper.common.Promise;
import edu.uw.zookeeper.common.TaskExecutor;
import edu.uw.zookeeper.protocol.Operation;
import edu.uw.zookeeper.protocol.SessionListener;
public interface ClientExecutor<I extends Operation.Request, O extends Operation.ProtocolResponse<?>, T extends SessionListener> extends TaskExecutor<I,O>, Eventful<T> {
ListenableFuture<O> submit(I request, Promise<O> promise);
}