|
DTNMA Reference Tools v2.1.0 - 13.gc5c0bac
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. | |
Enumerations | |
| enum | cace_ari_translate_result_t { CACE_ARI_TRANSLATE_FAILURE , CACE_ARI_TRANSLATE_FINAL , CACE_ARI_TRANSLATE_DEFAULT } |
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. | |
| void | cace_ari_get_str (m_string_t out, const cace_ari_t obj, bool append) |
| An M*LIB compatible debug text output function. | |
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_ac_cmp(), cace_ari_am_cmp(), cace_ari_execset_cmp(), cace_ari_objpath_cmp(), cace_ari_params_cmp(), 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_ari_rptset_cmp(), cace_ari_tbl_cmp(), CACE_ARI_TYPE_AC, CACE_ARI_TYPE_AM, CACE_ARI_TYPE_EXECSET, CACE_ARI_TYPE_RPTSET, CACE_ARI_TYPE_TBL, 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.
Referenced by cace_ari_am_cmp(), cace_ari_execset_cmp(), cace_ari_list_cmp(), cace_ari_report_cmp(), cace_ari_rptset_cmp(), cace_ari_tbl_cmp(), and test_ari_cmp().
| 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_amm_numeric_promote_type(), cace_amm_type_convert(), cace_amm_type_get_builtin(), cace_ari_ac_equal(), cace_ari_am_equal(), cace_ari_deinit(), cace_ari_execset_equal(), CACE_ARI_INIT_UNDEFINED, cace_ari_objpath_equal(), cace_ari_params_equal(), 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_ari_rptset_equal(), cace_ari_tbl_equal(), CACE_ARI_TYPE_AC, CACE_ARI_TYPE_AM, CACE_ARI_TYPE_EXECSET, CACE_ARI_TYPE_RPTSET, CACE_ARI_TYPE_TBL, cace_data_equal(), cace_has_numeric_prim_type(), 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, result, and cace_ari_lit_t::value.
Referenced by cace_ari_execset_equal(), cace_ari_report_equal(), cace_ari_rptset_equal(), check_execute(), check_produce(), refda_adm_ietf_dtnma_agent_oper_compare_eq(), refda_adm_ietf_dtnma_agent_oper_compare_ne(), test_ari_equal(), TEST_CASE(), test_refda_adm_ietf_alarms_category_inventory(), test_refda_adm_ietf_alarms_resource_inventory(), test_refda_alarms_compress_all(), test_refda_alarms_mgr_state_warning(), test_refda_alarms_purge_warning(), test_refda_alarms_set_state_no_category(), test_refda_exec_target(), and test_refda_reporting_target().
| void cace_ari_get_str | ( | m_string_t | out, |
| const cace_ari_t | obj, | ||
| bool | append | ||
| ) |
An M*LIB compatible debug text output function.
This encodes to text with default options.
References CACE_ARI_TEXT_ENC_OPTS_DEFAULT, and cace_ari_text_encode().
| 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 cace_ari_hash_visit_lit(), cace_ari_hash_visit_objpath(), cace_ari_visit(), CHKRET, and cace_ari_visitor_t::visit_objpath.
Referenced by test_ari_hash().
| 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 cace_ari_translate_ari(), CHKERR1, and cace_ari_translate_ctx_t::parent.
Referenced by refda_adm_ietf_dtnma_agent_oper_tbl_filter(), refda_alarms_compress(), refda_alarms_mgr_state(), and refda_alarms_purge().
| 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 cace_ari_visit_ari(), CHKERR1, and cace_ari_visit_ctx_t::parent.
Referenced by cace_amm_builtin_validate(), and cace_ari_hash().