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.
DrmaaServiceJob Struct Reference

A ServiceJob that also has the data for running as Drmaa-based task. More...

#include <drmaa_service_job.h>

Inheritance diagram for DrmaaServiceJob:
[legend]
Collaboration diagram for DrmaaServiceJob:
[legend]

Public Member Functions

DrmaaServiceJobAllocateDrmaaServiceJob (const char *drmaa_program_name_s, Service *service_p, const char *job_name_s)
 Allocate a DrmaaServiceJob. More...
 
void InitDrmaaServiceJob (DrmaaServiceJob *job_p, Service *service_p, const char *job_name_s)
 Initialise a DrmaaServiceJob. More...
 
json_t * GetDrmmaaServiceJobAsJSON (const DrmaaServiceJob *const job_p)
 Serialise the DrmaaServiceJob into a JSON fragment. More...
 
DrmaaServiceJobGetDrmmaaServiceJobFromJSON (const json_t *const json_p)
 Deserialise a DrmaaServiceJob from a JSON fragment. More...
 
- Public Member Functions inherited from ServiceJob
void FreeServiceJob (ServiceJob *job_p)
 Free a ServiceJob. More...
 
void FreeBaseServiceJob (ServiceJob *job_p)
 Free a ServiceJob ignoring if it is a subclass. More...
 
ServiceJobAllocateServiceJob (struct Service *service_p, const char *job_name_s, const char *job_description_s, bool(*update_fn)(struct ServiceJob *job_p), bool(*calculate_results_fn)(struct ServiceJob *job_p), void(*free_job_fn)(struct ServiceJob *job_p), const char *job_type_s)
 Allocate a ServiceJob. More...
 
ServiceJobCreateAndAddServiceJobToService (struct Service *service_p, const char *job_name_s, const char *job_description_s, bool(*update_fn)(struct ServiceJob *job_p), bool(*calculate_results_fn)(struct ServiceJob *job_p), void(*free_job_fn)(struct ServiceJob *job_p))
 Allocate a ServiceJob and add it to a ServiceJobSet. More...
 
bool InitServiceJob (ServiceJob *job_p, struct Service *service_p, const char *job_name_s, const char *job_description_s, bool(*update_fn)(struct ServiceJob *job_p), bool(*calculate_results_fn)(struct ServiceJob *job_p), void(*free_job_fn)(struct ServiceJob *job_p), uuid_t *id_p, const char *job_type_s)
 Initialise a ServiceJob. More...
 
void ClearServiceJob (ServiceJob *job_p)
 Clear a Service Job ready for reuse. More...
 
ServiceJobCloneServiceJob (const ServiceJob *src_p)
 Create a deep copy of a ServiceJob. More...
 
bool CopyServiceJob (const ServiceJob *src_p, ServiceJob *dest_p)
 Make a deep copy of one ServiceJob to another. More...
 
struct ServiceGetServiceFromServiceJob (ServiceJob *job_p)
 Get the owning Service for a given ServiceJob. More...
 
bool SetServiceJobDescription (ServiceJob *job_p, const char *const description_s)
 Set the description of ServiceJob. More...
 
bool SetServiceJobURL (ServiceJob *job_p, const char *const url_s)
 Set the description of ServiceJob. More...
 
bool SetServiceJobName (ServiceJob *job_p, const char *const name_s)
 Set the name of ServiceJob. More...
 
json_t * GetServiceJobAsJSON (ServiceJob *const job_p, bool omit_results_flag)
 Get a ServiceJob as JSON. More...
 
json_t * GetServiceJobStatusAsJSON (ServiceJob *job_p, bool omit_results_flag)
 Get the Current OperationStatus of a ServiceJob as JSON. More...
 
ServiceJobCreateServiceJobFromJSON (const json_t *job_json_p, GrassrootsServer *grassroots_p)
 Create a ServiceJob from a json_t object. More...
 
bool InitServiceJobFromJSON (ServiceJob *job_p, const json_t *json_p, struct Service *service_p, GrassrootsServer *grassroots_p)
 Get a ServiceJob from a json_t object. More...
 
OperationStatus GetServiceJobStatus (ServiceJob *job_p)
 Get the Current OperationStatus of a ServiceJob. More...
 
OperationStatus GetCachedServiceJobStatus (const ServiceJob *job_p)
 Get the last retrieved OperationStatus of a ServiceJob. More...
 
const char * GetServiceJobName (const ServiceJob *job_p)
 Get the name of ServiceJob. More...
 
bool CloseServiceJob (ServiceJob *job_p)
 Close a ServiceJob. More...
 
void ClearServiceJobResults (ServiceJob *job_p, bool free_memory_flag)
 Clear the results associated with a ServiceJob. More...
 
char * SerialiseServiceJobToJSON (ServiceJob *const job_p, bool omit_results_flag)
 Save the ServiceJob to a persistent format that allows the ServiceJob to be recreated in a potentially different thread and/or process. More...
 
ServiceJobCreateServiceJobFromResultsJSON (const json_t *results_p, struct Service *service_p, const char *name_s, const char *description_s, OperationStatus status, const char *job_type_s)
 Create a ServiceJob from a JSON Resource fragment. More...
 
bool InitServiceJobFromResultsJSON (ServiceJob *job_p, const json_t *results_p, struct Service *service_p, const char *name_s, const char *description_s, OperationStatus status, const char *job_type_s)
 Fill in the data for a ServiceJob from a given JSON fragement. More...
 
bool AddParameterErrorMessageToServiceJob (ServiceJob *job_p, const char *const param_s, const ParameterType param_type, const char *const value_s)
 Add a key-value pair error statement to a ServiceJob. More...
 
bool AddGeneralErrorMessageToServiceJob (ServiceJob *job_p, const char *const value_s)
 Add a key-value pair error statement to a ServiceJob. More...
 
bool AddCompoundErrorToServiceJob (ServiceJob *job_p, const char *param_s, const ParameterType param_type, json_t *error_details_p)
 Add a key-value pair error statement to a ServiceJob. More...
 
bool AddResultToServiceJob (ServiceJob *job_p, json_t *result_p)
 Add a result to ServiceJob. More...
 
void SetServiceJobStatus (ServiceJob *job_p, OperationStatus status)
 Set the current OperationStatus for a given ServiceJob. More...
 
void SetServiceJobUpdateFunction (ServiceJob *job_p, bool(*update_fn)(ServiceJob *job_p))
 Set the function that a ServiceJob will use to update itself. More...
 
void SetServiceJobFreeFunction (ServiceJob *job_p, void(*free_fn)(ServiceJob *job_p))
 Set the function that a ServiceJob will use to free itself. More...
 
void SetServiceJobCalculateResultFunction (ServiceJob *job_p, bool(*calculate_fn)(ServiceJob *job_p))
 Set the function that a ServiceJob will use to calculate its results. More...
 
bool UpdateServiceJob (ServiceJob *job_p)
 Update, if appropriate, a given ServiceJob. More...
 
uint32 GetNumberOfServiceJobResults (const ServiceJob *job_p)
 Get the number of results stored on a ServiceJob. More...
 
bool ReplaceServiceJobResults (ServiceJob *job_p, json_t *results_p)
 Replace the set of results for a given ServiceJob. More...
 
bool AddLinkedServiceToServiceJob (ServiceJob *job_p, struct LinkedService *linked_service_p)
 Add a LinkedService to ServiceJob. More...
 
void ProcessLinkedServices (ServiceJob *job_p)
 Attempt to extract the relevant data for all LinkedServices that the ServiceJob's Service has and store them in the ServiceJob. More...
 
bool CalculateServiceJobResult (ServiceJob *job_p)
 Calculate the results for the given ServiceJob. More...
 
void SetServiceJobUUID (ServiceJob *job_p, const uuid_t new_job_id)
 Replace the uuid for a given ServiceJob. More...
 

Data Fields

ServiceJob dsj_job
 The base ServiceJob. More...
 
DrmaaTooldsj_drmaa_p
 The associated DrmaaTool. More...
 
- Data Fields inherited from ServiceJob
struct Servicesj_service_p
 The Service that is running this job. More...
 
uuid_t sj_id
 The unique identifier for this job. More...
 
enum OperationStatus sj_status
 Is the service currently in an open state? More...
 
char * sj_service_name_s
 The name of the Service that this ServiceJob is for. More...
 
char * sj_name_s
 The name of the ServiceJob. More...
 
char * sj_description_s
 The description of the ServiceJob. More...
 
char * sj_url_s
 Any user-facing URL for showing results of running this ServiceJob. More...
 
json_t * sj_result_p
 The JSON fragment for the results of this ServiceJob. More...
 
json_t * sj_metadata_p
 The JSON fragment for any extra information for this ServiceJob. More...
 
json_t * sj_errors_p
 The JSON fragment for any errors that have occurred whilst running this ServiceJob. More...
 
json_t * sj_linked_services_p
 A JSON array where each object contains the details of running a different Service based upon the results of this ServiceJob. More...
 
bool(* sj_update_fn )(struct ServiceJob *job_p)
 The callback function to use when checking the status of this ServiceJob. More...
 
void(* sj_free_fn )(struct ServiceJob *job_p)
 The callback function to use when freeing this ServiceJob. More...
 
bool(* sj_calculate_result_fn )(struct ServiceJob *job_p)
 The callback function to use when a ServiceJob needs to generate its results This is useful for subclasses of ServiceJob that need custom behaviour. More...
 
bool sj_is_updating_flag
 Is this ServiceJob in the process of updating itself? More...
 
char * sj_type_s
 The type of ServiceJob. More...
 

Detailed Description

A ServiceJob that also has the data for running as Drmaa-based task.

Member Function Documentation

◆ AllocateDrmaaServiceJob()

DrmaaServiceJob * AllocateDrmaaServiceJob ( const char *  drmaa_program_name_s,
Service service_p,
const char *  job_name_s 
)

Allocate a DrmaaServiceJob.

Parameters
drmaa_program_name_sThe command line tool that will be run using DRMAA.
service_pThe Service that will run the ServiceJob.
job_name_sThe name to give to the job.
Returns
The DrmaaServiceJob or DrmaaServiceJob.

◆ InitDrmaaServiceJob()

void InitDrmaaServiceJob ( DrmaaServiceJob job_p,
Service service_p,
const char *  job_name_s 
)

Initialise a DrmaaServiceJob.

Parameters
job_pThe DrmaaServiceJob to initialise.
service_pThe Service that will run the ServiceJob.
job_name_sThe name to give to the job.

◆ GetDrmmaaServiceJobAsJSON()

json_t * GetDrmmaaServiceJobAsJSON ( const DrmaaServiceJob *const  job_p)

Serialise the DrmaaServiceJob into a JSON fragment.

Parameters
job_pThe DrmaaServiceJob.
Returns
The JSON fragment or NULL upon error.
See also
GetDrmmaaServiceJobFromJSON

◆ GetDrmmaaServiceJobFromJSON()

DrmaaServiceJob * GetDrmmaaServiceJobFromJSON ( const json_t *const  json_p)

Deserialise a DrmaaServiceJob from a JSON fragment.

Parameters
json_pThe JSON fragment.
Returns
The DrmaaServiceJob or NULL upon error.
See also
GetDrmmaaServiceJobAsJSON

Field Documentation

◆ dsj_job

ServiceJob dsj_job

The base ServiceJob.

◆ dsj_drmaa_p

DrmaaTool* dsj_drmaa_p

The associated DrmaaTool.


The documentation for this struct was generated from the following file: