DTNMA Reference Tools v2.0.0 - 8.g8c05a00
Delay-Tolerant Networking Management Architecture (DTNMA) Tool Suite
Loading...
Searching...
No Matches
ref.h File Reference

This file contains the definitions for ARI object reference paths and their segments. More...

#include "type.h"
#include "cace/config.h"
#include <m-string.h>
#include <stdint.h>
#include <stdbool.h>
#include <time.h>
+ Include dependency graph for ref.h:
+ This graph shows which files directly or indirectly include this file:

Data Structures

struct  cace_ari_idseg_t
 Represent an identifier component of an ARI. More...
 
struct  cace_ari_date_t
 Represent a decoded date value. More...
 
struct  cace_ari_objpath_t
 The entire object path as part of a full obj_ref_t. More...
 
struct  cace_ari_params_t
 Given parameter storage for an cace_ari_ref_t. More...
 
struct  cace_ari_ref_t
 Represent an object reference or namespace reference ARI in accordance with [5]. More...
 

Typedefs

typedef int64_t cace_ari_int_id_t
 Integer type for object reference parts.
 

Enumerations

enum  cace_ari_param_state_e { CACE_ARI_PARAMS_NONE , CACE_ARI_PARAMS_AC , CACE_ARI_PARAMS_AM }
 Indicate the presence of parameters in cace_ari_params_t.
 

Functions

void cace_ari_idseg_init (cace_ari_idseg_t *obj)
 Initialize a null ID segment.
 
void cace_ari_idseg_deinit (cace_ari_idseg_t *obj)
 
void cace_ari_idseg_copy (cace_ari_idseg_t *obj, const cace_ari_idseg_t *src)
 
size_t cace_ari_idseg_hash (const cace_ari_idseg_t *obj)
 
int cace_ari_idseg_cmp (const cace_ari_idseg_t *left, const cace_ari_idseg_t *right)
 
bool cace_ari_idseg_equal (const cace_ari_idseg_t *left, const cace_ari_idseg_t *right)
 
void cace_ari_idseg_init_text (cace_ari_idseg_t *obj, string_t text)
 Initialize an ID segment from any text.
 
void cace_ari_idseg_derive_form (cace_ari_idseg_t *idset)
 Derive an integer value if the segment contains text that matches an integer pattern.
 
void cace_ari_date_init (cace_ari_date_t *obj)
 
void cace_ari_date_deinit (cace_ari_date_t *obj)
 
void cace_ari_date_copy (cace_ari_date_t *obj, const cace_ari_date_t *src)
 
int cace_ari_date_cmp (const cace_ari_date_t *left, const cace_ari_date_t *right)
 
int cace_ari_date_from_text (cace_ari_date_t *obj, const char *text)
 A helper function to decode date text.
 
void cace_ari_objpath_init (cace_ari_objpath_t *obj)
 
void cace_ari_objpath_deinit (cace_ari_objpath_t *obj)
 
void cace_ari_objpath_copy (cace_ari_objpath_t *obj, const cace_ari_objpath_t *src)
 
int cace_ari_objpath_derive_type (cace_ari_objpath_t *path)
 Derive the ARI Type of a referenced object.
 
void cace_ari_objpath_set_textid (cace_ari_objpath_t *path, const char *org_id, const char *model_id, cace_ari_type_t type_id, const char *obj_id)
 Set the ARI as an object reference with a specific text-named path.
 
void cace_ari_objpath_set_textid_opt (cace_ari_objpath_t *path, const char *org_id, const char *model_id, const cace_ari_type_t *type_id, const char *obj_id)
 Set the ARI as an object reference with a specific text-named path.
 
void cace_ari_objpath_set_intid (cace_ari_objpath_t *path, cace_ari_int_id_t org_id, cace_ari_int_id_t model_id, cace_ari_type_t type_id, cace_ari_int_id_t obj_id)
 Set the ARI as an object reference with a specific integer-enumerated path.
 
void cace_ari_objpath_set_intid_opt (cace_ari_objpath_t *path, const cace_ari_int_id_t *org_id, const cace_ari_int_id_t *model_id, const cace_ari_type_t *type_id, const cace_ari_int_id_t *obj_id)
 Set the ARI as an object reference with a specific integer-enumerated path.
 
int cace_ari_params_deinit (cace_ari_params_t *obj)
 
int cace_ari_params_copy (cace_ari_params_t *obj, const cace_ari_params_t *src)
 
void cace_ari_params_set_ac (cace_ari_params_t *obj, struct cace_ari_list_s *src)
 Set the parameters to a specific state.
 
void cace_ari_params_set_am (cace_ari_params_t *obj, struct cace_ari_tree_s *src)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
void cace_ari_ref_deinit (cace_ari_ref_t *obj)
 
int cace_ari_ref_copy (cace_ari_ref_t *obj, const cace_ari_ref_t *src)
 

Detailed Description

This file contains the definitions for ARI object reference paths and their segments.

Function Documentation

◆ cace_ari_date_from_text()

int cace_ari_date_from_text ( cace_ari_date_t obj,
const char *  text 
)

A helper function to decode date text.

Parameters
[out]objThe object to decode into, setting its cace_ari_date_t::valid state depending on decoding success.
[in]textThe text to decode.

References cace_data_deinit(), cace_data_init_view_cstr(), CHKERR1, cace_ari_date_t::parts, and cace_ari_date_t::valid.

◆ cace_ari_idseg_derive_form()

void cace_ari_idseg_derive_form ( cace_ari_idseg_t idset)

Derive an integer value if the segment contains text that matches an integer pattern.

Parameters
[in,out]idsetThe object to update.

References cace_ari_idseg_t::as_int, cace_ari_idseg_t::as_text, CHKVOID, and cace_ari_idseg_t::form.

◆ cace_ari_idseg_init()

void cace_ari_idseg_init ( cace_ari_idseg_t obj)

Initialize a null ID segment.

Parameters
[out]objThe segment to initialize.

References cace_ari_idseg_t::form.

◆ cace_ari_idseg_init_text()

void cace_ari_idseg_init_text ( cace_ari_idseg_t obj,
string_t  text 
)

Initialize an ID segment from any text.

Parameters
[out]objThe segment to initialize.
[in,out]textThe text to take from and clear.

References cace_ari_idseg_t::as_text, and cace_ari_idseg_t::form.

◆ cace_ari_objpath_derive_type()

int cace_ari_objpath_derive_type ( cace_ari_objpath_t path)

Derive the ARI Type of a referenced object.

This sets the cace_ari_objpath_t::ari_type based on the cace_ari_objpath_t::type_id value.

Parameters
[in,out]pathThe object to update.
Returns
Zero upon success.
Postcondition
Also marks cace_ari_objpath_t::has_ari_type to indicate success.

References cace_ari_objpath_t::ari_type, cace_ari_idseg_t::as_int, cace_ari_idseg_t::as_text, CHKERR1, cace_ari_idseg_t::form, cace_ari_objpath_t::has_ari_type, and cace_ari_objpath_t::type_id.

Referenced by cace_ari_cbor_decode_stream().

◆ cace_ari_objpath_set_intid()

void cace_ari_objpath_set_intid ( cace_ari_objpath_t path,
cace_ari_int_id_t  org_id,
cace_ari_int_id_t  model_id,
cace_ari_type_t  type_id,
cace_ari_int_id_t  obj_id 
)

Set the ARI as an object reference with a specific integer-enumerated path.

Parameters
[in,out]pathThe path to modify.
[in]org_idThe organization ID.
[in]model_idThe model ID.
type_idThe object type ID.
[in]obj_idThe object ID.

References cace_ari_objpath_set_intid_opt().

Referenced by cace_ari_set_objref_path_intid().

◆ cace_ari_objpath_set_intid_opt()

void cace_ari_objpath_set_intid_opt ( cace_ari_objpath_t path,
const cace_ari_int_id_t org_id,
const cace_ari_int_id_t model_id,
const cace_ari_type_t type_id,
const cace_ari_int_id_t obj_id 
)

Set the ARI as an object reference with a specific integer-enumerated path.

For all pointer arguments, the pointed-to lifetime does not need to outlast this function call. Pointed-to values are copied into the path.

Parameters
[in,out]pathThe path to modify.
[in]org_idThe organization ID, or NULL for none.
[in]model_idThe model ID, or NULL for none.
type_idThe object type ID, or NULL for none.
[in]obj_idThe object ID, or NULL for none.

References cace_ari_objpath_t::ari_type, cace_ari_idseg_t::as_int, CHKVOID, cace_ari_idseg_t::form, cace_ari_objpath_t::has_ari_type, cace_ari_objpath_t::model_id, cace_ari_objpath_t::obj_id, cace_ari_objpath_t::org_id, and cace_ari_objpath_t::type_id.

Referenced by cace_ari_objpath_set_intid().

◆ cace_ari_objpath_set_textid()

void cace_ari_objpath_set_textid ( cace_ari_objpath_t path,
const char *  org_id,
const char *  model_id,
cace_ari_type_t  type_id,
const char *  obj_id 
)

Set the ARI as an object reference with a specific text-named path.

Parameters
[in,out]pathThe path to modify.
[in]org_idThe organization ID.
[in]model_idThe model ID.
type_idThe object type ID.
[in]obj_idThe object ID.

References cace_ari_objpath_set_textid_opt().

Referenced by cace_ari_set_objref_path_textid().

◆ cace_ari_objpath_set_textid_opt()

void cace_ari_objpath_set_textid_opt ( cace_ari_objpath_t path,
const char *  org_id,
const char *  model_id,
const cace_ari_type_t type_id,
const char *  obj_id 
)

Set the ARI as an object reference with a specific text-named path.

For all pointer arguments, the pointed-to lifetime does not need to outlast this function call. Pointed-to values are copied into the path.

Parameters
[in,out]pathThe path to modify.
[in]org_idThe organization ID, or NULL for none.
[in]model_idThe model ID, or NULL for none.
type_idThe object type ID, or NULL for none.
[in]obj_idThe object ID, or NULL for none.

References cace_ari_objpath_t::ari_type, cace_ari_idseg_t::as_text, CHKVOID, cace_ari_idseg_t::form, cace_ari_objpath_t::has_ari_type, cace_ari_objpath_t::model_id, cace_ari_objpath_t::obj_id, cace_ari_objpath_t::org_id, and cace_ari_objpath_t::type_id.

Referenced by cace_ari_objpath_set_textid().

◆ cace_ari_params_set_ac()

void cace_ari_params_set_ac ( cace_ari_params_t obj,
struct cace_ari_list_s *  src 
)

Set the parameters to a specific state.

Parameters
[in,out]objThe state to modify, which must already be initialized.
[in,out]srcAn optional existing value struct to move from.

References cace_ari_params_t::as_ac, CACE_MALLOC, CHKVOID, cace_ari_ac_t::items, and cace_ari_params_t::state.