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 PAIRED_SERVICE_H_
30 #define PAIRED_SERVICE_H_
json_t * MakeRemotePairedServiceCall(const char *const service_name_s, ParameterSet *params_p, const char *const paired_service_uri_s, ProvidersStateTable *providers_p, GrassrootsServer *grassroots_p)
Call the PairedService and get its JSON response.
A datatype for storing PairedServices on a LinkedList.
Definition: paired_service.h:88
PairedServiceNode * AllocatePairedServiceNodeByParts(const uuid_t id, const char *name_s, const char *server_uri_s, const char *server_name_s, const json_t *op_p, const json_t *provider_p)
Allocate a PairedService and attach it to a PairedServiceNode.
A datatype describing a ServiceJob that is run on a remote Grassroots Server.
Definition: remote_service_job.h:65
#define GRASSROOTS_SERVICE_API
Definition: grassroots_service_library.h:49
char * ps_name_s
The name of the PairedService.
Definition: paired_service.h:65
PairedServiceNode * AllocatePairedServiceNode(PairedService *paired_service_p)
Allocate a PairedServiceNode.
int32 AddRemoteResultsToServiceJobs(const json_t *server_response_p, struct Service *service_p, const char *const remote_service_s, const char *const remote_uri_s, const struct ServiceData *service_data_p, bool(*save_job_fn)(struct RemoteServiceJob *job_p, const struct ServiceData *service_data_p))
Add the results of running PairedServices as RemoteServiceJobs to the ServiceJobSet of a given Servic...
int32 RunPairedServices(struct Service *service_p, ParameterSet *param_set_p, ProvidersStateTable *providers_p, bool(*save_job_fn)(struct RemoteServiceJob *job_p, const struct ServiceData *service_data_p))
Run all of the PairedServices for a given Service.
void FreePairedService(PairedService *paired_service_p)
Free a PairedService.
json_t * ps_provider_p
The JSON fragment detailing the Provider of this PairedService.
Definition: paired_service.h:74
void FreePairedServiceNode(ListItem *node_p)
Free a PairedServiceNode.
uuid_t ps_extenal_server_id
The UUID for the ExternalServer that runs the PairedService.
Definition: paired_service.h:62
A datatype which defines an available service, its capabilities and its parameters.
Definition: service.h:153
ListItem psn_node
The base list node.
Definition: paired_service.h:91
char * ps_server_uri_s
The URI of the ExternalServer's Grassroots service.
Definition: paired_service.h:71
This is a datatype that is used to keep track of which servers and services have already been process...
Definition: providers_state_table.h:49
ParameterSet * ps_params_p
The ParameterSet for this PairedService.
Definition: paired_service.h:77
A datatype for describing a remote Service that can be used in conjunction with a local Service.
Definition: paired_service.h:59
Definition: grassroots_server.h:45
PairedService * psn_paired_service_p
The PairedService.
Definition: paired_service.h:94
char * ps_server_name_s
The name of the ExternalServer.
Definition: paired_service.h:68
A datatype for holding the configuration data for a Service.
Definition: service.h:126
PairedService * AllocatePairedService(const uuid_t id, const char *name_s, const char *server_uri_s, const char *server_name_s, const json_t *service_json_p, const json_t *provider_p)
Allocate a PairedService.
A set of Parameters along with an optional name and description.
Definition: parameter_set.h:46
A doubly-linked node that points to its predecessor and successor.
Definition: linked_list.h:43
Definition: windows_uuid.h:43