Grassroots Infrastructure
The Grassroots Infrastructure is a suite of computing tools to help users and developers use scientific data infrastructure that can easily be interconnected.
|
Go to the documentation of this file.
29 #ifndef SERVICES_LIB_INCLUDE_REMOTE_SERVICE_JOB_H_
30 #define SERVICES_LIB_INCLUDE_REMOTE_SERVICE_JOB_H_
38 #ifndef DOXYGEN_SHOULD_SKIP_THIS
40 #ifdef ALLOCATE_REMOTE_SERVICE_JOB_TAGS
41 #define REMOTE_SERVICE_JOB_PREFIX GRASSROOTS_SERVICE_API
42 #define REMOTE_SERVICE_JOB_VAL(x) = x
44 #define REMOTE_SERVICE_JOB_PREFIX extern GRASSROOTS_SERVICE_API
45 #define REMOTE_SERVICE_JOB_VAL(x)
55 REMOTE_SERVICE_JOB_PREFIX
const char *
const RSJ_TYPE_S REMOTE_SERVICE_JOB_VAL (
"remote_service_job");
ServiceJob rsj_job
The base ServiceJob.
Definition: remote_service_job.h:68
A datatype describing a ServiceJob that is run on a remote Grassroots Server.
Definition: remote_service_job.h:65
A datatype to represent a running task.
Definition: service_job.h:72
bool SetRemoteServiceJobDetails(RemoteServiceJob *remote_job_p, const char *remote_service_s, const char *remote_uri_s, const uuid_t remote_job_id)
Set the RemoteServiceJob-specific details for a given RemoteServiceJob.
#define GRASSROOTS_SERVICE_API
Definition: grassroots_service_library.h:49
void FreeRemoteServiceJob(ServiceJob *job_p)
Free the RemoteServiceJob.
RemoteServiceJob * AllocateRemoteServiceJob(struct Service *service_p, const char *job_name_s, const char *job_description_s, const char *remote_service_s, const char *remote_uri_s, uuid_t remote_job_id)
Allocate a RemoteServiceJob.
uuid_t rsj_remote_job_id
The UUID of the RemoteServiceJob on its remote Server.
Definition: remote_service_job.h:77
char * rsj_service_name_s
The name of the Service that will run the RemoteServiceJob.
Definition: remote_service_job.h:74
RemoteServiceJob * GetRemoteServiceJobFromJSON(const json_t *job_json_p, struct Service *service_p, GrassrootsServer *grassroots_p)
Create a RemoteServiceJob from a given JSON fragment.
A datatype which defines an available service, its capabilities and its parameters.
Definition: service.h:153
RemoteServiceJob * CreateRemoteServiceJobFromResultsJSON(const char *remote_service_s, const char *remote_uri_s, const uuid_t remote_job_id, const json_t *results_p, struct Service *service_p, const char *job_name_s, const char *job_description_s, OperationStatus status)
Create a RemoteServiceJob from the JSON fragment returned from the ExternalServer that ran the job.
OperationStatus
The current status of an Operation.
Definition: operation.h:96
const char *const RSJ_TYPE_S
The job type for RemoteServiceJobs.
Definition: remote_service_job.h:55
json_t * GetRemoteServiceJobAsJSON(RemoteServiceJob *job_p, bool omit_results_flag)
Create a given JSON fragment for a given RemoteServiceJob.
Definition: grassroots_server.h:45
char * rsj_uri_s
The URI for the ExternalServer that is running the RemoteServiceJob.
Definition: remote_service_job.h:71
bool IsRemoteServiceJobJSON(const json_t *job_json_p)
Test whether a given JSON object represents a RemoteServiceJob.
Definition: windows_uuid.h:43