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 PARAMETERS_INCLUDE_PARAMETER_GROUP_H_
30 #define PARAMETERS_INCLUDE_PARAMETER_GROUP_H_
56 #ifndef DOXYGEN_SHOULD_SKIP_THIS
58 #ifdef ALLOCATE_PARAMETER_GROUP_TAGS_H
59 #define PARAMETER_GROUP_PREFIX GRASSROOTS_SERVICE_API
60 #define PARAMETER_GROUP_VAL(x) = x
62 #define PARAMETER_GROUP_PREFIX GRASSROOTS_SERVICE_API
63 #define PARAMETER_GROUP_VAL(x)
The datatype that stores all of the information about a Parameter.
Definition: parameter.h:121
LinkedList * pg_child_groups_p
A list of ParmameterGroupNodes for any child parameter groups.
Definition: parameter_group.h:139
A datatype to tell the system that certain parameters should be grouped together in the client's user...
Definition: parameter_group.h:85
json_t * GetParameterGroupAsJSON(const ParameterGroup *param_group_p, const bool include_params_flag, const bool full_definition_flag, const SchemaVersion *const sv_p)
Get the JSON fragment detailing a given ParameterGroup.
This is a datatype to store the versioning details for the Grassroots JSON schema that is being used.
Definition: schema_version.h:44
bool AddParameterToParameterGroup(ParameterGroup *parent_group_p, Parameter *param_p)
Add a Parameter to a ParameterGroup.
void FreeParameterGroupNode(ListItem *node_p)
Free a given ParameterGroupNode.
ParameterGroup * CreateAndAddParameterGroupChild(ParameterGroup *parent_group_p, const char *name_s, const bool repeatable_flag, const bool add_params_flag)
Create and add a ParameterGroup as a child to another ParameterGroup.
void FreeParameterGroup(ParameterGroup *param_group_p)
Free a given ParameterGroup.
bool pg_full_display_flag
Should this ParameterGroup have a full display e.g.
Definition: parameter_group.h:98
bool ReplaceParameterInParameterGroup(ParameterGroup *params_p, Parameter *old_param_p, Parameter *new_param_p)
Replace a Parameter in a ParameterGroup.
#define GRASSROOTS_SERVICE_API
Definition: grassroots_service_library.h:49
bool AddRepeatableParameterGroupLabelParam(ParameterGroup *group_p, Parameter *param_p)
Add a Parameter to those used for labelling entries in a repeated ParameterGroup.
ParameterNode * GetParameterNodeFromParameterGroupByName(const ParameterGroup *const group_p, const char *const name_s)
Get the ParameterNode for a Parameter with a given name from a ParameterGroup.
LinkedList * pg_repeatable_label_params_p
If the ParameterGroup is repeatable, use these named parameters as the label in the list of the param...
Definition: parameter_group.h:120
const struct ServiceData * pg_service_data_p
The ServiceData for the Service that has created this ParametetrGroup.
Definition: parameter_group.h:145
ParameterGroup * AllocateParameterGroup(const char *name_s, const bool repeatable_flag, const struct ServiceData *service_data_p)
Allocate a ParameterGroup.
ParameterGroupNode * AllocateParameterGroupNode(ParameterGroup *group_p)
Allocate a ParameterGroupNode that will take ownership of a given ParameterGroup.
bool pg_repeatable_flag
Can the parameters in this group be repeated, analogous to a row in a table, false if not.
Definition: parameter_group.h:112
LinkedList * pg_params_p
A list of ParameterNodes for the parameters in this group.
Definition: parameter_group.h:132
ParameterGroup * pgn_param_group_p
Pointer to the associated ParameterGroup.
Definition: parameter_group.h:163
bool pg_visible_flag
Should this ParameterGroup initially be visible?
Definition: parameter_group.h:91
bool CloneParameters(const ParameterGroup *const src_group_p, ParameterGroup *dest_group_p)
Clone all of the Parameters from one ParameterGroup to another.
A doubly-linked list that can be traversed in either direction.
Definition: linked_list.h:56
char * pg_name_s
The name of the ParameterGroup.
Definition: parameter_group.h:88
A datatype for storing a ParameterGroup on a LinkedList.
Definition: parameter_group.h:157
uint32 pg_current_repeatable_group_index
If the parameters can be repeated, this is the current index e.g.
Definition: parameter_group.h:126
A datatype for storing Parameters in a LinkedList.
Definition: parameter.h:219
ParameterGroup * CreateAndAddParameterGroupToParameterSet(const char *name_s, const bool repeatable_flag, const struct ServiceData *service_data_p, struct ParameterSet *param_set_p)
Create a ParameterGroup and add it to a given ParameterSet.
A datatype for holding the configuration data for a Service.
Definition: service.h:126
Parameter * GetParameterFromParameterGroupByName(const ParameterGroup *const group_p, const char *const name_s)
Get the Parameter with a given name from a ParameterGroup.
bool AddParameterGroupAsJSON(ParameterGroup *param_group_p, json_t *groups_array_p, const SchemaVersion *const sv_p)
Add the JSON fragment detailing a given ParameterGroup to a given JSON array.
A set of Parameters along with an optional name and description.
Definition: parameter_set.h:46
char * GetRepeatableParameterGroupName(ParameterGroup *const group_p)
Get the name to use for a child of a repeatable ParameterGroup.
bool RemoveParameterGroupChild(ParameterGroup *parent_group_p, ParameterGroup *child_group_p)
Remove a ParameterGroup child from another ParameterGroup.
bool pg_vertical_layout_flag
Should the ParameterGroup layout its child parameters horizontally or vertically?
Definition: parameter_group.h:105
bool AddParameterGroupChild(ParameterGroup *parent_group_p, ParameterGroup *child_group_p)
Add a ParameterGroup as a child to another ParameterGroup.
ListItem pgn_node
The base list node.
Definition: parameter_group.h:160
A doubly-linked node that points to its predecessor and successor.
Definition: linked_list.h:43
char * GetRepeatableParameterGroupRegularExpression(const ParameterGroup *const group_p)
Get the string to use for matching ParameterGroups as children of a repeatable ParameterGroup.