Main Page | Modules | Data Structures | File List | Data Fields

/extra/work/state-dev/src/sos/sos_nodes.h

00001 /* ----------------------------------------------------------------------------
00002  * $Id: sos_nodes.h,v 1.13 2004/01/26 21:25:41 jlewalle Exp $
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

Generated on Wed Apr 28 09:38:33 2004 for State by doxygen 1.3.5