DTNMA Reference Tools v2.1.0 - 13.gc5c0bac
Delay-Tolerant Networking Management Architecture (DTNMA) Tool Suite
Loading...
Searching...
No Matches
algo.c File Reference
#include "algo.h"
#include "containers.h"
#include "text.h"
#include "cace/util/logging.h"
#include "cace/util/defs.h"
#include "cace/amm/numeric.h"
#include "cace/amm/typing.h"
#include <math.h>
+ Include dependency graph for algo.c:

Functions

static int cace_ari_visit_ari (cace_ari_t *ari, const cace_ari_visitor_t *visitor, const cace_ari_visit_ctx_t *ctx)
 
static int cace_ari_visit_ac (cace_ari_ac_t *obj, const cace_ari_visitor_t *visitor, const cace_ari_visit_ctx_t *ctx)
 
static int cace_ari_visit_am (cace_ari_am_t *obj, const cace_ari_visitor_t *visitor, cace_ari_visit_ctx_t *ctx)
 
static int cace_ari_visit_tbl (cace_ari_tbl_t *obj, const cace_ari_visitor_t *visitor, const cace_ari_visit_ctx_t *ctx)
 
static int cace_ari_visit_execset (cace_ari_execset_t *obj, const cace_ari_visitor_t *visitor, const cace_ari_visit_ctx_t *ctx)
 
static int cace_ari_visit_report (cace_ari_report_t *obj, const cace_ari_visitor_t *visitor, const cace_ari_visit_ctx_t *ctx)
 
static int cace_ari_visit_rptset (cace_ari_rptset_t *obj, const cace_ari_visitor_t *visitor, const cace_ari_visit_ctx_t *ctx)
 
int cace_ari_visit (cace_ari_t *ari, const cace_ari_visitor_t *visitor, void *user_data)
 Visit an ARI recursively.
 
static int cace_ari_translate_ari (cace_ari_t *out, const cace_ari_t *in, const cace_ari_translator_t *translator, const cace_ari_translate_ctx_t *ctx)
 
static int cace_ari_map_ac (cace_ari_ac_t *out, const cace_ari_ac_t *in, const cace_ari_translator_t *translator, const cace_ari_translate_ctx_t *ctx)
 
static int cace_ari_map_am (cace_ari_am_t *out, const cace_ari_am_t *in, const cace_ari_translator_t *translator, cace_ari_translate_ctx_t *ctx)
 
static int cace_ari_map_tbl (cace_ari_tbl_t *out, const cace_ari_tbl_t *in, const cace_ari_translator_t *translator, const cace_ari_translate_ctx_t *ctx)
 
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.
 
static int cace_ari_hash_visit_objpath (cace_ari_objpath_t *path, const cace_ari_visit_ctx_t *ctx)
 
static int cace_ari_hash_visit_lit (cace_ari_lit_t *obj, const cace_ari_visit_ctx_t *ctx)
 
size_t cace_ari_hash (const cace_ari_t *ari)
 Interface for M*LIB HASH operation.
 
static int cace_ari_params_cmp (const cace_ari_params_t *left, const cace_ari_params_t *right)
 
static bool cace_ari_params_equal (const cace_ari_params_t *left, const cace_ari_params_t *right)
 
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.
 

Function Documentation

◆ cace_ari_cmp()

int cace_ari_cmp ( const cace_ari_t left,
const cace_ari_t right 
)

◆ cace_ari_equal()

bool cace_ari_equal ( const cace_ari_t left,
const cace_ari_t right 
)

Determine if two ARIs have identical value.

Parameters
leftOne value to compare.
rightOther value to compare.
Returns
True if the two are by-value equal.

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().

◆ cace_ari_get_str()

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().

◆ cace_ari_hash()

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.

Parameters
[in]ariThe object to hash, which contains nested state.
Returns
The hash value.

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().

◆ cace_ari_hash_visit_lit()

◆ cace_ari_hash_visit_objpath()

◆ cace_ari_map_ac()

static int cace_ari_map_ac ( cace_ari_ac_t out,
const cace_ari_ac_t in,
const cace_ari_translator_t translator,
const cace_ari_translate_ctx_t ctx 
)
static

◆ cace_ari_map_am()

◆ cace_ari_map_tbl()

static int cace_ari_map_tbl ( cace_ari_tbl_t out,
const cace_ari_tbl_t in,
const cace_ari_translator_t translator,
const cace_ari_translate_ctx_t ctx 
)
static

◆ cace_ari_params_cmp()

◆ cace_ari_params_equal()

◆ cace_ari_translate()

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.

Precondition
The out value is already initialized.
Parameters
[out]outThe result of translation.
[in]inThe value to translate.
[in]translatorThe translator descriptor.
[in]user_dataData passed to the cace_ari_translator_t functions.
Returns
Zero upon success, or non-zero if one of the translator functions returned non-zero.

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().

◆ cace_ari_translate_ari()

◆ cace_ari_visit()

int cace_ari_visit ( cace_ari_t ari,
const cace_ari_visitor_t visitor,
void *  user_data 
)

Visit an ARI recursively.

Parameters
[in]ariThe value to visit.
[in]visitorThe visitor descriptor.
[in]user_dataData passed to the cace_ari_visitor_t functions.
Returns
Zero upon success, or non-zero if one of the visitor functions returned non-zero.

References cace_ari_visit_ari(), CHKERR1, and cace_ari_visit_ctx_t::parent.

Referenced by cace_amm_builtin_validate(), and cace_ari_hash().

◆ cace_ari_visit_ac()

static int cace_ari_visit_ac ( cace_ari_ac_t obj,
const cace_ari_visitor_t visitor,
const cace_ari_visit_ctx_t ctx 
)
static

◆ cace_ari_visit_am()

static int cace_ari_visit_am ( cace_ari_am_t obj,
const cace_ari_visitor_t visitor,
cace_ari_visit_ctx_t ctx 
)
static

◆ cace_ari_visit_ari()

◆ cace_ari_visit_execset()

static int cace_ari_visit_execset ( cace_ari_execset_t obj,
const cace_ari_visitor_t visitor,
const cace_ari_visit_ctx_t ctx 
)
static

◆ cace_ari_visit_report()

static int cace_ari_visit_report ( cace_ari_report_t obj,
const cace_ari_visitor_t visitor,
const cace_ari_visit_ctx_t ctx 
)
static

◆ cace_ari_visit_rptset()

◆ cace_ari_visit_tbl()

static int cace_ari_visit_tbl ( cace_ari_tbl_t obj,
const cace_ari_visitor_t visitor,
const cace_ari_visit_ctx_t ctx 
)
static