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

Data Structures

struct  refda_ctrl_exec_ctx_t
 Context for CTRL execution activities. More...
 

Macros

#define REFDA_CTRL_EXEC_RESULT_TYPE_NOMATCH   2
 

Typedefs

typedef struct refda_timeline_event_s refda_timeline_event_t
 

Functions

void refda_ctrl_exec_ctx_init (refda_ctrl_exec_ctx_t *obj, refda_exec_item_t *item)
 Initialize a context based on an object reference ARI and a target object's formal parameters.
 
void refda_ctrl_exec_ctx_deinit (refda_ctrl_exec_ctx_t *obj)
 
bool refda_ctrl_exec_ctx_has_aparam_undefined (const refda_ctrl_exec_ctx_t *ctx)
 Determine if any actual parameter is undefined.
 
const cace_ari_trefda_ctrl_exec_ctx_get_aparam_index (const refda_ctrl_exec_ctx_t *ctx, size_t index)
 Get an actual parameter for this execution.
 
const cace_ari_trefda_ctrl_exec_ctx_get_aparam_name (const refda_ctrl_exec_ctx_t *ctx, const char *name)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
void refda_ctrl_exec_ctx_set_waiting (refda_ctrl_exec_ctx_t *ctx, const refda_timeline_event_t *event)
 Mark this control run as waiting for some finish condition.
 
int refda_ctrl_exec_ctx_set_result_copy (refda_ctrl_exec_ctx_t *ctx, const cace_ari_t *value)
 Set the result for an execution, which marks it as finished.
 
int refda_ctrl_exec_ctx_set_result_move (refda_ctrl_exec_ctx_t *ctx, cace_ari_t *value)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
int refda_ctrl_exec_ctx_set_result_null (refda_ctrl_exec_ctx_t *ctx)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Convenience member to mark the result as successful but null-value.
 

Macro Definition Documentation

◆ REFDA_CTRL_EXEC_RESULT_TYPE_NOMATCH

#define REFDA_CTRL_EXEC_RESULT_TYPE_NOMATCH   2

Typedef Documentation

◆ refda_timeline_event_t

typedef struct refda_timeline_event_s refda_timeline_event_t

Function Documentation

◆ refda_ctrl_exec_ctx_deinit()

void refda_ctrl_exec_ctx_deinit ( refda_ctrl_exec_ctx_t obj)

◆ refda_ctrl_exec_ctx_get_aparam_index()

const cace_ari_t * refda_ctrl_exec_ctx_get_aparam_index ( const refda_ctrl_exec_ctx_t ctx,
size_t  index 
)

Get an actual parameter for this execution.

Parameters
[in]ctxThe execution context.
[in]indexThe index into the parameter list.
Returns
A pointer to the parameter value or NULL if no such parameter is present.

References cace_amm_lookup_t::aparams, CHKNULL, refda_exec_item_t::deref, refda_ctrl_exec_ctx_t::item, and cace_ari_itemized_t::ordered.

Referenced by mock_ctrl_exec_one_int(), refda_adm_ietf_alarms_ctrl_compress_alarms(), refda_adm_ietf_alarms_ctrl_purge_alarms(), refda_adm_ietf_alarms_ctrl_set_alarms_manager_state(), refda_adm_ietf_dtnma_agent_acl_ctrl_discard_access(), refda_adm_ietf_dtnma_agent_acl_ctrl_discard_group(), refda_adm_ietf_dtnma_agent_acl_ctrl_ensure_access(), refda_adm_ietf_dtnma_agent_acl_ctrl_ensure_group(), refda_adm_ietf_dtnma_agent_acl_ctrl_ensure_group_members(), refda_adm_ietf_dtnma_agent_ctrl_catch(), refda_adm_ietf_dtnma_agent_ctrl_ensure_const(), refda_adm_ietf_dtnma_agent_ctrl_ensure_odm(), refda_adm_ietf_dtnma_agent_ctrl_ensure_rule_enabled(), refda_adm_ietf_dtnma_agent_ctrl_ensure_sbr(), refda_adm_ietf_dtnma_agent_ctrl_ensure_tbr(), refda_adm_ietf_dtnma_agent_ctrl_ensure_var(), refda_adm_ietf_dtnma_agent_ctrl_if_then_else(), refda_adm_ietf_dtnma_agent_ctrl_inspect(), refda_adm_ietf_dtnma_agent_ctrl_obsolete_const(), refda_adm_ietf_dtnma_agent_ctrl_obsolete_odm(), refda_adm_ietf_dtnma_agent_ctrl_obsolete_rule(), refda_adm_ietf_dtnma_agent_ctrl_obsolete_var(), refda_adm_ietf_dtnma_agent_ctrl_report_on(), refda_adm_ietf_dtnma_agent_ctrl_reset_rule_enabled(), refda_adm_ietf_dtnma_agent_ctrl_var_reset(), refda_adm_ietf_dtnma_agent_ctrl_var_store(), refda_adm_ietf_dtnma_agent_ctrl_wait_cond_check(), refda_adm_ietf_dtnma_agent_ctrl_wait_for(), refda_adm_ietf_dtnma_agent_ctrl_wait_until(), and test_exec_ctrl_exec_one_int().

◆ refda_ctrl_exec_ctx_get_aparam_name()

const cace_ari_t * refda_ctrl_exec_ctx_get_aparam_name ( const refda_ctrl_exec_ctx_t ctx,
const char *  name 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

References cace_amm_lookup_t::aparams, CHKNULL, refda_exec_item_t::deref, refda_ctrl_exec_ctx_t::item, and cace_ari_itemized_t::named.

◆ refda_ctrl_exec_ctx_has_aparam_undefined()

bool refda_ctrl_exec_ctx_has_aparam_undefined ( const refda_ctrl_exec_ctx_t ctx)

◆ refda_ctrl_exec_ctx_init()

void refda_ctrl_exec_ctx_init ( refda_ctrl_exec_ctx_t obj,
refda_exec_item_t item 
)

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

Parameters
[out]objThe context to initialize.
[in]itemThe internal execution item. The result must outlive this context.

References cace_amm_obj_desc_t::app_data, CHKVOID, refda_ctrl_exec_ctx_t::ctrl, refda_exec_item_t::deref, refda_ctrl_exec_ctx_t::item, cace_amm_lookup_t::obj, cace_amm_user_data_t::ptr, refda_runctx_check_acl(), refda_ctrl_exec_ctx_t::runctx, refda_exec_seq_t::runctx, and refda_exec_item_t::seq.

Referenced by check_execute(), refda_exec_proc_ctrl_start(), and refda_exec_worker_iteration().

◆ refda_ctrl_exec_ctx_set_result_copy()

int refda_ctrl_exec_ctx_set_result_copy ( refda_ctrl_exec_ctx_t ctx,
const cace_ari_t value 
)

Set the result for an execution, which marks it as finished.

Parameters
[in,out]ctxThe context to update.
[in]valueThe value to use as the execution result.
Returns
Zero if successful and the value has a matching type. Otherwise REFDA_CTRL_EXEC_RESULT_TYPE_NOMATCH.

References cace_ari_set_copy(), CHKERR1, refda_ctrl_exec_ctx_t::item, refda_ctrl_exec_ctx_check_result(), and refda_exec_item_t::result.

Referenced by mock_ctrl_exec_none(), mock_ctrl_exec_one_int(), refda_adm_ietf_dtnma_agent_ctrl_wait_cond_check(), and test_exec_ctrl_exec_one_int().

◆ refda_ctrl_exec_ctx_set_result_move()

◆ refda_ctrl_exec_ctx_set_result_null()

◆ refda_ctrl_exec_ctx_set_waiting()

void refda_ctrl_exec_ctx_set_waiting ( refda_ctrl_exec_ctx_t ctx,
const refda_timeline_event_t event 
)

Mark this control run as waiting for some finish condition.

The finished state is communicated in the callback by its context.

Parameters
[in,out]ctxThe context to update.
[in]eventAn optional callback event to check the finished condition later.
See also
refda_exec_item_set_result_copy(), refda_exec_item_set_result_move(), refda_exec_item_set_result_null()

References refda_runctx_t::agent, CHKVOID, refda_agent_t::exec_timeline, refda_exec_item_t::execution_stage, refda_ctrl_exec_ctx_t::item, REFDA_EXEC_WAITING, and refda_ctrl_exec_ctx_t::runctx.

Referenced by refda_adm_ietf_dtnma_agent_ctrl_wait_cond_check(), refda_adm_ietf_dtnma_agent_ctrl_wait_for(), and refda_adm_ietf_dtnma_agent_ctrl_wait_until().