libcoap 4.3.5-develop-ea01661
Loading...
Searching...
No Matches
coap_str.h
Go to the documentation of this file.
1/*
2 * str.h -- strings to be used in the CoAP library
3 *
4 * Copyright (C) 2010-2011 Olaf Bergmann <bergmann@tzi.org>
5 *
6 * SPDX-License-Identifier: BSD-2-Clause
7 *
8 * This file is part of the CoAP library libcoap. Please see README for terms
9 * of use.
10 */
11
17#ifndef COAP_STR_H_
18#define COAP_STR_H_
19
20#include <string.h>
21
22#ifdef __cplusplus
23extern "C" {
24#endif
25
33/*
34 * Note: string and binary use equivalent objects.
35 * string is likely to contain readable textual information, binary will not.
36 */
37
41typedef struct coap_string_t {
42 size_t length;
43 uint8_t *s;
45
49typedef struct coap_str_const_t {
50 size_t length;
51 const uint8_t *s;
53
54#define COAP_SET_STR(st,l,v) { (st)->length = (l), (st)->s = (v); }
55
59typedef struct coap_binary_t {
60 size_t length;
61 uint8_t *s;
63
67typedef struct coap_bin_const_t {
68 size_t length;
69 const uint8_t *s;
71
75typedef union {
76 const char *s_byte;
77 const uint8_t *u_byte;
79
90coap_string_t *coap_new_string(size_t size);
91
98
109coap_str_const_t *coap_new_str_const(const uint8_t *data, size_t size);
110
117
128coap_binary_t *coap_new_binary(size_t size);
129
136
150coap_binary_t *coap_resize_binary(coap_binary_t *binary, size_t new_size);
151
163coap_bin_const_t *coap_new_bin_const(const uint8_t *data, size_t size);
164
171
172#ifndef COAP_MAX_STR_CONST_FUNC
173#define COAP_MAX_STR_CONST_FUNC 2
174#endif /* COAP_MAX_STR_CONST_FUNC */
175
189coap_str_const_t *coap_make_str_const(const char *string);
190
200#define coap_string_equal(string1,string2) \
201 ((string1)->length == (string2)->length && ((string1)->length == 0 || \
202 ((string1)->s && (string2)->s && \
203 memcmp((string1)->s, (string2)->s, (string1)->length) == 0)))
204
214#define coap_binary_equal(binary1,binary2) \
215 ((binary1)->length == (binary2)->length && ((binary1)->length == 0 || \
216 ((binary1)->s && (binary2)->s && \
217 memcmp((binary1)->s, (binary2)->s, (binary1)->length) == 0)))
218
221#ifdef __cplusplus
222}
223#endif
224
225#endif /* COAP_STR_H_ */
void coap_delete_bin_const(coap_bin_const_t *binary)
Deletes the given const binary data and releases any memory allocated.
Definition coap_str.c:120
void coap_delete_str_const(coap_str_const_t *string)
Deletes the given const string and releases any memory allocated.
Definition coap_str.c:61
coap_binary_t * coap_new_binary(size_t size)
Returns a new binary object with at least size bytes storage allocated.
Definition coap_str.c:77
coap_str_const_t * coap_make_str_const(const char *string)
Take the specified byte array (text) and create a coap_str_const_t *.
Definition coap_str.c:66
coap_bin_const_t * coap_new_bin_const(const uint8_t *data, size_t size)
Take the specified byte array (text) and create a coap_bin_const_t * Returns a new const binary objec...
Definition coap_str.c:110
coap_binary_t * coap_resize_binary(coap_binary_t *binary, size_t new_size)
Resizes the given coap_binary_t object.
Definition coap_str.c:82
void coap_delete_binary(coap_binary_t *binary)
Deletes the given coap_binary_t object and releases any memory allocated.
Definition coap_str.c:105
coap_string_t * coap_new_string(size_t size)
Returns a new string object with at least size+1 bytes storage allocated.
Definition coap_str.c:21
coap_str_const_t * coap_new_str_const(const uint8_t *data, size_t size)
Returns a new const string object with at least size+1 bytes storage allocated, and the provided data...
Definition coap_str.c:51
void coap_delete_string(coap_string_t *string)
Deletes the given string and releases any memory allocated.
Definition coap_str.c:46
CoAP binary data definition with const data.
Definition coap_str.h:67
size_t length
length of binary data
Definition coap_str.h:68
const uint8_t * s
read-only binary data
Definition coap_str.h:69
CoAP binary data definition.
Definition coap_str.h:59
size_t length
length of binary data
Definition coap_str.h:60
uint8_t * s
binary data
Definition coap_str.h:61
CoAP string data definition with const data.
Definition coap_str.h:49
const uint8_t * s
read-only string data
Definition coap_str.h:51
size_t length
length of string
Definition coap_str.h:50
CoAP string data definition.
Definition coap_str.h:41
uint8_t * s
string data
Definition coap_str.h:43
size_t length
length of string
Definition coap_str.h:42
CoAP union for handling signed / unsigned chars.
Definition coap_str.h:75
const char * s_byte
signed char ptr
Definition coap_str.h:76
const uint8_t * u_byte
unsigned char ptr
Definition coap_str.h:77