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.
threaded_paired_service.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 
27 #ifndef SERVER_SRC_SERVICES_LIB_INCLUDE_THREADED_PAIRED_SERVICE_H_
28 #define SERVER_SRC_SERVICES_LIB_INCLUDE_THREADED_PAIRED_SERVICE_H_
29 
30 #include "paired_service.h"
31 #include "parameter_set.h"
32 #include "providers_state_table.h"
34 #include "linked_list.h"
35 #include "grasssroots_server.h"
36 
37 
38 #ifdef __cplusplus
39 extern "C"
40 {
41 #endif
42 
43 
51 typedef struct RemoteServiceData
52 {
54  const char * const rsd_service_name_s;
55 
58 
61 
64 
67 
69 
70 
77 typedef struct PThreadNode
78 {
81 
83  pthread_t *ptn_thread_p;
84 } PThreadNode;
85 
86 
87 
88 #ifdef __cplusplus
89 }
90 #endif
91 
92 
93 #endif /* SERVER_SRC_SERVICES_LIB_INCLUDE_THREADED_PAIRED_SERVICE_H_ */
RemoteServiceData::rsd_providers_p
ProvidersStateTable * rsd_providers_p
The details of all available ExternalServers.
Definition: threaded_paired_service.h:63
RemoteServiceData::rsd_paired_service_p
PairedService * rsd_paired_service_p
The PairedService that will be ran.
Definition: threaded_paired_service.h:60
grassroots_service_library.h
parameter_set.h
RemoteServiceData
A datatype to facilitate running PairedServices in parallel rather than sequentially which leads to l...
Definition: threaded_paired_service.h:51
providers_state_table.h
paired_service.h
RemoteServiceData::rsd_params_p
ParameterSet * rsd_params_p
The ParameterSet that will be used to run the PairedService.
Definition: threaded_paired_service.h:57
RemoteServiceData::rsd_grassroots_p
GrassrootsServer * rsd_grassroots_p
This Grassroots server.
Definition: threaded_paired_service.h:66
PThreadNode::ptn_node
ListItem ptn_node
The base ListItem.
Definition: threaded_paired_service.h:80
ProvidersStateTable
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
PairedService
A datatype for describing a remote Service that can be used in conjunction with a local Service.
Definition: paired_service.h:59
GrassrootsServer
Definition: grassroots_server.h:45
PThreadNode::ptn_thread_p
pthread_t * ptn_thread_p
Pointer to the pthread_t to store.
Definition: threaded_paired_service.h:83
linked_list.h
A doubly-linked list.
PThreadNode
Datatype for storing a pthread_t on a LinkedList.
Definition: threaded_paired_service.h:77
ParameterSet
A set of Parameters along with an optional name and description.
Definition: parameter_set.h:46
RemoteServiceData::rsd_service_name_s
const char *const rsd_service_name_s
The name of the local Service.
Definition: threaded_paired_service.h:54
ListItem
A doubly-linked node that points to its predecessor and successor.
Definition: linked_list.h:43