package com.bigdata.bop.engine;
import java.rmi.RemoteException;
import java.util.UUID;
import com.bigdata.bop.PipelineOp;
/**
* Interface for a client executing queries (the query controller).
*/
public interface IQueryClient extends IQueryPeer {
/**
* Return the set of queries which are running as of the moment when the
* request was processed. Queries reported in the returned array may
* terminate at any time.
*/
UUID[] getRunningQueries() throws RemoteException;
/**
* Return the query.
*
* @param queryId
* The query identifier.
* @return The query.
*
* @throws IllegalArgumentException
* if there is no such query.
*/
PipelineOp getQuery(UUID queryId) throws RemoteException;
/**
* Notify the client that execution has started for some query, operator,
* node, and index partition.
*/
void startOp(IStartOpMessage msg)
throws RemoteException;
/**
* Notify the client that execution has halted for some query, operator,
* node, shard, and source binding set chunk(s). If execution halted
* abnormally, then the cause is sent as well.
*/
void haltOp(IHaltOpMessage msg) throws RemoteException;
}