package edu.uw.zookeeper.protocol;
import org.apache.jute.Record;
import org.apache.zookeeper.KeeperException;
import edu.uw.zookeeper.protocol.proto.OpCode;
import edu.uw.zookeeper.protocol.proto.Records;
public interface Operation {
public static interface RequestId {
int xid();
}
public static interface ResponseId {
long zxid();
}
public static interface Coded {
OpCode opcode();
}
public static interface RecordHolder<T extends Record> {
T record();
}
public static interface Request extends Operation {}
public static interface Response extends Operation {}
/**
* A response indicating an unsuccessful operation.
*/
public static interface Error extends Response {
KeeperException.Code error();
}
public static interface ProtocolRequest<T extends Records.Request> extends Request, RequestId, RecordHolder<T> {
}
public static interface ProtocolResponse<T extends Records.Response> extends Response, RequestId, ResponseId, RecordHolder<T> {
}
}