|
DTNMA Reference Tools v2.1.0 - 7.g389b8d8
Delay-Tolerant Networking Management Architecture (DTNMA) Tool Suite
|
This file contains algorithmic functions to operate on ARIs recursively. More...
#include "base.h"
Include dependency graph for algo.h:
This graph shows which files directly or indirectly include this file: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.