00001
00002
00003
00004
00005 #if !defined(_INCLUDED_SOS_NODES_H_HEADER__)
00006 #define _INCLUDED_SOS_NODES_H_HEADER__
00007
00014 SUL_PEER_DECLARE(node_groups);
00015 SUL_PEER_DECLARE(nodes);
00016
00022 typedef struct sos_node_t
00023 {
00024 sul_key_t identifier;
00025 sul_key_t location_id;
00026 char *name;
00027 char *ip;
00028 sul_boolean_t alive;
00029 sul_boolean_t suspended;
00030 apr_time_t ping_time;
00031 char *description;
00032 } sos_node_t;
00033
00034
00040 typedef struct sos_node_group_t
00041 {
00042 sul_key_t identifier;
00043 char *name;
00044 } sos_node_group_t;
00045
00052 SOS_DECLARE(sos_node_group_t *)
00053 sos_node_group_create(const char *name, apr_pool_t *pool);
00054
00062 SOS_DECLARE(sul_error_t *)
00063 sos_node_group_get_all(apr_array_header_t **array, sos_fs_txn_t *txn,
00064 apr_pool_t *pool);
00065
00075 SOS_DECLARE(sul_error_t *)
00076 sos_node_group_get_node(apr_array_header_t **array, sos_node_t *node,
00077 sos_fs_txn_t *txn, apr_pool_t *pool);
00078
00088 SOS_DECLARE(sul_error_t *)
00089 sos_node_group_get_name(sos_node_group_t **group, const char *name,
00090 sos_fs_txn_t *txn, apr_pool_t *pool);
00091
00092
00102 SOS_DECLARE(sul_error_t *)
00103 sos_node_group_get_key(sos_node_group_t **group, sul_key_t identifier,
00104 sos_fs_txn_t *txn, apr_pool_t *pool);
00105
00114 SOS_DECLARE(sul_error_t *)
00115 sos_node_group_save(sos_node_group_t *group, sos_fs_txn_t *txn,
00116 apr_pool_t *pool);
00117
00126 SOS_DECLARE(sul_key_t)
00127 sos_node_group_find(const char *name, sos_fs_txn_t *txn, apr_pool_t *pool);
00128
00138 SOS_DECLARE(sul_error_t *)
00139 sos_node_group_get_unique(sos_node_group_t **group, const char *name,
00140 sos_fs_txn_t *txn, apr_pool_t *pool);
00141
00142 SOS_DECLARE(sul_boolean_t)
00143 sos_node_group_has_group(sos_node_group_t *group, sos_node_group_t *memb,
00144 sos_fs_txn_t *txn, apr_pool_t *pool);
00145
00146 SOS_DECLARE(sul_error_t *)
00147 sos_node_group_groups_remove(sos_node_group_t *group, sos_node_group_t *memb,
00148 sos_fs_txn_t *txn, apr_pool_t *pool);
00149
00150 SOS_DECLARE(sul_error_t *)
00151 sos_node_group_groups_add(sos_node_group_t *group, sos_node_group_t *memb,
00152 sos_fs_txn_t *txn, apr_pool_t *pool);
00153
00154 SOS_DECLARE(sul_boolean_t)
00155 sos_node_group_has_node(sos_node_group_t *group, sos_node_t *memb,
00156 sos_fs_txn_t *txn, apr_pool_t *pool);
00157
00158 SOS_DECLARE(sul_error_t *)
00159 sos_node_group_nodes_remove(sos_node_group_t *group, sos_node_t *memb,
00160 sos_fs_txn_t *txn, apr_pool_t *pool);
00161
00162 SOS_DECLARE(sul_error_t *)
00163 sos_node_group_nodes_add(sos_node_group_t *group, sos_node_t *memb,
00164 sos_fs_txn_t *txn, apr_pool_t *pool);
00165
00173 SOS_DECLARE(sos_node_t *)
00174 sos_node_create(const char *ip, apr_pool_t *pool);
00175
00184 SOS_DECLARE(sul_error_t *)
00185 sos_node_get_all(apr_array_header_t **array, sos_fs_txn_t *txn,
00186 apr_pool_t *pool);
00187
00195 SOS_DECLARE(sul_error_t *)
00196 sos_node_get_local(sos_node_t **node, sos_fs_txn_t *txn, apr_pool_t *pool);
00197
00207 SOS_DECLARE(sul_error_t *)
00208 sos_node_get_key(sos_node_t **node, sul_key_t identifier,
00209 sos_fs_txn_t *txn, apr_pool_t *pool);
00210
00220 SOS_DECLARE(sul_error_t *)
00221 sos_node_get_ip(sos_node_t **node, const char *ip, sos_fs_txn_t *txn,
00222 apr_pool_t *pool);
00223
00233 SOS_DECLARE(sul_error_t *)
00234 sos_node_get_ip_or_name(sos_node_t **node, const char *identity, sos_fs_txn_t *txn,
00235 apr_pool_t *pool);
00236
00246 SOS_DECLARE(sul_error_t *)
00247 sos_node_get_in_group(apr_array_header_t **array, const char *name,
00248 sos_fs_txn_t *txn, apr_pool_t *pool);
00249
00258 SOS_DECLARE(sul_key_t)
00259 sos_node_find(const char *ip, sos_fs_txn_t *txn, apr_pool_t *pool);
00260
00269 SOS_DECLARE(sul_error_t *)
00270 sos_node_set_pinged(sos_node_t *node, sos_fs_txn_t *txn, apr_pool_t *pool);
00271
00280 SOS_DECLARE(sul_error_t *)
00281 sos_node_save(sos_node_t *node, sos_fs_txn_t *txn, apr_pool_t *pool);
00282
00292 SOS_DECLARE(sul_error_t *)
00293 sos_node_get_unique(sos_node_t **node, const char *ip, sos_fs_txn_t *txn,
00294 apr_pool_t *pool);
00295
00305 SOS_DECLARE(sul_error_t *)
00306 sos_node_group_nodes_add(sos_node_group_t *group, sos_node_t *node,
00307 sos_fs_txn_t *txn, apr_pool_t *pool);
00308
00318 SOS_DECLARE(sul_error_t *)
00319 sos_node_group_nodes_remove(sos_node_group_t *group, sos_node_t *node,
00320 sos_fs_txn_t *txn, apr_pool_t *pool);
00321
00324 #endif