9 #ifndef __AFW_UBJSON_H__
10 #define __AFW_UBJSON_H__
31 #define AFW_ERROR_RV_SOURCE_ID_Z_ubjson_marker "ubjson_marker"
33 #define AFW_UBJSON_Q_CONTENT_TYPE "application/ubjson"
34 #define AFW_UBJSON_S_CONTENT_TYPE afw_s_a_application_ubjson
35 #define AFW_UBJSON_Q_CONTENT_TYPE_SHORT "ubjson"
36 #define AFW_UBJSON_S_CONTENT_TYPE_SHORT afw_s_ubjson
48 AFW_UBJSON_VALUE_TYPE_NULL,
49 AFW_UBJSON_VALUE_TYPE_NOOP,
50 AFW_UBJSON_VALUE_TYPE_TRUE,
51 AFW_UBJSON_VALUE_TYPE_FALSE,
52 AFW_UBJSON_VALUE_TYPE_INT8,
53 AFW_UBJSON_VALUE_TYPE_UINT8,
54 AFW_UBJSON_VALUE_TYPE_INT16,
55 AFW_UBJSON_VALUE_TYPE_INT32,
56 AFW_UBJSON_VALUE_TYPE_INT64,
57 AFW_UBJSON_VALUE_TYPE_FLOAT32,
58 AFW_UBJSON_VALUE_TYPE_FLOAT64,
59 AFW_UBJSON_VALUE_TYPE_HIGH_PRECISION,
60 AFW_UBJSON_VALUE_TYPE_CHAR,
61 AFW_UBJSON_VALUE_TYPE_STRING
62 } AFW_UBJSON_VALUE_TYPE;
65 AFW_UBJSON_CONTAINER_TYPE_ARRAY,
66 AFW_UBJSON_CONTAINER_TYPE_OBJECT
67 } AFW_UBJSON_CONTAINER_TYPE;
71 extern const int AFW_UBJSON_SIZE[];
74 #define AFW_UBJSON_MARKER_NULL 'Z'
75 #define AFW_UBJSON_MARKER_NOOP 'N'
76 #define AFW_UBJSON_MARKER_TRUE 'T'
77 #define AFW_UBJSON_MARKER_FALSE 'F'
78 #define AFW_UBJSON_MARKER_INT8 'i'
79 #define AFW_UBJSON_MARKER_UINT8 'U'
80 #define AFW_UBJSON_MARKER_INT16 'I'
81 #define AFW_UBJSON_MARKER_INT32 'l'
82 #define AFW_UBJSON_MARKER_INT64 'L'
83 #define AFW_UBJSON_MARKER_FLOAT32 'd'
84 #define AFW_UBJSON_MARKER_FLOAT64 'D'
85 #define AFW_UBJSON_MARKER_HIGH_PRECISION 'H'
86 #define AFW_UBJSON_MARKER_CHAR 'C'
87 #define AFW_UBJSON_MARKER_STRING 'S'
88 #define AFW_UBJSON_MARKER_ARRAY '['
89 #define AFW_UBJSON_MARKER_ARRAY_ ']'
90 #define AFW_UBJSON_MARKER_OBJECT '{'
91 #define AFW_UBJSON_MARKER_OBJECT_ '}'
92 #define AFW_UBJSON_MARKER_TYPE '$'
93 #define AFW_UBJSON_MARKER_COUNT '#'
95 #define AFW_UBJSON_BYTES_CHAR 1
96 #define AFW_UBJSON_BYTES_INT8 1
97 #define AFW_UBJSON_BYTES_UINT8 1
98 #define AFW_UBJSON_BYTES_INT16 2
99 #define AFW_UBJSON_BYTES_INT32 4
100 #define AFW_UBJSON_BYTES_INT64 8
101 #define AFW_UBJSON_BYTES_FLOAT32 4
102 #define AFW_UBJSON_BYTES_FLOAT64 8
#define AFW_BEGIN_DECLARES
Adaptive Framework Minimal Header.
const afw_utf8_t * afw_ubjson_from_error(afw_xctx_t *xctx)
Convert error from xctx to a UBJSON object.
const afw_memory_t * afw_ubjson_from_value(const afw_value_t *value, const afw_pool_t *pool, afw_xctx_t *xctx)
Convert an adaptive value to UBJSON.
const afw_object_t * afw_ubjson_to_object(const afw_memory_t *ubjson, const afw_utf8_t *source_location, const afw_utf8_t *adaptor_id, const afw_utf8_t *object_type_id, const afw_utf8_t *object_id, afw_boolean_t cede_p, const afw_pool_t *p, afw_xctx_t *xctx)
Convert from UBJSON to adaptive object.
const afw_value_t * afw_ubjson_to_value(const afw_memory_t *ubjson, const afw_utf8_t *path, const afw_pool_t *pool, afw_xctx_t *xctx)
Convert UBJSON to an adaptive value.
Struct for memory pointer and size.
Interface afw_object public struct.
Interface afw_pool public struct.
NFC normalized UTF-8 string.
Interface afw_value public struct.
Interface afw_xctx public struct.