DTNMA Reference Tools v2.0.0 - 9.gaff6489
Delay-Tolerant Networking Management Architecture (DTNMA) Tool Suite
Loading...
Searching...
No Matches
text.h File Reference

This file contains definitions for ARI text CODEC functions. More...

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

Data Structures

struct  cace_ari_text_enc_opts_t
 Parameters for ARI text encoding. More...
 

Macros

#define CACE_ARI_TEXT_ENC_OPTS_DEFAULT
 

Enumerations

enum  cace_ari_text_scheme_prefix_e { CACE_ARI_TEXT_SCHEME_NONE , CACE_ARI_TEXT_SCHEME_FIRST , CACE_ARI_TEXT_SCHEME_ALL }
 Options for URI scheme presence. More...
 
enum  cace_ari_text_aritype_e { CACE_ARI_TEXT_ARITYPE_ORIG , CACE_ARI_TEXT_ARITYPE_TEXT , CACE_ARI_TEXT_ARITYPE_INT }
 Options for encoding ARITYPE values. More...
 
enum  cace_ari_int_base_e { CACE_ARI_TEXT_INT_BASE2 = 2 , CACE_ARI_TEXT_INT_BASE10 = 10 , CACE_ARI_TEXT_INT_BASE16 = 16 }
 Options for encoding integer bases. More...
 
enum  cace_ari_bstr_form_e { CACE_ARI_TEXT_BSTR_RAW , CACE_ARI_TEXT_BSTR_BASE16 , CACE_ARI_TEXT_BSTR_BASE64URL }
 Options for encoding byte strings. More...
 

Functions

int cace_ari_text_encode_objpath (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.
 
int cace_ari_text_encode (string_t text, const cace_ari_t *ari, cace_ari_text_enc_opts_t opts)
 Encode an ARI to text form.
 
int cace_ari_text_decode (cace_ari_t *ari, const string_t text, char **errm)
 Decode an ARI from text form.
 

Detailed Description

This file contains definitions for ARI text CODEC functions.

Macro Definition Documentation

◆ CACE_ARI_TEXT_ENC_OPTS_DEFAULT

#define CACE_ARI_TEXT_ENC_OPTS_DEFAULT
Value:
{ \
.scheme_prefix = CACE_ARI_TEXT_SCHEME_FIRST, .show_ari_type = CACE_ARI_TEXT_ARITYPE_TEXT, \
.int_base = CACE_ARI_TEXT_INT_BASE10, .float_form = 'g', .text_identity = true, \
.bstr_form = CACE_ARI_TEXT_BSTR_BASE16, .time_text = true, \
}
Parameters for ARI text encoding.
Definition text.h:87
@ CACE_ARI_TEXT_INT_BASE10
Decimal.
Definition text.h:64
@ CACE_ARI_TEXT_SCHEME_FIRST
Prefix only the outer-most value.
Definition text.h:42
@ CACE_ARI_TEXT_BSTR_BASE16
Base16 according to Section 8 of RFC 4648 .
Definition text.h:74
@ CACE_ARI_TEXT_ARITYPE_TEXT
Always show the text name.
Definition text.h:53

Enumeration Type Documentation

◆ cace_ari_bstr_form_e

Options for encoding byte strings.

Enumerator
CACE_ARI_TEXT_BSTR_RAW 

Attempt to output as text.

CACE_ARI_TEXT_BSTR_BASE16 

Base16 according to Section 8 of RFC 4648 [10].

◆ cace_ari_int_base_e

Options for encoding integer bases.

Enumerator
CACE_ARI_TEXT_INT_BASE2 

Binary with 0b prefix.

CACE_ARI_TEXT_INT_BASE10 

Decimal.

CACE_ARI_TEXT_INT_BASE16 

Hexadecimal with 0x prefix.

◆ cace_ari_text_aritype_e

Options for encoding ARITYPE values.

Enumerator
CACE_ARI_TEXT_ARITYPE_ORIG 

Show whatever the original decoding was.

CACE_ARI_TEXT_ARITYPE_TEXT 

Always show the text name.

CACE_ARI_TEXT_ARITYPE_INT 

Always show the integer enumeration.

◆ cace_ari_text_scheme_prefix_e

Options for URI scheme presence.

Enumerator
CACE_ARI_TEXT_SCHEME_NONE 

Never prefix with a scheme.

CACE_ARI_TEXT_SCHEME_FIRST 

Prefix only the outer-most value.

CACE_ARI_TEXT_SCHEME_ALL 

Prefix all values, including container contents.

Function Documentation

◆ cace_ari_text_decode()

int cace_ari_text_decode ( cace_ari_t ari,
const string_t  text,
char **  errm 
)

Decode an ARI from text form.

Parameters
[out]ariThe struct to decode into.
textA null-terminated UTF-8 text string.
[out]errmIf non-null, this will be set to a specific error message associated with any failure. When the return code is non-zero, if the pointed-to pointer is non-null it must be freed using CACE_FREE().
Returns
Zero upon success.

◆ cace_ari_text_encode()

int cace_ari_text_encode ( 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(), CHKERR1, cace_ari_text_enc_state_t::depth, and cace_ari_text_enc_state_t::out.

Referenced by 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_text_encode(), check_encode(), and refdm_db_insert_rptset().