00001
00002
00003
00004
00005 #if !defined(_INCLUDED_SOS_DATA_H_HEADER__)
00006 #define _INCLUDED_SOS_DATA_H_HEADER__
00007
00014 SUL_PEER_DECLARE(values_integers);
00015 SUL_PEER_DECLARE(values_strings);
00016 SUL_PEER_DECLARE(values_reals);
00017 SUL_PEER_DECLARE(values_booleans);
00018
00022 typedef struct sos_data_value_t
00023 {
00025 sul_key_t identifier;
00026 sul_key_t package_id;
00027 sul_key_t series_id;
00028 union {
00029 char *s;
00030 apr_int32_t i;
00031 double f;
00032 sul_boolean_t b;
00033 } val;
00034 sos_package_t *pkg;
00035 sos_series_t *series;
00036 } sos_data_value_t;
00037
00047 SOS_DECLARE(sul_error_t *)
00048 sos_data_value_create(sos_data_value_t **value, sos_package_t *pkg,
00049 sos_series_t *series, apr_pool_t *pool);
00050
00062 SOS_DECLARE(sul_error_t *)
00063 sos_data_value_get_unique(sos_data_value_t **value, sos_package_t *pkg,
00064 sos_series_t *series, sos_fs_txn_t *txn,
00065 apr_pool_t *pool);
00066
00076 SOS_DECLARE(sul_error_t *)
00077 sos_data_value_save(sos_data_value_t *value, sos_fs_txn_t *txn,
00078 apr_pool_t *pool);
00079
00089 SOS_DECLARE(sul_error_t *)
00090 sos_data_value_get_series(sos_data_value_t **value, sos_series_t *series,
00091 sos_fs_txn_t *txn, apr_pool_t *pool);
00092
00103 SOS_DECLARE(sul_error_t *)
00104 sos_data_path_resolve_value(sos_series_t **series, const char *path,
00105 sos_data_type_t *type, sos_fs_txn_t *txn,
00106 apr_pool_t *pool);
00107
00110 #endif