New Client API
Created by: robertmaynard
Lets change around the client api so that all the method calls follow a more consistent naming convention.
class Client
{
//return the connection info that was used to connect to the
//remus server
const remus::client::ServerConnection& connection() const;
//Submit a request to the server to see if the server supports
//the requested input and output mesh types
bool canMesh(const remus::common::MeshIOType& meshtypes);
//Submit a request to the server to see if the server supports
//the exact requested requirements
bool canMesh(const remus::proto::JobRequirements& requirements);
//submit a request to the server to see if the server supports
//the request input and output mesh types. If the server does support
//the given types, return a collection of JobRequirements
remus::proto::JobRequirementsSet requirements( const remus::common::MeshIOType& meshtypes );
//Submit a job to the server. The job submission has a JobData and
//a JobRequirements component
remus::proto::Job submit(const remus::proto::JobSubmission& submission);
//Given a remus Job object returns the status of the job
remus::proto::JobStatus status(const remus::proto::Job& job);
//Return job result of of a give job
remus::proto::JobResult results(const remus::proto::Job& job);
//attempts to terminate a given job, will kill the job if the job hasn't
//started. If the job has been finished and the results
//are on the server the results will be deleted. If the job is in process
//this will be unable to kill the job.
remus::proto::JobStatus terminate(const remus::proto::Job& job);
};