XROAD
xroad_system.h
Go to the documentation of this file.
1 
6 #pragma once
7 
8 #include "xroad_node_fwd.h"
9 #include "xroad_node_types.h"
11 #include <common/xroad_string.h>
13 #include <stdint.h>
14 #include <stdbool.h>
15 #include <signal.h>
16 
17 #ifdef __cplusplus
18 extern "C"
19 {
20 #endif
21 
22 typedef struct xroad_system_cursor_s xroad_system_cursor_t;
23 
27 typedef enum
28 {
36 
40 typedef enum
41 {
50 
55 {
56  uint32_t error_cnt;
57  uint32_t warn_cnt;
58  uint64_t msg_in_cnt;
59  uint64_t msg_out_cnt;
60  time_t start_ts;
61  time_t curr_ts;
62 };
63 
67 typedef enum
68 {
69  xroad_link_type_posix_queue = 1,
70  xroad_link_type_shm_queue = 2
72 
76 typedef struct
77 {
78  xroad_link_name_t name;
79  int32_t msgsize_max;
80  int32_t max_msg;
82 
86 typedef struct
87 {
88  xroad_link_name_t name;
89  int32_t shm_size;
91 
95 typedef enum
96 {
97  xroad_system_role_primary = 1,
98  xroad_system_role_backup = 2
100 
104 typedef struct
105 {
107  bool flush;
108  union
109  {
110  xroad_posix_queue_params_t posix_queue_params;
111  xroad_shm_queue_params_t shm_queue_params;
112  };
114 
118 typedef struct
119 {
120  uint16_t major_ver;
121  uint16_t minor_ver;
122  xroad_git_hash_t git_hash;
123  bool is_debug;
124  bool unused;
125  xroad_arch_t arch;
127 
131 typedef struct
132 {
133  xroad_node_id_t id;
134  xroad_node_name_t name;
135  xroad_group_name_t group;
136  pid_t pid;
139  uint32_t flags;
142  xroad_config_name_t config;
143  xroad_config_name_t schema;
145 
149 typedef struct
150 {
151  uint16_t major_ver;
152  bool lock;
155  xroad_system_name_t name;
156  xroad_path_t root_dir;
157  xroad_path_t home_dir;
160 
166 xroad_errno_t xroad_system_init(bool out_of_system);
167 
173 
180 
187 
194 
201 
208 
215 
221 xroad_xml_doc_t* xroad_system_read_config(const xroad_node_data_t* ndata);
222 
223 
228 xroad_system_cursor_t* xroad_system_create_cursor();
229 
234 void xroad_system_destroy_cursor(xroad_system_cursor_t* cursor);
235 
236 #define __xroad_system_cursor_dtor__ __dtor__(xroad_system_cursor_destructor)
237 void xroad_system_cursor_destructor(xroad_system_cursor_t** cursor);
238 
244 xroad_node_data_t* xroad_system_cursor_get_first(xroad_system_cursor_t* cursor);
245 
251 xroad_node_data_t* xroad_system_cursor_get_next(xroad_system_cursor_t* cursor);
252 
258 xroad_node_data_t* xroad_system_cursor_get_last(xroad_system_cursor_t* cursor);
259 
265 xroad_node_data_t* xroad_system_cursor_get_prev(xroad_system_cursor_t* cursor);
266 
267 #ifdef __cplusplus
268  }
269 #endif
Definition: xroad_system.h:132
xroad_node_link_t link
link data
Definition: xroad_system.h:140
xroad_version_t version
version
Definition: xroad_system.h:141
xroad_config_name_t schema
node default schema file name
Definition: xroad_system.h:143
xroad_node_id_t id
index of node in system
Definition: xroad_system.h:133
xroad_node_name_t name
name of node
Definition: xroad_system.h:134
uint32_t flags
node flags (see xroad_node_flag_t)
Definition: xroad_system.h:139
xroad_config_name_t config
node default config file name
Definition: xroad_system.h:142
xroad_group_name_t group
group of node
Definition: xroad_system.h:135
xroad_node_statistic_t statistic
node statistic
Definition: xroad_system.h:137
xroad_node_status_t status
node status
Definition: xroad_system.h:138
pid_t pid
pid of process
Definition: xroad_system.h:136
Definition: xroad_system.h:55
uint64_t msg_in_cnt
count of incoming messages
Definition: xroad_system.h:58
uint64_t msg_out_cnt
count of outgoing messages
Definition: xroad_system.h:59
uint32_t warn_cnt
count of warnings
Definition: xroad_system.h:57
time_t curr_ts
node current timestamp
Definition: xroad_system.h:61
time_t start_ts
node start timestamp
Definition: xroad_system.h:60
uint32_t error_cnt
count of errors
Definition: xroad_system.h:56
Definition: xroad_system.h:77
xroad_link_name_t name
queue name
Definition: xroad_system.h:78
int32_t msgsize_max
maximum message size
Definition: xroad_system.h:79
int32_t max_msg
maximum count of messages
Definition: xroad_system.h:80
Definition: xroad_system.h:87
int32_t shm_size
shared memory segment size
Definition: xroad_system.h:89
xroad_link_name_t name
shm name
Definition: xroad_system.h:88
Definition: xroad_string.h:29
Definition: xroad_system.h:150
xroad_system_role_t role
system role (primary, backup). given from XROAD_SYSTEM_ROLE
Definition: xroad_system.h:154
bool out_of_system
system created of of system (not shared)
Definition: xroad_system.h:153
xroad_system_name_t name
given from XROAD_SYSTEM
Definition: xroad_system.h:155
xroad_path_t home_dir
given from XROAD_ROOT_DIR/data
Definition: xroad_system.h:157
xroad_path_t root_dir
given from XROAD_ROOT_DIR
Definition: xroad_system.h:156
bool lock
locks call xroad_system_init
Definition: xroad_system.h:152
uint16_t major_ver
major version
Definition: xroad_system.h:151
Definition: xroad_system.h:119
uint16_t minor_ver
minor version
Definition: xroad_system.h:121
uint16_t major_ver
major version
Definition: xroad_system.h:120
bool is_debug
debug build
Definition: xroad_system.h:123
xroad_arch_t arch
CPU architecture.
Definition: xroad_system.h:125
xroad_git_hash_t git_hash
git_hash
Definition: xroad_system.h:122
struct xroad_hash_s xroad_hash_t
see common/xroad_hash.h for details
Definition: xroad_common_fwd.h:14
#define XROAD_NODE_COUNT_MAX
Definition: xroad_node_types.h:25
xroad_node_data_t * xroad_system_get_by_id(xroad_node_id_t id)
xroad_node_data_t * xroad_system_cursor_get_prev(xroad_system_cursor_t *cursor)
xroad_node_data_t * xroad_system_cursor_get_last(xroad_system_cursor_t *cursor)
xroad_str_t xroad_system_role_to_str(xroad_system_role_t role)
xroad_system_role_t
Definition: xroad_system.h:96
xroad_system_t * xroad_system_get()
xroad_errno_t xroad_system_init(bool out_of_system)
xroad_node_flag_t
Definition: xroad_system.h:41
@ xroad_node_flag_alarm_disabled
node alarms enabled/disabled
Definition: xroad_system.h:47
@ xroad_node_flag_memory_locked
node is locked in memory
Definition: xroad_system.h:44
@ xroad_node_flag_hidden
node is hidden, i.e. not shown by view or WebUI
Definition: xroad_system.h:43
@ xroad_node_flag_allow_clone
node allowd to clone/delete/rename
Definition: xroad_system.h:48
@ xroad_node_flag_stand_alone
node is a standalone, i.e. not controlled by init process
Definition: xroad_system.h:42
@ xroad_node_flag_sleep_backup
node is sleeping on backup system
Definition: xroad_system.h:46
@ xroad_node_flag_sleep_primary
node is sleeping on primary system
Definition: xroad_system.h:45
xroad_link_type_t
Definition: xroad_system.h:68
xroad_node_status_t
Definition: xroad_system.h:28
@ xroad_node_status_deleted
node was deleted
Definition: xroad_system.h:34
@ xroad_node_status_sleep
node is sleeping
Definition: xroad_system.h:33
@ xroad_node_status_active
node is active and works
Definition: xroad_system.h:29
@ xroad_node_status_inactive
node is working, but inactive
Definition: xroad_system.h:32
@ xroad_node_status_offline
node started, but is not active
Definition: xroad_system.h:30
@ xroad_node_status_dead
node is DEAD, process stopped
Definition: xroad_system.h:31
xroad_node_data_t * xroad_system_cursor_get_first(xroad_system_cursor_t *cursor)
xroad_node_data_t * xroad_system_get_by_name(xroad_str_t name)
void xroad_system_destroy_cursor(xroad_system_cursor_t *cursor)
xroad_node_data_t * xroad_system_cursor_get_next(xroad_system_cursor_t *cursor)
xroad_str_t xroad_node_status_to_str(xroad_node_status_t status)
xroad_hash_t * xroad_system_get_variables(const xroad_node_data_t *ndata)
xroad_node_data_t * xroad_system_get_by_pid(pid_t pid)
xroad_xml_doc_t * xroad_system_read_config(const xroad_node_data_t *ndata)
xroad_system_cursor_t * xroad_system_create_cursor()