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.
remote_parameter_details.h
Go to the documentation of this file.
1 /*
2 ** Copyright 2014-2016 The Earlham Institute
3 **
4 ** Licensed under the Apache License, Version 2.0 (the "License");
5 ** you may not use this file except in compliance with the License.
6 ** You may obtain a copy of the License at
7 **
8 ** http://www.apache.org/licenses/LICENSE-2.0
9 **
10 ** Unless required by applicable law or agreed to in writing, software
11 ** distributed under the License is distributed on an "AS IS" BASIS,
12 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 ** See the License for the specific language governing permissions and
14 ** limitations under the License.
15 */
16 
22 /*
23  * remote_parameter_details.h
24  *
25  * Created on: 6 Feb 2016
26  * Author: billy
27  */
28 
29 #ifndef REMOTE_PARAMETER_DETAILS_H_
30 #define REMOTE_PARAMETER_DETAILS_H_
31 
32 
34 #include "linked_list.h"
35 #include "jansson.h"
36 
43 typedef struct RemoteParameterDetails
44 {
51 
57  char *rpd_name_s;
58 
60 
61 
70 {
73 
77 
78 
79 #ifdef __cplusplus
80 extern "C" {
81 #endif
82 
83 
92 GRASSROOTS_SERVICE_API RemoteParameterDetails *AllocateRemoteParameterDetails (const char * const uri_s, const char * const param_s);
93 
94 
102 
103 
112 
113 
122 GRASSROOTS_SERVICE_API RemoteParameterDetailsNode *AllocateRemoteParameterDetailsNodeByParts (const char * const uri_s, const char * const param_s);
123 
124 
132 
133 
143 
144 
154 
155 
156 #ifdef __cplusplus
157 }
158 #endif
159 
160 
161 
162 #endif /* REMOTE_PARAMETER_DETAILS_H_ */
RemoteParameterDetailsNode::AllocateRemoteParameterDetailsNode
RemoteParameterDetailsNode * AllocateRemoteParameterDetailsNode(RemoteParameterDetails *details_p)
Allocate a RemoteParameterDetailsNode.
RemoteParameterDetailsNode::FreeRemoteParameterDetailsNode
void FreeRemoteParameterDetailsNode(ListItem *node_p)
Free a RemoteParameterDetailsNode.
grassroots_service_library.h
GRASSROOTS_SERVICE_API
#define GRASSROOTS_SERVICE_API
Definition: grassroots_service_library.h:49
RemoteParameterDetailsNode::rpdn_node
ListItem rpdn_node
The base node.
Definition: remote_parameter_details.h:72
RemoteParameterDetails::FreeRemoteParameterDetails
void FreeRemoteParameterDetails(RemoteParameterDetails *details_p)
Free a RemoteParameterDetails.
RemoteParameterDetails::rpd_server_uri_s
char * rpd_server_uri_s
If the Parameter belongs to a local Service, this will be NULL.
Definition: remote_parameter_details.h:50
RemoteParameterDetails::GetRemoteParameterDetailsAsJSON
json_t * GetRemoteParameterDetailsAsJSON(const RemoteParameterDetails *details_p)
Get the JSON fragment representing a RemoteParameterDetails.
RemoteParameterDetails::AllocateRemoteParameterDetails
RemoteParameterDetails * AllocateRemoteParameterDetails(const char *const uri_s, const char *const param_s)
Allocate a RemoteParameterDetails.
RemoteParameterDetails::rpd_name_s
char * rpd_name_s
If the Parameter belongs to a local Service, this will be NULL.
Definition: remote_parameter_details.h:57
RemoteParameterDetailsNode::rpdn_details_p
RemoteParameterDetails * rpdn_details_p
The RemoteParameterDetails.
Definition: remote_parameter_details.h:75
RemoteParameterDetails::CreateRemoteParameterDetailsFromJSON
RemoteParameterDetails * CreateRemoteParameterDetailsFromJSON(const json_t *json_p)
Create a RemoteParameterDetails from a JSON fragment representation.
linked_list.h
A doubly-linked list.
RemoteParameterDetailsNode::AllocateRemoteParameterDetailsNodeByParts
RemoteParameterDetailsNode * AllocateRemoteParameterDetailsNodeByParts(const char *const uri_s, const char *const param_s)
Allocate a new RemoteParameterDetailsNode and a new RemoteParameterDetails to store in it.
RemoteParameterDetailsNode
A ListItem for storing RemoteParameterDetails on a LinkedList.
Definition: remote_parameter_details.h:69
RemoteParameterDetails
This datatype is used to denote that a Parameter is for use on a PairedService.
Definition: remote_parameter_details.h:43
ListItem
A doubly-linked node that points to its predecessor and successor.
Definition: linked_list.h:43