DTNMA Reference Tools v2.1.0 - 13.gc5c0bac
Delay-Tolerant Networking Management Architecture (DTNMA) Tool Suite
Loading...
Searching...
No Matches
text_enc.c File Reference
#include "text.h"
#include "text_util.h"
#include "access.h"
#include "cace/util/defs.h"
#include <inttypes.h>
+ Include dependency graph for text_enc.c:

Data Structures

struct  cace_ari_text_enc_state_t
 

Functions

static int cace_ari_text_percent_helper (m_string_t out, m_string_t buf)
 Perform percent encoding from a temporary buffer.
 
static int cace_ari_text_encode_stream (cace_ari_text_enc_state_t *state, const cace_ari_t *ari)
 
int cace_ari_text_encode (m_string_t text, const cace_ari_t *ari, cace_ari_text_enc_opts_t opts)
 Encode an ARI to text form.
 
static int cace_ari_text_encode_ac (cace_ari_text_enc_state_t *state, const cace_ari_ac_t *ctr)
 
static int cace_ari_text_encode_am (cace_ari_text_enc_state_t *state, const cace_ari_am_t *ctr)
 
static int cace_ari_text_encode_tbl (cace_ari_text_enc_state_t *state, const cace_ari_tbl_t *ctr)
 
static int cace_ari_text_encode_execset (cace_ari_text_enc_state_t *state, const cace_ari_execset_t *ctr)
 
static int cace_ari_text_encode_report (cace_ari_text_enc_state_t *state, const cace_ari_report_t *rpt)
 
static int cace_ari_text_encode_rptset (cace_ari_text_enc_state_t *state, const cace_ari_rptset_t *ctr)
 
static void cace_ari_text_encode_prefix (cace_ari_text_enc_state_t *state)
 
static bool cace_ari_text_encode_idseg (m_string_t text, const cace_ari_idseg_t *obj)
 
static void cace_ari_text_encode_aritype (m_string_t text, enum cace_ari_text_aritype_e show, const cace_ari_type_t val, const cace_ari_idseg_t *idseg)
 
static int cace_ari_text_encode_lit (cace_ari_text_enc_state_t *state, const cace_ari_lit_t *obj, const cace_ari_t *ari)
 
int cace_ari_text_encode_objpath (m_string_t text, const cace_ari_objpath_t *path, enum cace_ari_text_aritype_e show)
 Encode just an object path, which can be useful for debugging output.
 
static int cace_ari_text_encode_objref (cace_ari_text_enc_state_t *state, const cace_ari_ref_t *obj)
 

Variables

static const char uri_safe [] = "'"
 Additional safe characters for ARI text and byte strings as defined in Section 4.1 of [ietf-dtn-ari-00].
 

Function Documentation

◆ cace_ari_text_encode()

int cace_ari_text_encode ( m_string_t  text,
const cace_ari_t ari,
cace_ari_text_enc_opts_t  opts 
)

Encode an ARI to text form.

Parameters
[out]textThe data buffer to modify and write the result into. It will contain a null-terminated UTF-8 string if successful.
ariThe ARI to encode from.
optsEncoding parameters.
Returns
Zero upon success.

References cace_ari_text_encode_stream(), CHKERR1, cace_ari_text_enc_state_t::depth, and cace_ari_text_enc_state_t::out.

Referenced by agentParseHex(), agentShowTextReports(), bp_send_worker(), cace_amm_actual_param_set_populate(), cace_amm_obj_ns_add_obj(), cace_amm_semtype_tblt_match(), cace_amm_semtype_union_convert(), cace_amm_type_set_name(), cace_amp_msg_decode(), cace_amp_msg_encode(), cace_amp_proxy_cli_recv(), cace_amp_proxy_cli_send(), cace_amp_proxy_msg_recv(), cace_amp_socket_send(), cace_ari_cbor_decode_am(), cace_ari_get_str(), check_decoding(), check_encode(), check_execute(), handle_recv(), LLVMFuzzerTestOneInput(), mock_ctrl_exec_none(), mock_ctrl_exec_one_int(), normalize_key(), refda_acl_search_endpoint(), refda_adm_ietf_dtnma_agent_ctrl_ensure_const(), refda_adm_ietf_dtnma_agent_ctrl_ensure_rule_enabled(), refda_adm_ietf_dtnma_agent_ctrl_ensure_var(), refda_adm_ietf_dtnma_agent_ctrl_inspect(), refda_adm_ietf_dtnma_agent_ctrl_obsolete_const(), refda_adm_ietf_dtnma_agent_ctrl_obsolete_rule(), refda_adm_ietf_dtnma_agent_ctrl_obsolete_var(), 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_agent_get_object(), refda_amm_ident_base_get_str(), refda_amm_ident_base_populate(), refda_binding_ident_bases(), refda_binding_semtype_use(), refda_ctrl_exec_ctx_check_result(), refda_edd_prod_check_result(), refda_eval_oper(), refda_eval_target(), refda_exec_proc_ctrl_finish(), refda_exec_proc_ctrl_start(), refda_exec_proc_expand(), refda_oper_eval_ctx_populate(), refda_reporting_gen(), refda_reporting_rptt_val(), refda_reporting_target(), refda_valprod_const_run(), refda_valprod_edd_run(), refda_valprod_run(), refda_valprod_var_run(), refdm_db_insert_execset(), refdm_db_insert_rptset(), refdm_ingress_worker(), stdin_recv(), TEST_CASE(), test_exec_ctrl_exec_one_int(), test_refda_exec_target(), test_reporting_edd_one_int(), test_reporting_edd_one_int(), test_reporting_oper_add(), and write_text().

◆ cace_ari_text_encode_ac()

◆ cace_ari_text_encode_am()

◆ cace_ari_text_encode_aritype()

static void cace_ari_text_encode_aritype ( m_string_t  text,
enum cace_ari_text_aritype_e  show,
const cace_ari_type_t  val,
const cace_ari_idseg_t idseg 
)
static

◆ cace_ari_text_encode_execset()

◆ cace_ari_text_encode_idseg()

static bool cace_ari_text_encode_idseg ( m_string_t  text,
const cace_ari_idseg_t obj 
)
static

◆ cace_ari_text_encode_lit()

static int cace_ari_text_encode_lit ( cace_ari_text_enc_state_t state,
const cace_ari_lit_t obj,
const cace_ari_t ari 
)
static

References cace_ari_lit_t::ari_type, cace_ari_prim_val_u::as_ac, cace_ari_prim_val_u::as_am, cace_ari_prim_val_u::as_bool, cace_ari_prim_val_u::as_data, cace_ari_prim_val_u::as_execset, cace_ari_prim_val_u::as_float64, cace_ari_prim_val_u::as_int64, cace_ari_prim_val_u::as_rptset, cace_ari_prim_val_u::as_tbl, cace_ari_prim_val_u::as_timespec, cace_ari_prim_val_u::as_uint64, cace_ari_text_enc_opts_t::bstr_form, cace_ari_float64_encode(), CACE_ARI_PRIM_BOOL, CACE_ARI_PRIM_BSTR, CACE_ARI_PRIM_FLOAT64, CACE_ARI_PRIM_INT64, CACE_ARI_PRIM_NULL, CACE_ARI_PRIM_OTHER, CACE_ARI_PRIM_TIMESPEC, CACE_ARI_PRIM_TSTR, CACE_ARI_PRIM_UINT64, CACE_ARI_PRIM_UNDEFINED, CACE_ARI_TEXT_BSTR_BASE16, CACE_ARI_TEXT_BSTR_BASE64URL, CACE_ARI_TEXT_BSTR_RAW, cace_ari_text_encode_ac(), cace_ari_text_encode_am(), cace_ari_text_encode_aritype(), cace_ari_text_encode_execset(), cace_ari_text_encode_prefix(), cace_ari_text_encode_rptset(), cace_ari_text_encode_tbl(), cace_ari_text_is_identity(), cace_ari_text_percent_helper(), CACE_ARI_TYPE_AC, CACE_ARI_TYPE_AM, CACE_ARI_TYPE_EXECSET, CACE_ARI_TYPE_RPTSET, CACE_ARI_TYPE_TBL, CACE_ARI_TYPE_TD, CACE_ARI_TYPE_TP, cace_ari_uint64_encode(), cace_base16_encode(), cace_base64_encode(), cace_data_append_byte(), cace_data_deinit(), cace_data_init_set(), cace_data_is_utf8(), cace_decfrac_encode(), cace_slash_escape(), cace_timeperiod_encode(), cace_utctime_encode(), cace_ari_text_enc_opts_t::float_form, cace_ari_lit_t::has_ari_type, cace_ari_text_enc_opts_t::int_base, cace_ari_text_enc_state_t::opts, cace_ari_text_enc_state_t::out, cace_ari_lit_t::prim_type, cace_data_t::ptr, cace_ari_text_enc_opts_t::show_ari_type, cace_ari_text_enc_opts_t::text_identity, cace_ari_text_enc_opts_t::time_text, and cace_ari_lit_t::value.

Referenced by cace_ari_text_encode_stream().

◆ cace_ari_text_encode_objpath()

◆ cace_ari_text_encode_objref()

◆ cace_ari_text_encode_prefix()

◆ cace_ari_text_encode_report()

◆ cace_ari_text_encode_rptset()

◆ cace_ari_text_encode_stream()

◆ cace_ari_text_encode_tbl()

◆ cace_ari_text_percent_helper()

static int cace_ari_text_percent_helper ( m_string_t  out,
m_string_t  buf 
)
static

Perform percent encoding from a temporary buffer.

Parameters
[out]outThe text to append to.
[in,out]bufThe buffer to move from and clear.

References cace_data_init_view(), cace_uri_percent_encode(), and uri_safe.

Referenced by cace_ari_text_encode_lit().

Variable Documentation

◆ uri_safe

const char uri_safe[] = "'"
static

Additional safe characters for ARI text and byte strings as defined in Section 4.1 of [ietf-dtn-ari-00].

Referenced by cace_ari_text_percent_helper().