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.
24 #ifndef PARAMETER_SET_H
25 #define PARAMETER_SET_H
The datatype that stores all of the information about a Parameter.
Definition: parameter.h:121
A datatype to tell the system that certain parameters should be grouped together in the client's user...
Definition: parameter_group.h:85
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 * GetParameterSetAsJSON(const ParameterSet *const param_set_p, const SchemaVersion *const sv_p, const bool full_definition_flag)
Generate a json-based description of a ParameterSet.
ParameterSet * psn_param_set_p
Pointer to the associated ParameterSet.
Definition: parameter_set.h:93
uint32 GetParameterSetSize(const ParameterSet *const param_set_p)
#define GRASSROOTS_SERVICE_API
Definition: grassroots_service_library.h:49
json_t * GetParameterSetSelectionAsJSON(const ParameterSet *const param_set_p, const SchemaVersion *const sv_p, const bool full_definition_flag, void *data_p, bool(*add_param_fn)(const Parameter *param_p, void *data_p))
Generate a json-based description of a selection of ParameterSet.
LinkedList * ps_params_p
A LinkedList of ParameterNodes containing the Parameters.
Definition: parameter_set.h:64
ParameterSet * AllocateParameterSet(const char *name_s, const char *description_s)
Create a new ParameterSet containing no parameters.
LinkedList * ps_grouped_params_p
A LinkedList of ParameterGroupNodes for this ParameterSet.
Definition: parameter_set.h:70
bool AddParameterGroupToParameterSet(ParameterSet *param_set_p, ParameterGroup *group_p)
Add a ParameterGroup to a ParameterSet.
ParameterSetNode * AllocateParameterSetNode(ParameterSet *params_p)
Allocate a new ParameterSetNode to point to the given ParameterSet.
bool AddParameterToParameterSet(ParameterSet *params_p, Parameter *param_p)
Add a Parameter to a ParameterSet.
A datatype which defines an available service, its capabilities and its parameters.
Definition: service.h:153
Parameter * DetachParameterByName(ParameterSet *params_p, const char *const name_s)
Remove the Parameter with a given name from a ParameterSet.
ParameterLevel
The ParameterLevel defines the level that a user should be to adjust the Parameter.
Definition: parameter.h:52
struct ParameterGroup * GetParameterGroupFromParameterSetByGroupName(const ParameterSet *const params_p, const char *const name_s)
Get all of the Parameters within a given ParameterGroup.
A doubly-linked list that can be traversed in either direction.
Definition: linked_list.h:56
ParameterLevel ps_current_level
This is used when responding to parameters sent by another Grassroots Server or Client if there are t...
Definition: parameter_set.h:77
void FreeParameterSetNode(ListItem *node_p)
Free a ParameterSetNode and its associated ParameterSet.
Parameter * GetParameterFromParameterSetByName(const ParameterSet *const params_p, const char *const name_s)
Get the Parameter with a given name from a ParameterSet.
ListItem psn_node
The base list node.
Definition: parameter_set.h:90
bool DetachParameter(ParameterSet *params_p, Parameter *param_p)
Remove the Parameter with from a ParameterSet.
const char * ps_description_s
An optional description for the ParameterSet.
Definition: parameter_set.h:58
A datatype for storing a ParameterSet on a LinkedList.
Definition: parameter_set.h:87
void FreeParameterSet(ParameterSet *params_p)
Free a ParameterSet and all of its Parameters.
A datatype for storing Parameters in a LinkedList.
Definition: parameter.h:219
const char * ps_name_s
An optional name for the ParameterSet.
Definition: parameter_set.h:52
A datatype for holding the configuration data for a Service.
Definition: service.h:126
ParameterNode * GetParameterNodeFromParameterSetByName(const ParameterSet *const params_p, const char *const name_s)
Get the ParameterNode for a Parameter with a given name from a ParameterSet.
A set of Parameters along with an optional name and description.
Definition: parameter_set.h:46
ParameterSet * CreateParameterSetFromJSON(const json_t *const json_p, struct Service *service_p, const bool concise_flag)
Create a new ParameterSet from a json-based description.
bool ReplaceParameterInParameterSet(ParameterSet *params_p, Parameter *old_param_p, Parameter *new_param_p, const bool free_old_param_flag)
Replace a Parameter in a ParameterSet.
A doubly-linked node that points to its predecessor and successor.
Definition: linked_list.h:43