00001
00002
00003
00004
00005 #if !defined(_INCLUDED_SOS_VITALS_H_HEADER__)
00006 #define _INCLUDED_SOS_VITALS_H_HEADER__
00007
00014 SUL_PEER_DECLARE(vital_types);
00015
00019 typedef struct sos_vital_type_t
00020 {
00021 sul_key_t identifier;
00022 char *name;
00023 sul_boolean_t ack;
00024 } sos_vital_type_t;
00025
00034 SOS_DECLARE(sul_error_t *)
00035 sos_vital_type_get_all(apr_array_header_t **array, sos_fs_txn_t *txn,
00036 apr_pool_t *pool);
00037
00047 SOS_DECLARE(sul_error_t *)
00048 sos_vital_type_get_name(sos_vital_type_t **type, const char *name,
00049 sos_fs_txn_t *txn, apr_pool_t *pool);
00050
00060 SOS_DECLARE(sul_error_t *)
00061 sos_vital_type_get_key(sos_vital_type_t **type, sul_key_t identifier,
00062 sos_fs_txn_t *txn, apr_pool_t *pool);
00063
00073 SOS_DECLARE(sul_error_t *)
00074 sos_vital_type_get_key(sos_vital_type_t **type, sul_key_t identifier,
00075 sos_fs_txn_t *txn, apr_pool_t *pool);
00076
00077 SUL_PEER_DECLARE(vitals);
00078
00082 typedef struct sos_vital_t
00083 {
00084 sul_key_t identifier;
00085 char *name;
00086 sul_key_t node_id;
00087 sul_key_t type_id;
00088 sul_key_t status_id;
00089 sos_vital_type_t *type;
00090 sos_node_t *node;
00091 sos_status_t *status;
00092 char *note;
00093 char *description;
00094 } sos_vital_t;
00095
00106 SOS_DECLARE(sul_error_t *)
00107 sos_vital_get(sos_vital_t **vital, const char *node, const char *name,
00108 sos_fs_txn_t *txn, apr_pool_t *pool);
00109
00118 SOS_DECLARE(sul_error_t *)
00119 sos_vital_get_all(apr_array_header_t **array, sos_fs_txn_t *txn,
00120 apr_pool_t *pool);
00121
00131 SOS_DECLARE(sul_error_t *)
00132 sos_vital_get_group(apr_array_header_t **vitals, sul_key_t group_id,
00133 sos_fs_txn_t *txn, apr_pool_t *pool);
00134
00144 SOS_DECLARE(sul_error_t *)
00145 sos_vital_get_key(sos_vital_t **vital, sul_key_t identifier,
00146 sos_fs_txn_t *txn, apr_pool_t *pool);
00147
00157 SOS_DECLARE(sul_error_t *)
00158 sos_vital_get_node(apr_array_header_t **array, sul_key_t node_id,
00159 sos_fs_txn_t *txn, apr_pool_t *pool);
00160
00170 SOS_DECLARE(sul_error_t *)
00171 sos_vital_get_unhealthy(apr_array_header_t **array, apr_array_header_t *groups,
00172 sos_fs_txn_t *txn, apr_pool_t *pool);
00173
00186 SOS_DECLARE(sul_error_t *)
00187 sos_vital_get_unique(sos_vital_t **vital, const char *node,
00188 const char *name, const char *type,
00189 const char *status, sos_fs_txn_t *txn,
00190 apr_pool_t *pool);
00191
00200 SOS_DECLARE(sul_error_t *)
00201 sos_vital_save(sos_vital_t *vital, sos_fs_txn_t *txn, apr_pool_t *pool);
00202
00213 SOS_DECLARE(sul_error_t *)
00214 sos_vital_touch(sos_vital_t *vital, sul_boolean_t changed,
00215 const char *note, sos_fs_txn_t *txn, apr_pool_t *pool);
00216
00217 SOS_DECLARE(sul_error_t *)
00218 sos_vitals_get_critical(apr_array_header_t **vitals, sos_fs_txn_t *txn,
00219 apr_pool_t *pool);
00220
00223 #endif