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

/extra/work/state-dev/src/sul/sul_values.h

00001 /* ----------------------------------------------------------------------------
00002  * $Id: sul_values.h,v 1.7 2004/04/03 20:53:11 jlewalle Exp $
00003  *
00004  * --------------------------------------------------------------------------*/
00005 #if !defined(_INCLUDED_SUL_VALUES_H_HEADER__)
00006 #define _INCLUDED_SUL_VALUES_H_HEADER__
00007 
00015 typedef enum sul_value_type_e
00016 {
00017   SUL_VT_UNKNOWN = 0,
00018   SUL_VT_EMPTY,
00019   SUL_VT_INTEGER,
00020   SUL_VT_REAL,
00021   SUL_VT_STRING,
00022   SUL_VT_BOOLEAN,
00023   SUL_VT_UINTEGER
00024 } sul_value_type_e;
00025 
00030 extern const char *sul_value_type_strings[];
00031 
00038 typedef struct sul_vtree_t sul_vtree_t;
00039 
00044 typedef struct sul_value_t sul_value_t;
00045 typedef struct sul_value_t sul_vnode_t;
00046 
00053 SUL_DECLARE(sul_value_t *)
00054 sul_value_np_get(sul_value_t *tmp);
00055 
00061 SUL_DECLARE(sul_value_t *)
00062 sul_value_ep_get(sul_value_t *tmp);
00063 
00070 SUL_DECLARE(sul_value_t *)
00071 sul_value_pp_get(sul_value_t *tmp);
00072 
00079 SUL_DECLARE(sul_value_t *)
00080 sul_value_cp_get(sul_value_t *tmp);
00081 
00087 SUL_DECLARE(sul_value_type_e )
00088 sul_value_type_get(sul_value_t *tmp);
00089 
00095 #define sul_value_is_string(tmp)  (sul_value_type_get(tmp) == SDV_VT_STRING)
00096 
00102 #define sul_value_is_array(tmp)   (sul_value_type_get(tmp) == SUL_VT_EMPTY && sul_value_cp_get(tmp) != NULL)
00103 
00109 SUL_DECLARE(const char *)
00110 sul_value_key_get(sul_value_t *tmp);
00111 
00117 SUL_DECLARE(const char *)
00118 sul_value_path_get(sul_value_t *tmp);
00119 
00125 SUL_DECLARE(const char *)
00126 sul_value_string_get(sul_value_t *tmp);
00127 
00133 SUL_DECLARE(apr_int32_t)
00134 sul_value_integer_get(sul_value_t *tmp);
00135 
00141 SUL_DECLARE(void)
00142 sul_value_integer_set(sul_value_t *tmp, apr_int32_t value);
00143 
00149 SUL_DECLARE(apr_uint32_t)
00150 sul_value_uinteger_get(sul_value_t *tmp);
00151 
00157 SUL_DECLARE(void)
00158 sul_value_uinteger_set(sul_value_t *tmp, apr_uint32_t value);
00159 
00165 SUL_DECLARE(double)
00166 sul_value_real_get(sul_value_t *tmp);
00167 
00173 SUL_DECLARE(sul_boolean_t)
00174 sul_value_boolean_get(sul_value_t *tmp);
00175 
00183 SUL_DECLARE(sul_error_t *)
00184 sul_vtree_create(sul_vtree_t **tree, apr_pool_t *pool);
00185 
00191 SUL_DECLARE(sul_vnode_t *)
00192 sul_vtree_top_get(sul_vtree_t *tree);
00193 
00201 SUL_DECLARE(sul_vnode_t *)
00202 sul_vnode_allocate(sul_vtree_t *tree, const char *key, 
00203                    sul_value_type_e type, apr_pool_t *pool);
00204 
00211 SUL_DECLARE(sul_error_t *)
00212 sul_vtree_create_path(sul_vtree_t *tree, sul_vnode_t **node, 
00213                       sul_vnode_t **lnode, const char *path, 
00214                       apr_pool_t *pool);
00215 
00222 SUL_DECLARE(void)
00223 sul_value_initialize(sul_value_t *sval, const char *key, sul_value_type_e type,
00224                      apr_pool_t *pool);
00225 
00232 SUL_DECLARE(sul_error_t *)
00233 sul_value_create_blank(sul_value_t **sval, const char *key, 
00234                        sul_value_type_e type, apr_pool_t *pool);
00235 
00242 SUL_DECLARE(sul_error_t *)
00243 sul_value_create_integer(sul_value_t **sval, const char *key, 
00244                          apr_int32_t value, apr_pool_t *pool);
00245 
00252 SUL_DECLARE(sul_error_t *)
00253 sul_value_create_uinteger(sul_value_t **sval, const char *key, 
00254                           apr_uint32_t value, apr_pool_t *pool);
00255 
00262 SUL_DECLARE(sul_error_t *)
00263 sul_value_create_real(sul_value_t **sval, const char *key, 
00264                       apr_int32_t value, apr_pool_t *pool);
00265 
00272 SUL_DECLARE(sul_error_t *)
00273 sul_value_create_string(sul_value_t **sval, const char *key,
00274                         const char *value, apr_pool_t *pool);
00275 
00282 SUL_DECLARE(sul_error_t *)
00283 sul_value_create_boolean(sul_value_t **sval, const char *key, 
00284                          sul_boolean_t value, apr_pool_t *pool);
00285 
00292 SUL_DECLARE(sul_error_t *)
00293 sul_value_children_find(sul_value_t *sval, sul_value_t **found, 
00294                         const char *key);
00295 
00302 SUL_DECLARE(sul_error_t *)
00303 sul_value_lookup(sul_value_t *sval, sul_value_t **found, const char *path,
00304                  apr_pool_t *pool);
00305 
00312 SUL_DECLARE(sul_value_t *)
00313 sul_value_append(sul_value_t *sval, sul_value_t *oval);
00314 
00321 SUL_DECLARE(sul_value_t *)
00322 sul_value_children_append(sul_value_t *sval, sul_value_t *oval);
00323 
00330 SUL_DECLARE(sul_error_t *)
00331 sul_value_printf(sul_value_t *sval, apr_size_t indention, 
00332                  sul_stringbuf_t *stream, apr_pool_t *pool);
00333 
00340 SUL_DECLARE(sul_error_t *)
00341 sul_value_picklev(sul_value_t **rval, sul_value_t *sval, apr_pool_t *pool, 
00342                   const char *spec, va_list var_args);
00343 
00350 SUL_DECLARE(sul_error_t *)
00351 sul_value_pickle(sul_value_t **rval, sul_value_t *sval, apr_pool_t *pool, 
00352                  const char *spec, ...);
00353 
00360 SUL_DECLARE(sul_error_t *)
00361 sul_value_parse_cfg_single(sul_value_t *par, sul_value_t **rval,
00362                            sul_cfg_block_t *cfg, apr_pool_t *pool);
00363 
00370 SUL_DECLARE(sul_error_t *)
00371 sul_value_parse_cfg_multiple(sul_value_t *par, sul_value_t **rval,
00372                              sul_cfg_block_t *cfg, apr_pool_t *pool);
00373 
00380 SUL_DECLARE(sul_error_t *)
00381 sul_value_verify_type(sul_value_t *sval, sul_value_type_e type);
00382 
00389 SUL_DECLARE(sul_error_t *)
00390 sul_value_lookup_boolean(sul_value_t *sval, const char *path, 
00391                          sul_boolean_t *value, apr_pool_t *pool,
00392                          sul_boolean_t errs);
00393 
00400 SUL_DECLARE(sul_error_t *)
00401 sul_value_lookup_string(sul_value_t *sval, const char *path, 
00402                         const char **value, apr_pool_t *pool,
00403                         sul_boolean_t errs);
00404 
00411 SUL_DECLARE(sul_error_t *)
00412 sul_value_lookup_integer(sul_value_t *sval, const char *path, 
00413                          apr_int32_t *value, apr_pool_t *pool,
00414                          sul_boolean_t errs);
00415 
00422 SUL_DECLARE(sul_error_t *)
00423 sul_value_lookup_real(sul_value_t *sval, const char *path, 
00424                       double *value, apr_pool_t *pool,
00425                       sul_boolean_t errs);
00426 
00427 
00434 SUL_DECLARE(sul_error_t *)
00435 sul_value_duplicate(sul_value_t *sval, sul_value_t **rval, 
00436                     apr_pool_t *pool);
00437 
00444 typedef struct sul_viter_t
00445 {
00446   sul_value_t *ptr;
00447   struct sul_viter_t *np;
00448   struct sul_viter_t *ep;
00449 } sul_viter_t;
00450 
00451 #define sul_viter_np(tmp)     ((tmp)->np)
00452 #define sul_viter_ep(tmp)     ((tmp)->ep)
00453 #define sul_viter_value(tmp)  ((tmp)->ptr)
00454 
00461 SUL_DECLARE(sul_error_t *)
00462 sul_value_viter_find(sul_value_t *sval, sul_viter_t **iter, const char *path,
00463                      apr_pool_t *pool);
00464 
00465 #endif

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