DTNMA Reference Tools v2.1.0 - 13.gc5c0bac
Delay-Tolerant Networking Management Architecture (DTNMA) Tool Suite
Loading...
Searching...
No Matches
semtype.c File Reference
#include "semtype.h"
#include "lookup.h"
#include "cace/ari/algo.h"
#include "cace/ari/text.h"
#include "cace/util/defs.h"
#include "cace/util/logging.h"
#include "cace/config.h"
#include <m-dict.h>
+ Include dependency graph for semtype.c:

Functions

static bool cace_amm_semtype_use_constraints (const cace_amm_semtype_use_t *semtype, const cace_ari_t *val)
 
int cace_amm_type_set_use_from_name (cace_amm_type_t *type, const cace_amm_lookup_t *deref, const cace_amm_obj_store_t *store)
 Read a named config from its serialized name.
 
static void cace_amm_semtype_use_name (const cace_amm_type_t *self, cace_ari_t *name)
 
static cace_amm_type_match_res_t cace_amm_semtype_use_match (const cace_amm_type_t *self, const cace_ari_t *ari)
 
static int cace_amm_semtype_use_convert (const cace_amm_type_t *self, cace_ari_t *out, const cace_ari_t *in)
 
cace_amm_semtype_use_tcace_amm_type_set_use (cace_amm_type_t *type)
 Create a default initialized type use.
 
cace_amm_semtype_use_tcace_amm_type_set_use_ref (cace_amm_type_t *type, const cace_ari_t *name)
 Create a use type based on a type reference.
 
cace_amm_semtype_use_tcace_amm_type_set_use_ref_move (cace_amm_type_t *type, cace_ari_t *name)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Set the name with move semantics.
 
int cace_amm_type_set_use_builtin (cace_amm_type_t *type, cace_ari_type_t ari_type)
 Create a use type based on a base type object.
 
int cace_amm_type_set_ulist_from_name (cace_amm_type_t *type, const cace_amm_lookup_t *deref, const cace_amm_obj_store_t *store)
 
static void cace_amm_semtype_ulist_name (const cace_amm_type_t *self, cace_ari_t *name)
 
static cace_amm_type_match_res_t cace_amm_semtype_ulist_match (const cace_amm_type_t *self, const cace_ari_t *ari)
 
static int cace_amm_semtype_ulist_convert (const cace_amm_type_t *self, cace_ari_t *out, const cace_ari_t *in)
 
cace_amm_semtype_ulist_tcace_amm_type_set_ulist (cace_amm_type_t *type)
 Create a uniform list semantic type.
 
static cace_amm_type_match_res_t cace_amm_semtype_seq_match_it (const cace_amm_semtype_seq_t *seq, cace_ari_list_it_t val_it)
 Match a sub-sequence of an AC using an input iterator.
 
static bool cace_amm_semtype_seq_convert_it (const cace_amm_semtype_seq_t *seq, cace_ari_list_t out, cace_ari_list_it_t inval_it)
 Convert a sub-sequence of an AC using an input iterator.
 
int cace_amm_type_set_dlist_from_name (cace_amm_type_t *type, const cace_amm_lookup_t *deref, const cace_amm_obj_store_t *store)
 Read a diverse list config from its serialized name.
 
static void cace_amm_semtype_dlist_name (const cace_amm_type_t *self, cace_ari_t *name)
 
static cace_amm_type_match_res_t cace_amm_semtype_dlist_match (const cace_amm_type_t *self, const cace_ari_t *ari)
 
static int cace_amm_semtype_dlist_convert (const cace_amm_type_t *self, cace_ari_t *out, const cace_ari_t *in)
 
cace_amm_semtype_dlist_tcace_amm_type_set_dlist (cace_amm_type_t *type, size_t num_types)
 Create a diverse list semantic type.
 
static void cace_amm_semtype_umap_name (const cace_amm_type_t *self, cace_ari_t *name)
 
static cace_amm_type_match_res_t cace_amm_semtype_umap_match (const cace_amm_type_t *self, const cace_ari_t *ari)
 
static int cace_amm_semtype_umap_convert (const cace_amm_type_t *self, cace_ari_t *out, const cace_ari_t *in)
 
cace_amm_semtype_umap_tcace_amm_type_set_umap (cace_amm_type_t *type)
 Create a uniform map semantic type.
 
int cace_amm_type_set_umap_name (cace_amm_type_t *type, const cace_amm_lookup_t *deref, const cace_amm_obj_store_t *store)
 
int cace_amm_type_set_umap_from_name (cace_amm_type_t *type, const cace_amm_lookup_t *deref, const cace_amm_obj_store_t *store)
 Read a uniform map config from its serialized name.
 
int cace_amm_type_set_tblt_from_name (cace_amm_type_t *type, const cace_amm_lookup_t *deref, const cace_amm_obj_store_t *store)
 Read a table template config from its serialized name.
 
static void cace_amm_semtype_tblt_name (const cace_amm_type_t *self, cace_ari_t *name)
 
static cace_amm_type_match_res_t cace_amm_semtype_tblt_match (const cace_amm_type_t *self, const cace_ari_t *ari)
 
static int cace_amm_semtype_tblt_convert (const cace_amm_type_t *self, cace_ari_t *out, const cace_ari_t *in)
 
cace_amm_semtype_tblt_tcace_amm_type_set_tblt_size (cace_amm_type_t *type, size_t num_cols)
 Create a table template based on a set of typed columns.
 
int cace_amm_type_set_union_from_name (cace_amm_type_t *type, const cace_amm_lookup_t *deref, const cace_amm_obj_store_t *store)
 Read a union config from its serialized name.
 
static void cace_amm_semtype_union_name (const cace_amm_type_t *self, cace_ari_t *name)
 
static cace_amm_type_match_res_t cace_amm_semtype_union_match (const cace_amm_type_t *self, const cace_ari_t *ari)
 
static int cace_amm_semtype_union_convert (const cace_amm_type_t *self, cace_ari_t *out, const cace_ari_t *in)
 
cace_amm_semtype_union_tcace_amm_type_set_union_size (cace_amm_type_t *type, size_t num_choices)
 Create a union type based on a choice of other type objects.
 
int cace_amm_type_set_seq_from_name (cace_amm_type_t *type, const cace_amm_lookup_t *deref, const cace_amm_obj_store_t *store)
 Read a sub-sequence from its serialized name.
 
static void cace_amm_semtype_seq_name (const cace_amm_type_t *self, cace_ari_t *name)
 
cace_amm_semtype_seq_tcace_amm_type_set_seq (cace_amm_type_t *type)
 Create a sub-sequence list semantic type.
 

Function Documentation

◆ cace_amm_semtype_dlist_convert()

◆ cace_amm_semtype_dlist_match()

◆ cace_amm_semtype_dlist_name()

◆ cace_amm_semtype_seq_convert_it()

static bool cace_amm_semtype_seq_convert_it ( const cace_amm_semtype_seq_t seq,
cace_ari_list_t  out,
cace_ari_list_it_t  inval_it 
)
static

Convert a sub-sequence of an AC using an input iterator.

References cace_amm_type_convert(), CACE_ARI_INIT_UNDEFINED, cace_amm_semtype_seq_t::item_type, and cace_amm_semtype_seq_t::size.

Referenced by cace_amm_semtype_dlist_convert().

◆ cace_amm_semtype_seq_match_it()

static cace_amm_type_match_res_t cace_amm_semtype_seq_match_it ( const cace_amm_semtype_seq_t seq,
cace_ari_list_it_t  val_it 
)
static

◆ cace_amm_semtype_seq_name()

◆ cace_amm_semtype_tblt_convert()

static int cace_amm_semtype_tblt_convert ( const cace_amm_type_t *  self,
cace_ari_t out,
const cace_ari_t in 
)
static

◆ cace_amm_semtype_tblt_match()

◆ cace_amm_semtype_tblt_name()

◆ cace_amm_semtype_ulist_convert()

◆ cace_amm_semtype_ulist_match()

◆ cace_amm_semtype_ulist_name()

◆ cace_amm_semtype_umap_convert()

◆ cace_amm_semtype_umap_match()

◆ cace_amm_semtype_umap_name()

◆ cace_amm_semtype_union_convert()

◆ cace_amm_semtype_union_match()

◆ cace_amm_semtype_union_name()

◆ cace_amm_semtype_use_constraints()

static bool cace_amm_semtype_use_constraints ( const cace_amm_semtype_use_t semtype,
const cace_ari_t val 
)
static

◆ cace_amm_semtype_use_convert()

static int cace_amm_semtype_use_convert ( const cace_amm_type_t *  self,
cace_ari_t out,
const cace_ari_t in 
)
static

◆ cace_amm_semtype_use_match()

◆ cace_amm_semtype_use_name()

◆ cace_amm_type_set_dlist()

cace_amm_semtype_dlist_t * cace_amm_type_set_dlist ( cace_amm_type_t *  type,
size_t  num_types 
)

◆ cace_amm_type_set_dlist_from_name()

int cace_amm_type_set_dlist_from_name ( cace_amm_type_t *  type,
const cace_amm_lookup_t deref,
const cace_amm_obj_store_t store 
)

Read a diverse list config from its serialized name.

Parameters
[in,out]typeThe object to populate.
[in]derefThe name to draw parameters from.
Returns
Zero if successful.

References cace_amm_lookup_t::aparams, cace_amm_type_set_dlist(), cace_amm_type_set_name(), cace_ari_cget_ac(), CACE_LOG_ERR, cace_ari_ac_t::items, cace_ari_itemized_t::named, store, and cace_amm_semtype_dlist_t::types.

Referenced by cace_amm_type_set_name_semtype().

◆ cace_amm_type_set_seq()

cace_amm_semtype_seq_t * cace_amm_type_set_seq ( cace_amm_type_t *  type)

Create a sub-sequence list semantic type.

Parameters
[out]typeThe type to initialize and populate.
Returns
Non-NULL upon success.

References cace_amm_semtype_seq_deinit(), cace_amm_semtype_seq_init(), cace_amm_semtype_seq_name(), cace_amm_type_reset(), CACE_AMM_TYPE_SEQ, CACE_MALLOC, and CHKNULL.

Referenced by cace_amm_type_set_seq_from_name(), and test_amm_type_match_semtype_dlist_seq_minmax().

◆ cace_amm_type_set_seq_from_name()

int cace_amm_type_set_seq_from_name ( cace_amm_type_t *  type,
const cace_amm_lookup_t deref,
const cace_amm_obj_store_t store 
)

Read a sub-sequence from its serialized name.

Parameters
[in,out]typeThe object to populate.
[in]derefThe name to draw parameters from.
Returns
Zero if successful.

References cace_amm_lookup_t::aparams, cace_amm_type_set_name(), cace_amm_type_set_seq(), CACE_LOG_ERR, cace_amm_semtype_seq_t::item_type, cace_ari_itemized_t::named, and store.

Referenced by cace_amm_type_set_name_semtype().

◆ cace_amm_type_set_tblt_from_name()

int cace_amm_type_set_tblt_from_name ( cace_amm_type_t *  type,
const cace_amm_lookup_t deref,
const cace_amm_obj_store_t store 
)

Read a table template config from its serialized name.

Parameters
[in,out]typeThe object to populate.
[in]derefThe name to draw parameters from.
Returns
Zero if successful.

References cace_amm_lookup_t::aparams, cace_amm_type_set_name(), cace_amm_type_set_tblt_size(), cace_ari_cget_tstr_cstr(), cace_ari_get_tbl(), CACE_LOG_ERR, cace_amm_semtype_tblt_t::columns, cace_ari_tbl_t::items, cace_amm_named_type_t::name, cace_ari_itemized_t::named, cace_ari_tbl_t::ncols, store, and cace_amm_named_type_t::typeobj.

Referenced by cace_amm_type_set_name_semtype().

◆ cace_amm_type_set_tblt_size()

cace_amm_semtype_tblt_t * cace_amm_type_set_tblt_size ( cace_amm_type_t *  type,
size_t  num_cols 
)

◆ cace_amm_type_set_ulist()

◆ cace_amm_type_set_ulist_from_name()

int cace_amm_type_set_ulist_from_name ( cace_amm_type_t *  type,
const cace_amm_lookup_t deref,
const cace_amm_obj_store_t store 
)

◆ cace_amm_type_set_umap()

cace_amm_semtype_umap_t * cace_amm_type_set_umap ( cace_amm_type_t *  type)

◆ cace_amm_type_set_umap_from_name()

int cace_amm_type_set_umap_from_name ( cace_amm_type_t *  type,
const cace_amm_lookup_t deref,
const cace_amm_obj_store_t store 
)

Read a uniform map config from its serialized name.

Parameters
[in,out]typeThe object to populate.
[in]derefThe name to draw parameters from.
Returns
Zero if successful.

References cace_amm_lookup_t::aparams, cace_amm_type_set_name(), cace_amm_type_set_umap(), CACE_LOG_ERR, cace_amm_semtype_umap_t::key_type, cace_ari_itemized_t::named, store, and cace_amm_semtype_umap_t::val_type.

Referenced by cace_amm_type_set_name_semtype().

◆ cace_amm_type_set_umap_name()

◆ cace_amm_type_set_union_from_name()

int cace_amm_type_set_union_from_name ( cace_amm_type_t *  type,
const cace_amm_lookup_t deref,
const cace_amm_obj_store_t store 
)

Read a union config from its serialized name.

Parameters
[in,out]typeThe object to populate.
[in]derefThe name to draw parameters from.
Returns
Zero if successful.

References cace_amm_lookup_t::aparams, cace_amm_type_set_name(), cace_amm_type_set_union_size(), cace_ari_cget_ac(), CACE_LOG_ERR, cace_amm_semtype_union_t::choices, cace_ari_ac_t::items, cace_ari_itemized_t::named, and store.

Referenced by cace_amm_type_set_name_semtype().

◆ cace_amm_type_set_union_size()

cace_amm_semtype_union_t * cace_amm_type_set_union_size ( cace_amm_type_t *  type,
size_t  num_choices 
)

◆ cace_amm_type_set_use()

cace_amm_semtype_use_t * cace_amm_type_set_use ( cace_amm_type_t *  type)

Create a default initialized type use.

A use type adds annotations and constraints onto a base type.

Parameters
[out]typeThe type to initialize and populate.
[in]nameThe ARITYPE literal or TYPEDEF reference value.

References cace_amm_semtype_use_convert(), cace_amm_semtype_use_deinit(), cace_amm_semtype_use_init(), cace_amm_semtype_use_match(), cace_amm_semtype_use_name(), cace_amm_type_reset(), CACE_AMM_TYPE_USE, CACE_MALLOC, and CHKNULL.

Referenced by cace_amm_type_set_use_from_name(), cace_amm_type_set_use_ref(), and cace_amm_type_set_use_ref_move().

◆ cace_amm_type_set_use_builtin()

int cace_amm_type_set_use_builtin ( cace_amm_type_t *  type,
cace_ari_type_t  ari_type 
)

◆ cace_amm_type_set_use_from_name()

int cace_amm_type_set_use_from_name ( cace_amm_type_t *  type,
const cace_amm_lookup_t deref,
const cace_amm_obj_store_t store 
)

Read a named config from its serialized name.

Parameters
[in,out]typeThe object to populate.
[in]derefThe name to draw parameters from.
Returns
Zero if successful.

References cace_amm_lookup_t::aparams, cace_amm_type_set_use(), cace_ari_set_copy(), CACE_LOG_ERR, cace_amm_semtype_use_t::name, and cace_ari_itemized_t::named.

Referenced by cace_amm_type_set_name_semtype().

◆ cace_amm_type_set_use_ref()

cace_amm_semtype_use_t * cace_amm_type_set_use_ref ( cace_amm_type_t *  type,
const cace_ari_t name 
)

Create a use type based on a type reference.

Note
This does not actually dereference the name, it only stores it.
Parameters
[out]typeThe type to initialize and populate.
[in]nameThe ARITYPE literal or TYPEDEF reference value.
Returns
Non-NULL upon success.

References cace_amm_type_set_use(), cace_ari_set_copy(), CHKNULL, and cace_amm_semtype_use_t::name.

◆ cace_amm_type_set_use_ref_move()

cace_amm_semtype_use_t * cace_amm_type_set_use_ref_move ( cace_amm_type_t *  type,
cace_ari_t name 
)