DTNMA Reference Tools v2.1.0 - 19.gcd454d0
Delay-Tolerant Networking Management Architecture (DTNMA) Tool Suite
Loading...
Searching...
No Matches
objpat_set.c File Reference
#include "objpat_set.h"
#include "cace/util/logging.h"
#include "cace/util/defs.h"
+ Include dependency graph for objpat_set.c:

Functions

static void cace_amm_objpat_set_from_single (cace_ari_list_t list, const cace_ari_t *val)
 Only copy actual OBJPAT values, keep same order from source.
 
void cace_amm_objpat_set_from_value (cace_ari_t *set, const cace_ari_t *val)
 Extract a copy of a pattern set from a literal value.
 
static void cace_amm_objpat_part_from_idseg (cace_ari_objpat_part_t *part, const cace_amm_idseg_val_t *id)
 
int cace_amm_objpat_set_from_obj (cace_ari_t *set, const cace_amm_lookup_t *deref)
 Construct a pattern to match a specific object.
 
static bool cace_amm_objpat_part_idseg_match (const cace_ari_objpat_part_t *part, const cace_amm_idseg_val_t *id)
 
static bool cace_amm_objpat_part_type_match (const cace_ari_objpat_part_t *part, cace_ari_type_t obj_type)
 
int cace_amm_objpat_from_value (cace_ari_objpat_t *obj, const cace_ari_t *val)
 
static bool cace_amm_objpat_match (const cace_ari_t *val, const cace_amm_lookup_t *deref)
 
bool cace_amm_objpat_set_match (const cace_ari_t *set, const cace_amm_lookup_t *deref)
 Determine if a specific dereferenced object matches a pattern set.
 

Function Documentation

◆ cace_amm_objpat_from_value()

int cace_amm_objpat_from_value ( cace_ari_objpat_t obj,
const cace_ari_t val 
)

◆ cace_amm_objpat_match()

◆ cace_amm_objpat_part_from_idseg()

static void cace_amm_objpat_part_from_idseg ( cace_ari_objpat_part_t *  part,
const cace_amm_idseg_val_t id 
)
static

◆ cace_amm_objpat_part_idseg_match()

static bool cace_amm_objpat_part_idseg_match ( const cace_ari_objpat_part_t *  part,
const cace_amm_idseg_val_t id 
)
static

◆ cace_amm_objpat_part_type_match()

static bool cace_amm_objpat_part_type_match ( const cace_ari_objpat_part_t *  part,
cace_ari_type_t  obj_type 
)
static

◆ cace_amm_objpat_set_from_obj()

int cace_amm_objpat_set_from_obj ( cace_ari_t set,
const cace_amm_lookup_t deref 
)

Construct a pattern to match a specific object.

Integer ID parts are preferred here.

Parameters
[in,out]objThe value to copy into.
[in]derefThe dereferenced object to match.
Returns
Zero if successful.

References cace_amm_objpat_part_from_idseg(), cace_ari_set_ac(), cace_ari_set_objpat(), cace_ari_ac_t::items, cace_amm_obj_ns_t::model_id, cace_ari_objpat_t::model_pat, cace_amm_lookup_t::ns, cace_amm_lookup_t::obj, cace_amm_obj_desc_t::obj_id, cace_ari_objpat_t::obj_pat, cace_amm_lookup_t::obj_type, cace_amm_obj_ns_t::org_id, cace_ari_objpat_t::org_pat, and cace_ari_objpat_t::type_pat.

◆ cace_amm_objpat_set_from_single()

static void cace_amm_objpat_set_from_single ( cace_ari_list_t  list,
const cace_ari_t val 
)
static

Only copy actual OBJPAT values, keep same order from source.

References cace_ari_cget_objpat(), and CACE_LOG_ERR.

Referenced by cace_amm_objpat_set_from_value().

◆ cace_amm_objpat_set_from_value()

void cace_amm_objpat_set_from_value ( cace_ari_t set,
const cace_ari_t val 
)

Extract a copy of a pattern set from a literal value.

Parameters
[in,out]objThe value to copy into.
[in]valThe value to copy out of, which must be either an OBJPAT itself or an AC of OBJPAT values.

References cace_amm_objpat_set_from_single(), cace_ari_cget_ac(), cace_ari_set_ac(), CHKVOID, and cace_ari_ac_t::items.

Referenced by refda_adm_ietf_alarms_ctrl_discard_shelf(), refda_adm_ietf_alarms_ctrl_ensure_shelf(), and refda_adm_ietf_dtnma_agent_acl_ctrl_ensure_access().

◆ cace_amm_objpat_set_match()

bool cace_amm_objpat_set_match ( const cace_ari_t set,
const cace_amm_lookup_t deref 
)

Determine if a specific dereferenced object matches a pattern set.

Both integer and text ID parts are checked as needed.

Parameters
[in,out]objThe empty pattern to match against.
[in]derefThe dereferenced object to match.
Returns
True if it is a match.

References cace_amm_objpat_match(), cace_ari_cget_ac(), cace_ari_ac_t::items, cace_amm_lookup_t::ns, and cace_amm_lookup_t::obj.

Referenced by refda_acl_search_permission(), and refda_alarms_shelf_entry_match().