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.
28 #ifndef SERVER_SRC_SERVICES_LIB_INCLUDE_LINKED_SERVICE_H_
29 #define SERVER_SRC_SERVICES_LIB_INCLUDE_LINKED_SERVICE_H_
A datatype to represent a running task.
Definition: service_job.h:72
struct MappedParameter * GetMappedParameterByInputParamName(const LinkedService *linked_service_p, const char *const name_s)
Get the MappedParameter with a given name from a LinkedService.
LinkedService * AllocateLinkedService(const char *linked_service_s, const char *input_key_s, const json_t *mapped_params_json_p, const char *const function_s, const json_t *config_p, GrassrootsServer *grassroots_p)
Allocate a LinkedService.
LinkedServiceNode * AllocateLinkedServiceNode(LinkedService *linked_service_p)
Allocate a LinkedServiceNode to store a LinkedService on a LinkedList.
#define GRASSROOTS_SERVICE_API
Definition: grassroots_service_library.h:49
char * ls_output_service_s
The name of the Service whose input will be generated from the output of the Service that owns this L...
Definition: linked_service.h:57
void FreeLinkedService(LinkedService *linked_service_p)
Free a LinkedService.
bool RunCustomLinkedServiceGenerator(struct LinkedService *linked_service_p, json_t *data_p, struct ServiceJob *job_p)
A datatype which defines an available service, its capabilities and its parameters.
Definition: service.h:153
LinkedService * CreateLinkedServiceFromJSON(struct Service *service_p, const json_t *linked_service_json_p, GrassrootsServer *grassroots_p)
Create a new LinkedService from a JSON fragment.
const json_t * ls_config_p
Definition: linked_service.h:80
char * ls_input_key_s
Definition: linked_service.h:78
bool ProcessLinkedService(LinkedService *linked_service_p, struct ServiceJob *job_p)
Run a LinkedService.
json_t * GetLinkedServiceAsJSON(LinkedService *linked_service_p)
Get the JSON representation of a LinkedService.
const char * ls_generate_fn_s
The name of the function that will get dynamically loaded from the Service's Plugin.
Definition: linked_service.h:75
A doubly-linked list that can be traversed in either direction.
Definition: linked_list.h:56
This datatype stores the data needed to get the required information from the output of one Service t...
Definition: linked_service.h:50
ListItem lsn_node
The base ListItem.
Definition: linked_service.h:97
bool AddMappedParameterToLinkedService(LinkedService *linked_service_p, struct MappedParameter *mapped_param_p)
Add a MappedParameter to a LinkedService.
Definition: grassroots_server.h:45
The datatype to allow the storage of LinkedServices on LinkedLists.
Definition: linked_service.h:94
void FreeLinkedServiceNode(ListItem *node_p)
Free a LinkedServiceNode and its associated LinkedService.
This structure is used to store a relationship between a value from the output of running one service...
Definition: mapped_parameter.h:52
bool CreateAndAddMappedParameterToLinkedService(LinkedService *linked_service_p, const char *input_s, const char *output_s, bool required_flag, bool multi_flag)
Create and add a MappedParameter to a LinkedService.
bool AddLinkedServiceToRequestJSON(json_t *request_p, LinkedService *linked_service_p, ParameterSet *output_params_p)
Add the details for how to run a LinkedService with a partially-filled in set of Parameters to a JSON...
LinkedService * lsn_linked_service_p
A pointer to the LinkedService.
Definition: linked_service.h:100
A set of Parameters along with an optional name and description.
Definition: parameter_set.h:46
GrassrootsServer * ls_grassroots_p
Definition: linked_service.h:82
LinkedList * ls_mapped_params_p
The list of MappedParameterNodes storing the information required to map values from the input Servic...
Definition: linked_service.h:65
A doubly-linked node that points to its predecessor and successor.
Definition: linked_list.h:43