Loading...
Searching...
No Matches
generated.h
1/*
2 * SPDX-FileCopyrightText: 2024-2026 Carl Seifert
3 * SPDX-FileCopyrightText: 2024-2026 TU Dresden
4 * SPDX-License-Identifier: LGPL-2.1-only
5 */
6
7#pragma once
8
9#include <stdint.h>
10#include <stdbool.h>
11#include <string.h>
12#include <assert.h>
13#include <errno.h>
14#include <sys/types.h>
15
16#include "byteorder.h"
17
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
25/* MARK: - Predefined Options - */
26
33
34/* =============================================================================
35 * ======= THIS SECTION HAS BEEN GENERATED =====================================
36 * ======= BY sys/net/application_layer/unicoap/iana/optionaccessors.js ========
37 * ======= DO NOT MODIFY MANUALLY! =============================================
38 * ============================================================================= */
39
40/* MARK: - Uri-Host */
45
57static inline ssize_t unicoap_options_get_uri_host(
58 const unicoap_options_t* options,
59 const char** host
60) {
61 return unicoap_options_get(options, UNICOAP_OPTION_URI_HOST, (const uint8_t**)host);
62} /* generated by 'getterUTF8' template */
63
79static inline ssize_t unicoap_options_set_uri_host(
80 unicoap_options_t* options,
81 char* host, size_t length
82) {
83 assert(length > 0 && length <= 255);
84 return unicoap_options_set(options, UNICOAP_OPTION_URI_HOST, (uint8_t*)host, length);
85} /* generated by 'setterUTF8' template */
86
104 unicoap_options_t* options,
105 char* host
106) {
107 return unicoap_options_set_uri_host(options, host, strlen(host));
108} /* generated by 'setterUTF8NullTerminated' template */
109
119{
121} /* generated by 'remove' template */
122 /* Uri-Host */
123
124/* MARK: - If-None-Match */
129
140static inline bool unicoap_options_get_if_none_match(const unicoap_options_t* options)
141{
143} /* generated by 'getterBool' template */
144
156 unicoap_options_t* options,
157 bool value
158) {
159 if (value) {
161 }
162 else {
163 return unicoap_options_set(options, UNICOAP_OPTION_IF_NONE_MATCH, NULL, 0);
164 }
165} /* generated by 'setter' template */
166 /* If-None-Match */
167
168/* MARK: - Uri-Port */
173
185static inline ssize_t unicoap_options_get_uri_port(
186 const unicoap_options_t* options,
187 uint16_t* port
188) {
190} /* generated by 'getter' template */
191
202static inline ssize_t unicoap_options_set_uri_port(
203 unicoap_options_t* options,
204 uint16_t port
205) {
206 return unicoap_options_set_uint(options, UNICOAP_OPTION_URI_PORT, (uint32_t)port);
207} /* generated by 'setter' template */
208
218{
220} /* generated by 'remove' template */
221 /* Uri-Port */
222
223/* MARK: - Content-Format */
228
241 const unicoap_options_t* options,
243) {
244 return unicoap_options_get_uint16(options, UNICOAP_OPTION_CONTENT_FORMAT, (uint16_t*)format);
245} /* generated by 'getter' template */
246
258 unicoap_options_t* options,
260) {
261 return unicoap_options_set_uint(options, UNICOAP_OPTION_CONTENT_FORMAT, (uint32_t)format);
262} /* generated by 'setter' template */
263
273{
275} /* generated by 'remove' template */
276 /* Content-Format */
277
278/* MARK: - Max-Age */
283
295static inline ssize_t unicoap_options_get_max_age(
296 const unicoap_options_t* options,
297 uint32_t* age
298) {
300} /* generated by 'getter' template */
301
312static inline ssize_t unicoap_options_set_max_age(
313 unicoap_options_t* options,
314 uint32_t age
315) {
317} /* generated by 'setter' template */
318
328{
330} /* generated by 'remove' template */
331 /* Max-Age */
332
333/* MARK: - Accept */
338
350static inline ssize_t unicoap_options_get_accept(
351 const unicoap_options_t* options,
353) {
354 return unicoap_options_get_uint16(options, UNICOAP_OPTION_ACCEPT, (uint16_t*)format);
355} /* generated by 'getter' template */
356
367static inline ssize_t unicoap_options_set_accept(
368 unicoap_options_t* options,
370) {
371 return unicoap_options_set_uint(options, UNICOAP_OPTION_ACCEPT, (uint32_t)format);
372} /* generated by 'setter' template */
373
383{
385} /* generated by 'remove' template */
386 /* Accept */
387
388/* MARK: - Proxy-Scheme */
393
406 const unicoap_options_t* options,
407 const char** scheme
408) {
409 return unicoap_options_get(options, UNICOAP_OPTION_PROXY_SCHEME, (const uint8_t**)scheme);
410} /* generated by 'getterUTF8' template */
411
426 unicoap_options_t* options,
427 char* scheme, size_t length
428) {
429 return unicoap_options_set(options, UNICOAP_OPTION_PROXY_SCHEME, (uint8_t*)scheme, length);
430} /* generated by 'setterUTF8' template */
431
447 unicoap_options_t* options,
448 char* scheme
449) {
450 return unicoap_options_set_proxy_scheme(options, scheme, strlen(scheme));
451} /* generated by 'setterUTF8NullTerminated' template */
452
462{
464} /* generated by 'remove' template */
465 /* Proxy-Scheme */
466
467/* MARK: - Proxy-Uri */
472
484static inline ssize_t unicoap_options_get_proxy_uri(
485 const unicoap_options_t* options,
486 const char** uri
487) {
488 return unicoap_options_get(options, UNICOAP_OPTION_PROXY_URI, (const uint8_t**)uri);
489} /* generated by 'getterUTF8' template */
490
506static inline ssize_t unicoap_options_set_proxy_uri(
507 unicoap_options_t* options,
508 char* uri, size_t length
509) {
510 assert(length > 0 && length <= 1034);
511 return unicoap_options_set(options, UNICOAP_OPTION_PROXY_URI, (uint8_t*)uri, length);
512} /* generated by 'setterUTF8' template */
513
531 unicoap_options_t* options,
532 char* uri
533) {
534 return unicoap_options_set_proxy_uri(options, uri, strlen(uri));
535} /* generated by 'setterUTF8NullTerminated' template */
536
546{
548} /* generated by 'remove' template */
549 /* Proxy-Uri */
550
551/* MARK: - No-Response */
556
569 const unicoap_options_t* options,
570 uint8_t* value
571) {
573} /* generated by 'getter' template */
574
586 unicoap_options_t* options,
587 uint8_t value
588) {
589 return unicoap_options_set_uint(options, UNICOAP_OPTION_NO_RESPONSE, (uint32_t)value);
590} /* generated by 'setter' template */
591
601{
603} /* generated by 'remove' template */
604 /* No-Response */
605
606/* MARK: - If-Match */
611
624 const unicoap_options_t* options,
625 const uint8_t** value
626) {
627 return unicoap_options_get(options, UNICOAP_OPTION_IF_MATCH, value);
628} /* generated by 'getter' template */
629
645 const uint8_t** value
646) {
648} /* generated by 'getterNext' template */
649
663static inline ssize_t unicoap_options_add_if_match(
664 unicoap_options_t* options,
665 uint8_t* value, size_t size
666) {
667 assert(size <= 8);
668 return unicoap_options_add(options, UNICOAP_OPTION_IF_MATCH, value, size);
669} /* generated by 'setterBytes' template */
670
680{
682} /* generated by 'removeAll' template */
683 /* If-Match */
684
685/* MARK: - ETag */
690
702static inline ssize_t unicoap_options_get_first_etag(
703 const unicoap_options_t* options,
704 const uint8_t** etag
705) {
706 return unicoap_options_get(options, UNICOAP_OPTION_ETAG, etag);
707} /* generated by 'getter' template */
708
722static inline ssize_t unicoap_options_get_next_etag(
724 const uint8_t** etag
725) {
727} /* generated by 'getterNext' template */
728
743static inline ssize_t unicoap_options_add_etag(
744 unicoap_options_t* options,
745 uint8_t* etag, size_t size
746) {
747 assert(size > 0 && size <= 8);
748 return unicoap_options_add(options, UNICOAP_OPTION_ETAG, etag, size);
749} /* generated by 'setterBytes' template */
750
760{
762} /* generated by 'removeAll' template */
763 /* ETag */
764
765/* MARK: - Location-Path */
770
783 const unicoap_options_t* options,
784 const char** component
785) {
786 return unicoap_options_get(options, UNICOAP_OPTION_LOCATION_PATH, (const uint8_t**)component);
787} /* generated by 'getterUTF8' template */
788
804 const char** component
805) {
806 return unicoap_options_get_next_by_number(iterator, UNICOAP_OPTION_LOCATION_PATH, (const uint8_t**)component);
807} /* generated by 'getterNext' template */
808
827 const unicoap_options_t* options,
828 char* path,
829 size_t capacity
830) {
831 assert(capacity > 0);
832 *path = '/';
833 path += 1;
834 capacity -= 1;
835 int res = unicoap_options_copy_values_joined(options, UNICOAP_OPTION_LOCATION_PATH, (uint8_t*)path, capacity, '/');
836 return res < 0 ? res : res + 1;
837} /* generated by 'getterCopyUTF8Joined' template */
838
853 unicoap_options_t* options,
854 char* component, size_t length
855) {
856 return unicoap_options_add(options, UNICOAP_OPTION_LOCATION_PATH, (uint8_t*)component, length);
857} /* generated by 'setterUTF8' template */
858
874 unicoap_options_t* options,
875 char* component
876) {
877 return unicoap_options_add_location_path_component(options, component, strlen(component));
878} /* generated by 'setterUTF8NullTerminated' template */
879
894 unicoap_options_t* options,
895 char* path, size_t length
896) {
897 return unicoap_options_add_values_joined(options, UNICOAP_OPTION_LOCATION_PATH, (uint8_t*)path, length, '/');
898} /* generated by 'setterUTF8Joined' template */
899
916 unicoap_options_t* options,
917 char* path
918) {
919 return unicoap_options_add_location_path(options, path, strlen(path));
920} /* generated by 'setterUTF8JoinedNullTerminated' template */
921
931{
933} /* generated by 'removeAll' template */
934 /* Location-Path */
935
936/* MARK: - Uri-Path */
941
954 const unicoap_options_t* options,
955 const char** component
956) {
957 return unicoap_options_get(options, UNICOAP_OPTION_URI_PATH, (const uint8_t**)component);
958} /* generated by 'getterUTF8' template */
959
975 const char** component
976) {
977 return unicoap_options_get_next_by_number(iterator, UNICOAP_OPTION_URI_PATH, (const uint8_t**)component);
978} /* generated by 'getterNext' template */
979
997static inline ssize_t unicoap_options_copy_uri_path(
998 const unicoap_options_t* options,
999 char* path,
1000 size_t capacity
1001) {
1002 assert(capacity > 0);
1003 *path = '/';
1004 path += 1;
1005 capacity -= 1;
1006 int res = unicoap_options_copy_values_joined(options, UNICOAP_OPTION_URI_PATH, (uint8_t*)path, capacity, '/');
1007 return res < 0 ? res : res + 1;
1008} /* generated by 'getterCopyUTF8Joined' template */
1009
1025 unicoap_options_t* options,
1026 char* component, size_t length
1027) {
1028 assert(length <= 255);
1029 return unicoap_options_add(options, UNICOAP_OPTION_URI_PATH, (uint8_t*)component, length);
1030} /* generated by 'setterUTF8' template */
1031
1048 unicoap_options_t* options,
1049 char* component
1050) {
1051 return unicoap_options_add_uri_path_component(options, component, strlen(component));
1052} /* generated by 'setterUTF8NullTerminated' template */
1053
1068static inline ssize_t unicoap_options_add_uri_path(
1069 unicoap_options_t* options,
1070 char* path, size_t length
1071) {
1072 return unicoap_options_add_values_joined(options, UNICOAP_OPTION_URI_PATH, (uint8_t*)path, length, '/');
1073} /* generated by 'setterUTF8Joined' template */
1074
1092 unicoap_options_t* options,
1093 char* path
1094) {
1095 return unicoap_options_add_uri_path(options, path, strlen(path));
1096} /* generated by 'setterUTF8JoinedNullTerminated' template */
1097
1107{
1109} /* generated by 'removeAll' template */
1110 /* Uri-Path */
1111
1112/* MARK: - Uri-Query */
1117
1130 const unicoap_options_t* options,
1131 const char** query
1132) {
1133 return unicoap_options_get(options, UNICOAP_OPTION_URI_QUERY, (const uint8_t**)query);
1134} /* generated by 'getterUTF8' template */
1135
1151 const char** query
1152) {
1153 return unicoap_options_get_next_by_number(iterator, UNICOAP_OPTION_URI_QUERY, (const uint8_t**)query);
1154} /* generated by 'getterNext' template */
1155
1173 const char* name,
1174 size_t length,
1175 const char** value
1176) {
1178 name, length, value);
1179} /* generated by 'getterNextQueryByName' template */
1180
1197 const char* name,
1198 const char** value
1199) {
1201 name, value);
1202} /* generated by 'getterNextQueryByName' template */
1203
1225 unicoap_options_t* options,
1226 const char* name,
1227 size_t length,
1228 const char** value
1229) {
1231 unicoap_options_iterator_init(&iterator, options);
1232 return unicoap_options_get_next_uri_query_by_name(&iterator,
1233 name, length, value);
1234} /* generated by 'getterQueryByName' template */
1235
1256 unicoap_options_t* options,
1257 const char* name,
1258 const char** value
1259) {
1261 unicoap_options_iterator_init(&iterator, options);
1262 return unicoap_options_get_next_uri_query_by_name_string(&iterator,
1263 name, value);
1264} /* generated by 'getterQueryByName' template */
1265
1282 const unicoap_options_t* options,
1283 char* queries,
1284 size_t capacity
1285) {
1287 (uint8_t*)queries, capacity, '&');
1288} /* generated by 'getterCopyUTF8Joined' template */
1289
1304static inline ssize_t unicoap_options_add_uri_query(
1305 unicoap_options_t* options,
1306 char* query, size_t length
1307) {
1308 assert(length <= 255);
1309 return unicoap_options_add(options, UNICOAP_OPTION_URI_QUERY, (uint8_t*)query, length);
1310} /* generated by 'setterUTF8' template */
1311
1328 unicoap_options_t* options,
1329 char* query
1330) {
1331 return unicoap_options_add_uri_query(options, query, strlen(query));
1332} /* generated by 'setterUTF8NullTerminated' template */
1333
1349 unicoap_options_t* options,
1350 char* queries, size_t length
1351) {
1352 return unicoap_options_add_values_joined(options, UNICOAP_OPTION_URI_QUERY, (uint8_t*)queries, length, '&');
1353} /* generated by 'setterUTF8Joined' template */
1354
1372 unicoap_options_t* options,
1373 char* queries
1374) {
1375 return unicoap_options_add_uri_queries(options, queries, strlen(queries));
1376} /* generated by 'setterUTF8JoinedNullTerminated' template */
1377
1387{
1389} /* generated by 'removeAll' template */
1390 /* Uri-Query */
1391
1392/* MARK: - Location-Query */
1397
1410 const unicoap_options_t* options,
1411 const char** query
1412) {
1413 return unicoap_options_get(options, UNICOAP_OPTION_LOCATION_QUERY, (const uint8_t**)query);
1414} /* generated by 'getterUTF8' template */
1415
1431 const char** query
1432) {
1433 return unicoap_options_get_next_by_number(iterator, UNICOAP_OPTION_LOCATION_QUERY, (const uint8_t**)query);
1434} /* generated by 'getterNext' template */
1435
1453 const char* name,
1454 size_t length,
1455 const char** value
1456) {
1458 name, length, value);
1459} /* generated by 'getterNextQueryByName' template */
1460
1477 const char* name,
1478 const char** value
1479) {
1481 name, value);
1482} /* generated by 'getterNextQueryByName' template */
1483
1505 unicoap_options_t* options,
1506 const char* name,
1507 size_t length,
1508 const char** value
1509) {
1511 unicoap_options_iterator_init(&iterator, options);
1512 return unicoap_options_get_next_location_query_by_name(&iterator,
1513 name, length, value);
1514} /* generated by 'getterQueryByName' template */
1515
1536 unicoap_options_t* options,
1537 const char* name,
1538 const char** value
1539) {
1541 unicoap_options_iterator_init(&iterator, options);
1542 return unicoap_options_get_next_location_query_by_name_string(&iterator,
1543 name, value);
1544} /* generated by 'getterQueryByName' template */
1545
1562 const unicoap_options_t* options,
1563 char* queries,
1564 size_t capacity
1565) {
1567 (uint8_t*)queries, capacity, '&');
1568} /* generated by 'getterCopyUTF8Joined' template */
1569
1585 unicoap_options_t* options,
1586 char* query, size_t length
1587) {
1588 assert(length <= 255);
1589 return unicoap_options_add(options, UNICOAP_OPTION_LOCATION_QUERY, (uint8_t*)query, length);
1590} /* generated by 'setterUTF8' template */
1591
1608 unicoap_options_t* options,
1609 char* query
1610) {
1611 return unicoap_options_add_location_query(options, query, strlen(query));
1612} /* generated by 'setterUTF8NullTerminated' template */
1613
1629 unicoap_options_t* options,
1630 char* queries, size_t length
1631) {
1632 return unicoap_options_add_values_joined(options, UNICOAP_OPTION_LOCATION_QUERY, (uint8_t*)queries, length, '&');
1633} /* generated by 'setterUTF8Joined' template */
1634
1652 unicoap_options_t* options,
1653 char* queries
1654) {
1655 return unicoap_options_add_location_queries(options, queries, strlen(queries));
1656} /* generated by 'setterUTF8JoinedNullTerminated' template */
1657
1667{
1669} /* generated by 'removeAll' template */
1670 /* Location-Query */
1671
1672/* MARK: - Observe */
1677
1679#define UNICOAP_OBSERVE_OPTION_REGISTER (0)
1680
1682#define UNICOAP_OBSERVE_OPTION_DEREGISTER (1)
1683
1695static inline ssize_t unicoap_options_get_observe(
1696 const unicoap_options_t* options,
1697 uint32_t* observe
1698) {
1699 return unicoap_options_get_uint24(options, UNICOAP_OPTION_OBSERVE, observe);
1700} /* generated by 'getter' template */
1701
1712static inline ssize_t unicoap_options_set_observe(
1713 unicoap_options_t* options,
1714 uint32_t observe
1715) {
1716 return unicoap_options_set_uint(options, UNICOAP_OPTION_OBSERVE, observe);
1717} /* generated by 'setter' template */
1718
1728{
1730} /* generated by 'remove' template */
1731
1742 /* Observe */
1744
1745/* MARK: - Block-wise Transfers */
1750
1756#define UNICOAP_BLOCK_OPTION_NONE (0x0f000000)
1757
1761typedef uint32_t unicoap_block_option_t;
1762
1775static inline ssize_t unicoap_options_get_block(
1776 const unicoap_options_t* options,
1779) {
1780 return unicoap_options_get_uint24(options, number, block);
1781}
1782
1795 unicoap_options_t* options,
1798) {
1799 assert(block <= UNICOAP_UINT24_MAX);
1800 return unicoap_options_set_uint(options, number, block);
1801}
1802
1814static inline ssize_t unicoap_options_get_block1(
1815 const unicoap_options_t* options,
1817) {
1818 return unicoap_options_get_block(options, UNICOAP_OPTION_BLOCK1, block);
1819} /* generated by 'getter' template */
1820
1831static inline ssize_t unicoap_options_set_block1(
1832 unicoap_options_t* options,
1834) {
1835 return unicoap_options_set_block(options, UNICOAP_OPTION_BLOCK1, block);
1836} /* generated by 'setter' template */
1837
1847{
1849} /* generated by 'remove' template */
1850
1862static inline ssize_t unicoap_options_get_block2(
1863 const unicoap_options_t* options,
1865) {
1866 return unicoap_options_get_block(options, UNICOAP_OPTION_BLOCK2, block);
1867} /* generated by 'getter' template */
1868
1879static inline ssize_t unicoap_options_set_block2(
1880 unicoap_options_t* options,
1882) {
1883 return unicoap_options_set_block(options, UNICOAP_OPTION_BLOCK2, block);
1884} /* generated by 'setter' template */
1885
1895{
1897} /* generated by 'remove' template */
1898
1910static inline ssize_t unicoap_options_get_size1(
1911 const unicoap_options_t* options,
1912 uint32_t* size
1913) {
1914 return unicoap_options_get_uint32(options, UNICOAP_OPTION_SIZE1, size);
1915} /* generated by 'getter' template */
1916
1927static inline ssize_t unicoap_options_set_size1(
1928 unicoap_options_t* options,
1929 uint32_t size
1930) {
1931 return unicoap_options_set_uint(options, UNICOAP_OPTION_SIZE1, size);
1932} /* generated by 'setter' template */
1933
1943{
1945} /* generated by 'remove' template */
1946
1958static inline ssize_t unicoap_options_get_size2(
1959 const unicoap_options_t* options,
1960 uint32_t* size
1961) {
1962 return unicoap_options_get_uint32(options, UNICOAP_OPTION_SIZE2, size);
1963} /* generated by 'getter' template */
1964
1975static inline ssize_t unicoap_options_set_size2(
1976 unicoap_options_t* options,
1977 uint32_t size
1978) {
1979 return unicoap_options_set_uint(options, UNICOAP_OPTION_SIZE2, size);
1980} /* generated by 'setter' template */
1981
1991{
1993} /* generated by 'remove' template */
1994 /* Block-wise Transfers */
1995
1996/* ======= END OF GENERATED SECTION ============================================ */
1997
1999
2000#ifdef __cplusplus
2001}
2002#endif
POSIX.1-2008 compliant version of the assert macro.
#define assert(cond)
abort the program if assertion is false
Definition assert.h:143
Functions to work with different byte orders.
Constants used in CoAP such as option numbers and message codes.
static ssize_t unicoap_options_get_uint8(const unicoap_options_t *options, unicoap_option_number_t number, uint8_t *uint)
Retrieves an unsigned option value that takes up at most one bytes.
Definition base.h:897
static ssize_t unicoap_options_get_uint16(const unicoap_options_t *options, unicoap_option_number_t number, uint16_t *uint)
Retrieves an unsigned option value that takes up at most 2 bytes.
Definition base.h:870
ssize_t unicoap_options_copy_values_joined(const unicoap_options_t *options, unicoap_option_number_t number, uint8_t *buffer, size_t capacity, uint8_t separator)
Copies the values of all options with the given number joined by the given separator.
ssize_t unicoap_options_get(const unicoap_options_t *options, unicoap_option_number_t number, const uint8_t **value)
Retrieves the value of the option with given value, if present.
static ssize_t unicoap_options_get_next_query_by_name_string(unicoap_options_iterator_t *iterator, unicoap_option_number_t number, const char *name, const char **value)
Gets the next query option matching a given null-terminated name string, potentially skipping any opt...
Definition base.h:700
int unicoap_options_remove_all(unicoap_options_t *options, unicoap_option_number_t number)
Removes all options with the given number, if any.
static ssize_t unicoap_options_get_uint24(const unicoap_options_t *options, unicoap_option_number_t number, uint32_t *uint)
Retrieves an unsigned option value that takes up at most 3 bytes.
Definition base.h:847
int unicoap_options_add(unicoap_options_t *options, unicoap_option_number_t number, const uint8_t *value, size_t value_size)
Adds a repeatable option with the given value.
int unicoap_options_set(unicoap_options_t *options, unicoap_option_number_t number, const uint8_t *value, size_t value_size)
Sets the option with the given number.
int unicoap_options_set_uint(unicoap_options_t *options, unicoap_option_number_t number, uint32_t value)
Sets the option with the given number to the unsigned integer value passed.
ssize_t unicoap_options_get_next_by_number(unicoap_options_iterator_t *iterator, unicoap_option_number_t number, const uint8_t **value)
Gets the next option with the given number, potentially skipping any options in between.
static int unicoap_options_remove(unicoap_options_t *options, unicoap_option_number_t number)
Removes option with the given number, if present.
Definition base.h:549
static ssize_t unicoap_options_get_uint32(const unicoap_options_t *options, unicoap_option_number_t number, uint32_t *uint)
Retrieves an unsigned option value that takes up at most 4 bytes.
Definition base.h:824
int unicoap_options_add_values_joined(unicoap_options_t *options, unicoap_option_number_t number, const uint8_t *buffer, size_t size, uint8_t separator)
Splits the given value into separate values and adds them as option values.
ssize_t unicoap_options_get_next_query_by_name(unicoap_options_iterator_t *iterator, unicoap_option_number_t number, const char *name, size_t length, const char **value)
Gets the next query option matching the given name, potentially skipping any options in between.
static ssize_t unicoap_options_get_next_location_query_by_name_string(unicoap_options_iterator_t *iterator, const char *name, const char **value)
Gets the next Location-Query option matching the given name, potentially skipping any options in betw...
Definition generated.h:1475
static ssize_t unicoap_options_add_uri_path_string(unicoap_options_t *options, char *path)
Adds multiple Uri-Path options from null-terminated string.
Definition generated.h:1091
uint32_t unicoap_block_option_t
Block1 and Block2 option value
Definition generated.h:1761
static ssize_t unicoap_options_get_proxy_scheme(const unicoap_options_t *options, const char **scheme)
Retrieves the Proxy-Scheme option, if present.
Definition generated.h:405
static ssize_t unicoap_options_set_size2(unicoap_options_t *options, uint32_t size)
Sets the Size2 option.
Definition generated.h:1975
static ssize_t unicoap_options_get_first_uri_query(const unicoap_options_t *options, const char **query)
Retrieves the first Uri-Query option, if present.
Definition generated.h:1129
static ssize_t unicoap_options_set_proxy_scheme_string(unicoap_options_t *options, char *scheme)
Sets the Proxy-Scheme option from null-terminated string.
Definition generated.h:446
static int unicoap_options_remove_observe(unicoap_options_t *options)
Removes the Observe option, if present.
Definition generated.h:1727
static ssize_t unicoap_options_copy_location_path(const unicoap_options_t *options, char *path, size_t capacity)
Copies absolute location path into the given buffer.
Definition generated.h:826
static ssize_t unicoap_options_set_if_none_match(unicoap_options_t *options, bool value)
Sets the If-None-Match option.
Definition generated.h:155
static ssize_t unicoap_options_get_next_location_query_by_name(unicoap_options_iterator_t *iterator, const char *name, size_t length, const char **value)
Gets the next Location-Query option matching the given name, potentially skipping any options in betw...
Definition generated.h:1451
static int unicoap_options_remove_block1(unicoap_options_t *options)
Removes the Block1 option, if present.
Definition generated.h:1846
static int unicoap_options_remove_location_queries(unicoap_options_t *options)
Removes all Location-Query options, if any.
Definition generated.h:1666
static ssize_t unicoap_options_add_uri_query_string(unicoap_options_t *options, char *query)
Adds Uri-Query option from null-terminated string.
Definition generated.h:1327
static ssize_t unicoap_options_get_first_uri_query_by_name(unicoap_options_t *options, const char *name, size_t length, const char **value)
Retrieves the first Uri-Query option matching the given name,if present.
Definition generated.h:1224
static ssize_t unicoap_options_set_uri_port(unicoap_options_t *options, uint16_t port)
Sets the Uri-Port option.
Definition generated.h:202
static ssize_t unicoap_options_set_proxy_uri(unicoap_options_t *options, char *uri, size_t length)
Sets the Proxy-Uri option.
Definition generated.h:506
static ssize_t unicoap_options_set_proxy_uri_string(unicoap_options_t *options, char *uri)
Sets the Proxy-Uri option from null-terminated string.
Definition generated.h:530
static ssize_t unicoap_options_set_proxy_scheme(unicoap_options_t *options, char *scheme, size_t length)
Sets the Proxy-Scheme option.
Definition generated.h:425
static int unicoap_options_remove_accept(unicoap_options_t *options)
Removes the Accept option, if present.
Definition generated.h:382
static ssize_t unicoap_options_set_accept(unicoap_options_t *options, unicoap_content_format_t format)
Sets the Accept option.
Definition generated.h:367
static ssize_t unicoap_options_add_location_queries(unicoap_options_t *options, char *queries, size_t length)
Adds multiple Location-Query options from string.
Definition generated.h:1628
static int unicoap_options_set_block(unicoap_options_t *options, unicoap_option_number_t number, unicoap_block_option_t block)
Sets the Block1 or Block2 option.
Definition generated.h:1794
static ssize_t unicoap_options_add_location_path_component_string(unicoap_options_t *options, char *component)
Adds Location-Path option from null-terminated string.
Definition generated.h:873
static ssize_t unicoap_options_add_uri_queries(unicoap_options_t *options, char *queries, size_t length)
Adds multiple Uri-Query options from string.
Definition generated.h:1348
static ssize_t unicoap_options_add_if_match(unicoap_options_t *options, uint8_t *value, size_t size)
Adds If-Match option.
Definition generated.h:663
static ssize_t unicoap_options_add_uri_query(unicoap_options_t *options, char *query, size_t length)
Adds Uri-Query option.
Definition generated.h:1304
static ssize_t unicoap_options_set_no_response(unicoap_options_t *options, uint8_t value)
Sets the No-Response option.
Definition generated.h:585
static ssize_t unicoap_options_set_block1(unicoap_options_t *options, unicoap_block_option_t block)
Sets the Block1 option.
Definition generated.h:1831
static ssize_t unicoap_options_add_location_path(unicoap_options_t *options, char *path, size_t length)
Adds multiple Location-Path options from string.
Definition generated.h:893
static ssize_t unicoap_options_set_observe(unicoap_options_t *options, uint32_t observe)
Sets the Observe option.
Definition generated.h:1712
static ssize_t unicoap_options_get_block(const unicoap_options_t *options, unicoap_option_number_t number, unicoap_block_option_t *block)
Retrieves a Block1 or Block2 option.
Definition generated.h:1775
static ssize_t unicoap_options_get_max_age(const unicoap_options_t *options, uint32_t *age)
Retrieves the Max-Age option, if present.
Definition generated.h:295
static int unicoap_options_remove_max_age(unicoap_options_t *options)
Removes the Max-Age option, if present.
Definition generated.h:327
static ssize_t unicoap_options_add_location_path_component(unicoap_options_t *options, char *component, size_t length)
Adds Location-Path option.
Definition generated.h:852
static ssize_t unicoap_options_get_first_etag(const unicoap_options_t *options, const uint8_t **etag)
Retrieves the first ETag option, if present.
Definition generated.h:702
static ssize_t unicoap_options_get_block2(const unicoap_options_t *options, unicoap_block_option_t *block)
Retrieves the Block2 option, if present.
Definition generated.h:1862
static ssize_t unicoap_options_get_next_uri_query_by_name_string(unicoap_options_iterator_t *iterator, const char *name, const char **value)
Gets the next Uri-Query option matching the given name, potentially skipping any options in between.
Definition generated.h:1195
static ssize_t unicoap_options_copy_location_queries(const unicoap_options_t *options, char *queries, size_t capacity)
Copies location query string into the given buffer.
Definition generated.h:1561
static ssize_t unicoap_options_add_uri_path(unicoap_options_t *options, char *path, size_t length)
Adds multiple Uri-Path options from string.
Definition generated.h:1068
static ssize_t unicoap_options_get_first_location_query(const unicoap_options_t *options, const char **query)
Retrieves the first Location-Query option, if present.
Definition generated.h:1409
unicoap_content_format_t
Content-Format option values
Definition constants.h:708
static ssize_t unicoap_options_set_uri_host_string(unicoap_options_t *options, char *host)
Sets the Uri-Host option from null-terminated string.
Definition generated.h:103
static ssize_t unicoap_options_get_first_if_match(const unicoap_options_t *options, const uint8_t **value)
Retrieves the first If-Match option, if present.
Definition generated.h:623
static int unicoap_options_remove_no_response(unicoap_options_t *options)
Removes the No-Response option, if present.
Definition generated.h:600
static ssize_t unicoap_options_add_location_query_string(unicoap_options_t *options, char *query)
Adds Location-Query option from null-terminated string.
Definition generated.h:1607
static ssize_t unicoap_options_get_next_uri_query(unicoap_options_iterator_t *iterator, const char **query)
Gets the next Uri-Query option provided by the specified iterator.
Definition generated.h:1149
static int unicoap_options_remove_all_if_match(unicoap_options_t *options)
Removes all If-Match options, if any.
Definition generated.h:679
static ssize_t unicoap_options_get_first_location_query_by_name_string(unicoap_options_t *options, const char *name, const char **value)
Retrieves the first Location-Query option matching the given null-terminated name,...
Definition generated.h:1535
static int unicoap_options_remove_uri_host(unicoap_options_t *options)
Removes the Uri-Host option, if present.
Definition generated.h:118
static ssize_t unicoap_options_get_first_uri_path_component(const unicoap_options_t *options, const char **component)
Retrieves the first Uri-Path option, if present.
Definition generated.h:953
static int unicoap_options_remove_content_format(unicoap_options_t *options)
Removes the Content-Format option, if present.
Definition generated.h:272
static ssize_t unicoap_options_set_max_age(unicoap_options_t *options, uint32_t age)
Sets the Max-Age option.
Definition generated.h:312
static ssize_t unicoap_options_get_no_response(const unicoap_options_t *options, uint8_t *value)
Retrieves the No-Response option, if present.
Definition generated.h:568
static ssize_t unicoap_options_get_next_uri_query_by_name(unicoap_options_iterator_t *iterator, const char *name, size_t length, const char **value)
Gets the next Uri-Query option matching the given name, potentially skipping any options in between.
Definition generated.h:1171
static ssize_t unicoap_options_set_block2(unicoap_options_t *options, unicoap_block_option_t block)
Sets the Block2 option.
Definition generated.h:1879
static ssize_t unicoap_options_get_next_location_path_component(unicoap_options_iterator_t *iterator, const char **component)
Gets the next Location-Path option provided by the specified iterator.
Definition generated.h:802
static ssize_t unicoap_options_get_next_etag(unicoap_options_iterator_t *iterator, const uint8_t **etag)
Gets the next ETag option provided by the specified iterator.
Definition generated.h:722
static ssize_t unicoap_options_get_next_if_match(unicoap_options_iterator_t *iterator, const uint8_t **value)
Gets the next If-Match option provided by the specified iterator.
Definition generated.h:643
static ssize_t unicoap_options_get_uri_port(const unicoap_options_t *options, uint16_t *port)
Retrieves the Uri-Port option, if present.
Definition generated.h:185
static int unicoap_options_remove_size2(unicoap_options_t *options)
Removes the Size2 option, if present.
Definition generated.h:1990
int unicoap_options_set_observe_generated(unicoap_options_t *options)
Sets the Observe option to a randomly generated value.
static int unicoap_options_remove_uri_path(unicoap_options_t *options)
Removes all Uri-Path options, if any.
Definition generated.h:1106
static ssize_t unicoap_options_get_size1(const unicoap_options_t *options, uint32_t *size)
Retrieves the Size1 option, if present.
Definition generated.h:1910
static bool unicoap_options_get_if_none_match(const unicoap_options_t *options)
Determines whether the If-None-Match option is present.
Definition generated.h:140
static ssize_t unicoap_options_copy_uri_queries(const unicoap_options_t *options, char *queries, size_t capacity)
Copies URI query string into the given buffer.
Definition generated.h:1281
static ssize_t unicoap_options_add_location_query(unicoap_options_t *options, char *query, size_t length)
Adds Location-Query option.
Definition generated.h:1584
static ssize_t unicoap_options_get_size2(const unicoap_options_t *options, uint32_t *size)
Retrieves the Size2 option, if present.
Definition generated.h:1958
static ssize_t unicoap_options_get_accept(const unicoap_options_t *options, unicoap_content_format_t *format)
Retrieves the Accept option, if present.
Definition generated.h:350
static ssize_t unicoap_options_add_uri_path_component(unicoap_options_t *options, char *component, size_t length)
Adds Uri-Path option.
Definition generated.h:1024
static ssize_t unicoap_options_get_next_location_query(unicoap_options_iterator_t *iterator, const char **query)
Gets the next Location-Query option provided by the specified iterator.
Definition generated.h:1429
static int unicoap_options_remove_etags(unicoap_options_t *options)
Removes all ETag options, if any.
Definition generated.h:759
static ssize_t unicoap_options_copy_uri_path(const unicoap_options_t *options, char *path, size_t capacity)
Copies absolute URI path into the given buffer.
Definition generated.h:997
static ssize_t unicoap_options_add_etag(unicoap_options_t *options, uint8_t *etag, size_t size)
Adds ETag option.
Definition generated.h:743
static ssize_t unicoap_options_get_content_format(const unicoap_options_t *options, unicoap_content_format_t *format)
Retrieves the Content-Format option, if present.
Definition generated.h:240
static ssize_t unicoap_options_get_first_uri_query_by_name_string(unicoap_options_t *options, const char *name, const char **value)
Retrieves the first Uri-Query option matching the given null-terminated name,if present.
Definition generated.h:1255
static int unicoap_options_remove_proxy_scheme(unicoap_options_t *options)
Removes the Proxy-Scheme option, if present.
Definition generated.h:461
static ssize_t unicoap_options_add_location_queries_string(unicoap_options_t *options, char *queries)
Adds multiple Location-Query options from null-terminated string.
Definition generated.h:1651
static int unicoap_options_remove_uri_queries(unicoap_options_t *options)
Removes all Uri-Query options, if any.
Definition generated.h:1386
static ssize_t unicoap_options_add_uri_queries_string(unicoap_options_t *options, char *queries)
Adds multiple Uri-Query options from null-terminated string.
Definition generated.h:1371
static ssize_t unicoap_options_add_uri_path_component_string(unicoap_options_t *options, char *component)
Adds Uri-Path option from null-terminated string.
Definition generated.h:1047
static ssize_t unicoap_options_get_block1(const unicoap_options_t *options, unicoap_block_option_t *block)
Retrieves the Block1 option, if present.
Definition generated.h:1814
static ssize_t unicoap_options_get_proxy_uri(const unicoap_options_t *options, const char **uri)
Retrieves the Proxy-Uri option, if present.
Definition generated.h:484
static ssize_t unicoap_options_get_uri_host(const unicoap_options_t *options, const char **host)
Retrieves the Uri-Host option, if present.
Definition generated.h:57
static int unicoap_options_remove_location_path(unicoap_options_t *options)
Removes all Location-Path options, if any.
Definition generated.h:930
static ssize_t unicoap_options_add_location_path_string(unicoap_options_t *options, char *path)
Adds multiple Location-Path options from null-terminated string.
Definition generated.h:915
static ssize_t unicoap_options_set_content_format(unicoap_options_t *options, unicoap_content_format_t format)
Sets the Content-Format option.
Definition generated.h:257
static int unicoap_options_remove_block2(unicoap_options_t *options)
Removes the Block2 option, if present.
Definition generated.h:1894
static ssize_t unicoap_options_get_next_uri_path_component(unicoap_options_iterator_t *iterator, const char **component)
Gets the next Uri-Path option provided by the specified iterator.
Definition generated.h:973
static int unicoap_options_remove_size1(unicoap_options_t *options)
Removes the Size1 option, if present.
Definition generated.h:1942
static ssize_t unicoap_options_set_uri_host(unicoap_options_t *options, char *host, size_t length)
Sets the Uri-Host option.
Definition generated.h:79
static ssize_t unicoap_options_get_observe(const unicoap_options_t *options, uint32_t *observe)
Retrieves the Observe option, if present.
Definition generated.h:1695
static ssize_t unicoap_options_get_first_location_query_by_name(unicoap_options_t *options, const char *name, size_t length, const char **value)
Retrieves the first Location-Query option matching the given name,if present.
Definition generated.h:1504
static ssize_t unicoap_options_get_first_location_path_component(const unicoap_options_t *options, const char **component)
Retrieves the first Location-Path option, if present.
Definition generated.h:782
static ssize_t unicoap_options_set_size1(unicoap_options_t *options, uint32_t size)
Sets the Size1 option.
Definition generated.h:1927
static int unicoap_options_remove_uri_port(unicoap_options_t *options)
Removes the Uri-Port option, if present.
Definition generated.h:217
static int unicoap_options_remove_proxy_uri(unicoap_options_t *options)
Removes the Proxy-Uri option, if present.
Definition generated.h:545
unicoap_option_number_t
CoAP option number.
Definition constants.h:414
bool unicoap_options_contains(const unicoap_options_t *options, unicoap_option_number_t number)
Determines whether the given options container has one or more options with the given number.
#define UNICOAP_UINT24_MAX
Largest number representable with 24 bits (3 bytes)
Definition base.h:376
@ UNICOAP_OPTION_URI_PORT
Uri-Port
Definition constants.h:455
@ UNICOAP_OPTION_MAX_AGE
Max-Age option
Definition constants.h:493
@ UNICOAP_OPTION_URI_HOST
Uri-Host option
Definition constants.h:427
@ UNICOAP_OPTION_CONTENT_FORMAT
Content-Format option
Definition constants.h:486
@ UNICOAP_OPTION_OBSERVE
Observe option
Definition constants.h:448
@ UNICOAP_OPTION_IF_MATCH
If-Match option
Definition constants.h:420
@ UNICOAP_OPTION_NO_RESPONSE
suppress CoAP response
Definition constants.h:627
@ UNICOAP_OPTION_PROXY_URI
Proxy-Uri option
Definition constants.h:590
@ UNICOAP_OPTION_BLOCK2
Block2 option
Definition constants.h:553
@ UNICOAP_OPTION_SIZE2
Size2 option.
Definition constants.h:574
@ UNICOAP_OPTION_URI_PATH
Uri-Path option
Definition constants.h:479
@ UNICOAP_OPTION_BLOCK1
Block1 option
Definition constants.h:562
@ UNICOAP_OPTION_ETAG
ETag option
Definition constants.h:434
@ UNICOAP_OPTION_LOCATION_QUERY
Location-Query option
Definition constants.h:534
@ UNICOAP_OPTION_IF_NONE_MATCH
If-None-Match option
Definition constants.h:441
@ UNICOAP_OPTION_LOCATION_PATH
Location-Path option
Definition constants.h:462
@ UNICOAP_OPTION_SIZE1
Size1 option.
Definition constants.h:611
@ UNICOAP_OPTION_PROXY_SCHEME
Proxy-Scheme option
Definition constants.h:597
@ UNICOAP_OPTION_URI_QUERY
Uri-Query option
Definition constants.h:502
@ UNICOAP_OPTION_ACCEPT
Accept option
Definition constants.h:518
The iterator you use to retrieve option values in-order.
Definition base.h:579
CoAP options container.
Definition base.h:97
Utility macros for unicoap