DTNMA Reference Tools v2.0.0 - 7.g88e232c
Delay-Tolerant Networking Management Architecture (DTNMA) Tool Suite
|
This file contains algorithmic functions to operate on ARIs recursively. More...
#include "base.h"
Data Structures | |
struct | cace_ari_visit_ctx_t |
Context used for cace_ari_visitor_t functions. More... | |
struct | cace_ari_visitor_t |
Function pointers to implement the cace_ari_visit() behavior. More... | |
struct | cace_ari_translate_ctx_t |
Context used for cace_ari_translator_t functions. More... | |
struct | cace_ari_translator_t |
Function pointers to implement the cace_ari_translate() behavior. More... | |
Macros | |
#define | M_OPL_cace_ari_t() |
Default OPLIST for cace_ari_t. | |
Functions | |
int | cace_ari_visit (cace_ari_t *ari, const cace_ari_visitor_t *visitor, void *user_data) |
Visit an ARI recursively. | |
int | cace_ari_translate (cace_ari_t *out, const cace_ari_t *in, const cace_ari_translator_t *translator, void *user_data) |
Translate from an input ARI into an output of the same structure. | |
size_t | cace_ari_hash (const cace_ari_t *ari) |
Interface for M*LIB HASH operation. | |
int | cace_ari_cmp (const cace_ari_t *left, const cace_ari_t *right) |
Compare two ARIs for ordering. | |
bool | cace_ari_equal (const cace_ari_t *left, const cace_ari_t *right) |
Determine if two ARIs have identical value. | |
This file contains algorithmic functions to operate on ARIs recursively.
#define M_OPL_cace_ari_t | ( | ) |
Default OPLIST for cace_ari_t.
int cace_ari_cmp | ( | const cace_ari_t * | left, |
const cace_ari_t * | right | ||
) |
Compare two ARIs for ordering.
left | One value to compare. |
right | Other value to compare. |
References cace_ari_lit_t::ari_type, cace_ari_prim_val_u::as_ac, cace_ari_prim_val_u::as_am, cace_ari_prim_val_u::as_bool, cace_ari_prim_val_u::as_data, cace_ari_prim_val_u::as_execset, cace_ari_prim_val_u::as_float64, cace_ari_prim_val_u::as_int64, cace_ari_t::as_lit, cace_ari_t::as_ref, cace_ari_prim_val_u::as_rptset, cace_ari_prim_val_u::as_tbl, cace_ari_prim_val_u::as_timespec, cace_ari_prim_val_u::as_uint64, CACE_ARI_PRIM_BOOL, CACE_ARI_PRIM_BSTR, CACE_ARI_PRIM_FLOAT64, CACE_ARI_PRIM_INT64, CACE_ARI_PRIM_NULL, CACE_ARI_PRIM_OTHER, CACE_ARI_PRIM_TIMESPEC, CACE_ARI_PRIM_TSTR, CACE_ARI_PRIM_UINT64, CACE_ARI_PRIM_UNDEFINED, cace_data_cmp(), CACE_LOG_ERR, CHKRET, cace_ari_lit_t::has_ari_type, cace_ari_t::is_ref, cace_ari_ref_t::objpath, cace_ari_ref_t::params, cace_ari_lit_t::prim_type, and cace_ari_lit_t::value.
bool cace_ari_equal | ( | const cace_ari_t * | left, |
const cace_ari_t * | right | ||
) |
Determine if two ARIs have identical value.
left | One value to compare. |
right | Other value to compare. |
References cace_ari_lit_t::ari_type, cace_ari_prim_val_u::as_ac, cace_ari_prim_val_u::as_am, cace_ari_prim_val_u::as_bool, cace_ari_prim_val_u::as_data, cace_ari_prim_val_u::as_execset, cace_ari_prim_val_u::as_float64, cace_ari_prim_val_u::as_int64, cace_ari_t::as_lit, cace_ari_t::as_ref, cace_ari_prim_val_u::as_rptset, cace_ari_prim_val_u::as_tbl, cace_ari_prim_val_u::as_timespec, cace_ari_prim_val_u::as_uint64, cace_ari_deinit(), CACE_ARI_INIT_UNDEFINED, CACE_ARI_PRIM_BOOL, CACE_ARI_PRIM_BSTR, CACE_ARI_PRIM_FLOAT64, CACE_ARI_PRIM_INT64, CACE_ARI_PRIM_NULL, CACE_ARI_PRIM_OTHER, CACE_ARI_PRIM_TIMESPEC, CACE_ARI_PRIM_TSTR, CACE_ARI_PRIM_UINT64, CACE_ARI_PRIM_UNDEFINED, cace_data_equal(), CACE_LOG_ERR, CHKFALSE, cace_ari_lit_t::has_ari_type, cace_ari_t::is_ref, cace_ari_ref_t::objpath, cace_ari_ref_t::params, cace_ari_lit_t::prim_type, and cace_ari_lit_t::value.
size_t cace_ari_hash | ( | const cace_ari_t * | ari | ) |
Interface for M*LIB HASH
operation.
This uses the cace_ari_visit() internally to walk an ARI tree.
[in] | ari | The object to hash, which contains nested state. |
References CHKRET, and cace_ari_visitor_t::visit_objpath.
int cace_ari_translate | ( | cace_ari_t * | out, |
const cace_ari_t * | in, | ||
const cace_ari_translator_t * | translator, | ||
void * | user_data | ||
) |
Translate from an input ARI into an output of the same structure.
out
value is already initialized. [out] | out | The result of translation. |
[in] | in | The value to translate. |
[in] | translator | The translator descriptor. |
[in] | user_data | Data passed to the cace_ari_translator_t functions. |
References CHKERR1, and cace_ari_translate_ctx_t::parent.
int cace_ari_visit | ( | cace_ari_t * | ari, |
const cace_ari_visitor_t * | visitor, | ||
void * | user_data | ||
) |
Visit an ARI recursively.
[in] | ari | The value to visit. |
[in] | visitor | The visitor descriptor. |
[in] | user_data | Data passed to the cace_ari_visitor_t functions. |
References CHKERR1, and cace_ari_visit_ctx_t::parent.