35# define ANJ_COAP_CODE_CLASS_MASK 0xE0
36# define ANJ_COAP_CODE_CLASS_SHIFT 5
37# define ANJ_COAP_CODE_DETAIL_MASK 0x1F
38# define ANJ_COAP_CODE_DETAIL_SHIFT 0
40# define ANJ_COAP_CODE(cls, detail) \
41 ((((cls) << ANJ_COAP_CODE_CLASS_SHIFT) & ANJ_COAP_CODE_CLASS_MASK) \
42 | (((detail) << ANJ_COAP_CODE_DETAIL_SHIFT) \
43 & ANJ_COAP_CODE_DETAIL_MASK))
55#define ANJ_COAP_CODE_EMPTY ANJ_COAP_CODE(0, 0)
57#define ANJ_COAP_CODE_GET ANJ_COAP_CODE(0, 1)
58#define ANJ_COAP_CODE_POST ANJ_COAP_CODE(0, 2)
59#define ANJ_COAP_CODE_PUT ANJ_COAP_CODE(0, 3)
60#define ANJ_COAP_CODE_DELETE ANJ_COAP_CODE(0, 4)
61#define ANJ_COAP_CODE_FETCH ANJ_COAP_CODE(0, 5)
62#define ANJ_COAP_CODE_PATCH ANJ_COAP_CODE(0, 6)
63#define ANJ_COAP_CODE_IPATCH ANJ_COAP_CODE(0, 7)
65#define ANJ_COAP_CODE_CREATED ANJ_COAP_CODE(2, 1)
66#define ANJ_COAP_CODE_DELETED ANJ_COAP_CODE(2, 2)
67#define ANJ_COAP_CODE_VALID ANJ_COAP_CODE(2, 3)
68#define ANJ_COAP_CODE_CHANGED ANJ_COAP_CODE(2, 4)
69#define ANJ_COAP_CODE_CONTENT ANJ_COAP_CODE(2, 5)
70#define ANJ_COAP_CODE_CONTINUE ANJ_COAP_CODE(2, 31)
72#define ANJ_COAP_CODE_BAD_REQUEST ANJ_COAP_CODE(4, 0)
73#define ANJ_COAP_CODE_UNAUTHORIZED ANJ_COAP_CODE(4, 1)
74#define ANJ_COAP_CODE_BAD_OPTION ANJ_COAP_CODE(4, 2)
75#define ANJ_COAP_CODE_FORBIDDEN ANJ_COAP_CODE(4, 3)
76#define ANJ_COAP_CODE_NOT_FOUND ANJ_COAP_CODE(4, 4)
77#define ANJ_COAP_CODE_METHOD_NOT_ALLOWED ANJ_COAP_CODE(4, 5)
78#define ANJ_COAP_CODE_NOT_ACCEPTABLE ANJ_COAP_CODE(4, 6)
79#define ANJ_COAP_CODE_REQUEST_ENTITY_INCOMPLETE ANJ_COAP_CODE(4, 8)
80#define ANJ_COAP_CODE_PRECONDITION_FAILED ANJ_COAP_CODE(4, 12)
81#define ANJ_COAP_CODE_REQUEST_ENTITY_TOO_LARGE ANJ_COAP_CODE(4, 13)
82#define ANJ_COAP_CODE_UNSUPPORTED_CONTENT_FORMAT ANJ_COAP_CODE(4, 15)
84#define ANJ_COAP_CODE_INTERNAL_SERVER_ERROR ANJ_COAP_CODE(5, 0)
85#define ANJ_COAP_CODE_NOT_IMPLEMENTED ANJ_COAP_CODE(5, 1)
86#define ANJ_COAP_CODE_BAD_GATEWAY ANJ_COAP_CODE(5, 2)
87#define ANJ_COAP_CODE_SERVICE_UNAVAILABLE ANJ_COAP_CODE(5, 3)
88#define ANJ_COAP_CODE_GATEWAY_TIMEOUT ANJ_COAP_CODE(5, 4)
89#define ANJ_COAP_CODE_PROXYING_NOT_SUPPORTED ANJ_COAP_CODE(5, 5)
91#define ANJ_COAP_CODE_CSM ANJ_COAP_CODE(7, 1)
92#define ANJ_COAP_CODE_PING ANJ_COAP_CODE(7, 2)
93#define ANJ_COAP_CODE_PONG ANJ_COAP_CODE(7, 3)
94#define ANJ_COAP_CODE_RELEASE ANJ_COAP_CODE(7, 4)
95#define ANJ_COAP_CODE_ABORT ANJ_COAP_CODE(7, 5)
101# define ANJ_OBJ_ID_SECURITY 0U
102# define ANJ_OBJ_ID_SERVER 1U
103# define ANJ_OBJ_ID_ACCESS_CONTROL 2U
104# define ANJ_OBJ_ID_DEVICE 3U
105# define ANJ_OBJ_ID_FIRMWARE_UPDATE 5U
106# define ANJ_OBJ_ID_OSCORE 21U
109# define ANJ_I64_STR_MAX_LEN (sizeof("-9223372036854775808") - 1)
110# define ANJ_U16_STR_MAX_LEN (sizeof("65535") - 1)
111# define ANJ_U32_STR_MAX_LEN (sizeof("4294967295") - 1)
112# define ANJ_U64_STR_MAX_LEN (sizeof("18446744073709551615") - 1)
113# define ANJ_DOUBLE_STR_MAX_LEN (sizeof("-2.2250738585072014E-308") - 1)
115# define ANJ_ATTR_UINT_NONE (UINT32_MAX)
116# define ANJ_ATTR_DOUBLE_NONE (NAN)
122# define ANJ_IO_NEED_NEXT_CALL 4
138# ifdef ANJ_WITH_COAP_DOWNLOADER
147# define ANJ_SERVER_URI_MAX_SIZE 256
154# define ANJ_DISABLE_TIMEOUT_DEFAULT_VALUE 86400
159# define ANJ_COMMUNICATION_RETRY_RES_DEFAULT \
160 (anj_communication_retry_res_t) { \
163 .seq_delay_timer = 24 * 60 * 60, \
164 .seq_retry_count = 1 \
171# define ANJ_EXCHANGE_SERVER_REQUEST_TIMEOUT \
172 anj_time_duration_new(50, ANJ_TIME_UNIT_S)
177# define ANJ_EXCHANGE_UDP_TX_PARAMS_DEFAULT \
178 (anj_exchange_udp_tx_params_t) { \
179 .ack_timeout = anj_time_duration_new(2, ANJ_TIME_UNIT_S), \
180 .ack_random_factor = 1.5, \
181 .max_retransmit = 4 \
296# define ANJ_DATA_TYPE_NULL ((anj_data_type_t) 0)
303# define ANJ_DATA_TYPE_BYTES ((anj_data_type_t) (1 << 0))
313# define ANJ_DATA_TYPE_STRING ((anj_data_type_t) (1 << 1))
320# define ANJ_DATA_TYPE_INT ((anj_data_type_t) (1 << 2))
327# define ANJ_DATA_TYPE_DOUBLE ((anj_data_type_t) (1 << 3))
334# define ANJ_DATA_TYPE_BOOL ((anj_data_type_t) (1 << 4))
341# define ANJ_DATA_TYPE_OBJLNK ((anj_data_type_t) (1 << 5))
348# define ANJ_DATA_TYPE_UINT ((anj_data_type_t) (1 << 6))
355# define ANJ_DATA_TYPE_TIME ((anj_data_type_t) (1 << 7))
363# define ANJ_DATA_TYPE_ANY \
364 ((anj_data_type_t) (ANJ_DATA_TYPE_BYTES | ANJ_DATA_TYPE_STRING \
365 | ANJ_DATA_TYPE_INT | ANJ_DATA_TYPE_DOUBLE \
366 | ANJ_DATA_TYPE_BOOL | ANJ_DATA_TYPE_OBJLNK \
367 | ANJ_DATA_TYPE_UINT | ANJ_DATA_TYPE_TIME))
369# ifdef ANJ_WITH_EXTERNAL_DATA
390# define ANJ_DATA_TYPE_FLAG_EXTERNAL ((anj_data_type_t) (1 << 15))
398# define ANJ_DATA_TYPE_EXTERNAL_BYTES \
399 ((anj_data_type_t) (ANJ_DATA_TYPE_BYTES \
400 | ANJ_DATA_TYPE_FLAG_EXTERNAL))
408# define ANJ_DATA_TYPE_EXTERNAL_STRING \
409 ((anj_data_type_t) (ANJ_DATA_TYPE_STRING \
410 | ANJ_DATA_TYPE_FLAG_EXTERNAL))
544# ifdef ANJ_WITH_EXTERNAL_DATA
struct anj_struct anj_t
Definition defs.h:136
anj_id_type_t
Definition defs.h:238
@ ANJ_ID_RID
Definition defs.h:241
@ ANJ_URI_PATH_MAX_LENGTH
Definition defs.h:243
@ ANJ_ID_RIID
Definition defs.h:242
@ ANJ_ID_IID
Definition defs.h:240
@ ANJ_ID_OID
Definition defs.h:239
uint16_t anj_riid_t
Definition defs.h:134
void anj_close_external_data_t(void *user_args)
Definition defs.h:470
int anj_open_external_data_t(void *user_args)
Definition defs.h:459
struct anj_coap_downloader_struct anj_coap_downloader_t
Definition defs.h:139
uint16_t anj_rid_t
Definition defs.h:131
struct anj_io_out_entry_struct anj_io_out_entry_t
uint16_t anj_iid_t
Definition defs.h:128
uint16_t anj_oid_t
Definition defs.h:125
int anj_get_external_data_t(void *buffer, size_t *inout_size, size_t offset, void *user_args)
Definition defs.h:441
uint16_t anj_data_type_t
Definition defs.h:280
Global configuration validation header for Anjay Lite.
const void * data
Definition defs.h:486
size_t full_length_hint
Definition defs.h:519
size_t offset
Definition defs.h:496
size_t chunk_length
Definition defs.h:506
uint16_t seq_retry_count
Definition defs.h:198
uint16_t retry_count
Definition defs.h:187
uint32_t seq_delay_timer
Definition defs.h:195
uint32_t retry_timer
Definition defs.h:190
anj_time_duration_t ack_timeout
Definition defs.h:217
uint16_t max_retransmit
Definition defs.h:223
double ack_random_factor
Definition defs.h:220
double timestamp
Definition defs.h:620
anj_data_type_t type
Definition defs.h:593
anj_uri_path_t path
Definition defs.h:599
anj_res_value_t value
Definition defs.h:596
anj_iid_t iid
Definition defs.h:530
anj_oid_t oid
Definition defs.h:527
Relative duration of time.
Definition time.h:106
size_t uri_len
Definition defs.h:262
Strongly-typed time utilities used across Anjay Lite.
anj_open_external_data_t * open_external_data
Definition defs.h:558
uint64_t uint_value
Definition defs.h:573
int64_t time_value
Definition defs.h:585
anj_close_external_data_t * close_external_data
Definition defs.h:562
anj_get_external_data_t * get_external_data
Definition defs.h:554
double double_value
Definition defs.h:576
int64_t int_value
Definition defs.h:570
void * user_args
Definition defs.h:565
bool bool_value
Definition defs.h:579
anj_bytes_or_string_value_t bytes_or_string
Definition defs.h:542
anj_objlnk_value_t objlnk
Definition defs.h:582