DTNMA Reference Tools v2.1.0 - 13.gc5c0bac
Delay-Tolerant Networking Management Architecture (DTNMA) Tool Suite
Loading...
Searching...
No Matches
oper_eval_ctx.h File Reference
#include "agent.h"
#include "eval_ctx.h"
#include "refda/amm/oper.h"
#include <cace/ari.h>
#include <cace/ari/itemized.h>
+ Include dependency graph for oper_eval_ctx.h:
+ This graph shows which files directly or indirectly include this file:

Data Structures

struct  refda_oper_eval_ctx_t
 Context for OPER evaluation activities. More...
 

Functions

void refda_oper_eval_ctx_init (refda_oper_eval_ctx_t *obj)
 
void refda_oper_eval_ctx_deinit (refda_oper_eval_ctx_t *obj)
 
int refda_oper_eval_ctx_populate (refda_oper_eval_ctx_t *obj, const cace_amm_lookup_t *deref, const refda_amm_oper_desc_t *oper, refda_eval_ctx_t *eval)
 Populate a context based on an object reference ARI and a target object's formal parameters.
 
bool refda_oper_eval_ctx_has_aparam_undefined (const refda_oper_eval_ctx_t *ctx)
 Determine if any actual parameter is undefined.
 
const cace_ari_trefda_oper_eval_ctx_get_aparam_index (const refda_oper_eval_ctx_t *ctx, size_t index)
 
const cace_ari_trefda_oper_eval_ctx_get_aparam_name (const refda_oper_eval_ctx_t *ctx, const char *name)
 
bool refda_oper_eval_ctx_has_operand_undefined (const refda_oper_eval_ctx_t *ctx)
 Determine if any operand value is undefined.
 
const cace_ari_trefda_oper_eval_ctx_get_operand_index (const refda_oper_eval_ctx_t *ctx, size_t index)
 
const cace_ari_trefda_oper_eval_ctx_get_operand_name (const refda_oper_eval_ctx_t *ctx, const char *name)
 
void refda_oper_eval_ctx_set_result_copy (refda_oper_eval_ctx_t *ctx, const cace_ari_t *value)
 
void refda_oper_eval_ctx_set_result_move (refda_oper_eval_ctx_t *ctx, cace_ari_t *value)
 

Function Documentation

◆ refda_oper_eval_ctx_deinit()

◆ refda_oper_eval_ctx_get_aparam_index()

const cace_ari_t * refda_oper_eval_ctx_get_aparam_index ( const refda_oper_eval_ctx_t ctx,
size_t  index 
)

◆ refda_oper_eval_ctx_get_aparam_name()

const cace_ari_t * refda_oper_eval_ctx_get_aparam_name ( const refda_oper_eval_ctx_t ctx,
const char *  name 
)

◆ refda_oper_eval_ctx_get_operand_index()

◆ refda_oper_eval_ctx_get_operand_name()

const cace_ari_t * refda_oper_eval_ctx_get_operand_name ( const refda_oper_eval_ctx_t ctx,
const char *  name 
)

◆ refda_oper_eval_ctx_has_aparam_undefined()

bool refda_oper_eval_ctx_has_aparam_undefined ( const refda_oper_eval_ctx_t ctx)

Determine if any actual parameter is undefined.

Parameters
[in]ctxThe evaluation context.
Returns
True if there are any undefined values.

References cace_ari_itemized_t::any_undefined, cace_amm_lookup_t::aparams, CHKFALSE, and refda_oper_eval_ctx_t::deref.

Referenced by refda_adm_ietf_dtnma_agent_oper_tbl_filter().

◆ refda_oper_eval_ctx_has_operand_undefined()

bool refda_oper_eval_ctx_has_operand_undefined ( const refda_oper_eval_ctx_t ctx)

Determine if any operand value is undefined.

Parameters
[in]ctxThe evaluation context.
Returns
True if there are any undefined values.

References cace_ari_itemized_t::any_undefined, CHKFALSE, and refda_oper_eval_ctx_t::operands.

Referenced by refda_adm_ietf_dtnma_agent_oper_tbl_filter().

◆ refda_oper_eval_ctx_init()

◆ refda_oper_eval_ctx_populate()

int refda_oper_eval_ctx_populate ( refda_oper_eval_ctx_t obj,
const cace_amm_lookup_t deref,
const refda_amm_oper_desc_t oper,
refda_eval_ctx_t eval 
)

Populate a context based on an object reference ARI and a target object's formal parameters.

Parameters
[out]objThe context to initialize.
[in]derefThe lookup dereference.
[in]operThe OPER descriptor to evaluate with.
[in,out]evalThe evaluation state to pop operands from. The result must outlive this context.
Returns
Zero if successful.

References cace_amm_type_convert(), cace_ari_deinit(), CACE_ARI_INIT_UNDEFINED, cace_ari_itemized_reset(), CACE_ARI_TEXT_ENC_OPTS_DEFAULT, cace_ari_text_encode(), cace_log_is_enabled_for(), CACE_LOG_WARNING, CHKERR1, refda_oper_eval_ctx_t::deref, refda_oper_eval_ctx_t::evalctx, cace_amm_named_type_t::name, cace_ari_itemized_t::named, refda_oper_eval_ctx_t::oper, refda_amm_oper_desc_t::operand_types, refda_oper_eval_ctx_t::operands, cace_ari_itemized_t::ordered, refda_eval_ctx_t::stack, and cace_amm_named_type_t::typeobj.

Referenced by refda_eval_oper().

◆ refda_oper_eval_ctx_set_result_copy()

void refda_oper_eval_ctx_set_result_copy ( refda_oper_eval_ctx_t ctx,
const cace_ari_t value 
)

◆ refda_oper_eval_ctx_set_result_move()