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.
|
This is a datatype to store the versioning details for the Grassroots JSON schema that is being used.
Definition: schema_version.h:44
json_t * GetServicesRequest(const User *user_p, const Operation op, const char *const op_key_s, json_t *const op_data_p, const SchemaVersion *const sv_p)
Generate the request to run an Operation.
#define GRASSROOTS_NETWORK_API
Definition: network_library.h:46
bool GetStatusFromJSON(const json_t *service_json_p, OperationStatus *status_p)
Get the current OperationStatus for a Service from its JSON fragment.
bool GetUsernameAndPassword(const User *const user_p, const char *provider_s, const char **username_ss, const char **password_ss)
Extract the user credentials from a JSON fragment.
Operation
The various Operations that a Server can perform.
Definition: operation.h:46
json_t * GetNamedServicesRequest(const User *user_p, const char *const service_name_s, const SchemaVersion *const sv_p)
Generate the JSON fragment to send to the Server for getting the details of a particular Service.
const char * GetUserUUIDStringFromJSON(const json_t *credentials_p)
Get the User uuid from a JSON fragment.
json_t * GetAvailableServicesRequest(const User *user_p, const SchemaVersion *const sv_p)
Generate the JSON fragment to send to the Server for getting all available Services.
json_t * GetOperationAsJSON(Operation op, const SchemaVersion *const sv_p)
Get the JSON fragment for a given Operation.
json_t * GetInitialisedMessage(const SchemaVersion *const sv_p)
Create a response object with a valid header.
The base class for building a Server-Client connection.
Definition: connection.h:65
json_t * CallServices(json_t *client_results_p, const User *user_p, Connection *connection_p)
Make a call from a Client to a Server.
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
bool AddClientConfigToJSON(json_t *root_p, const User *user_p)
Add the given credentials in the correct position in a JSON fragment.
OperationStatus
The current status of an Operation.
Definition: operation.h:96
Definition: grassroots_server.h:45
A datatype to store user credentials.
Definition: user_details.h:40
json_t * GetNamedServicesIndexingDataRequest(const User *user_p, const char *const service_names_s, const SchemaVersion *const sv_p)
Generate the JSON fragment to send to the Server for getting the indexing data of a particular Servic...
json_t * GetServicesResultsRequest(const uuid_t **ids_pp, const uint32 num_ids, Connection *connection_p, const SchemaVersion *const sv_p)
Generate the JSON fragment to send to the Server for getting the results of one or more Operations.
json_t * GetInterestedServicesRequest(const User *user_p, const char *const protocol_s, const char *const filename_s, const SchemaVersion *const sv_p)
Generate the JSON fragment to send to the Server for getting Services that are viable for a given Res...
json_t * MakeRemoteJsonCall(json_t *req_p, Connection *connection_p)
Send a JSON-based request to the server and get the JSON-based response.
Definition: windows_uuid.h:43