libcoap 4.3.2rc2

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
30/*
31 * Note: string and binary use equivalent objects.
32 * string is likely to contain readable textual information, binary will not.
33 */
34
38 typedef struct coap_string_t {
39 size_t length;
40 uint8_t *s;
41} coap_string_t;
42
46 typedef struct coap_str_const_t {
47 size_t length;
48 const uint8_t *s;
49} coap_str_const_t;
50
51#define COAP_SET_STR(st,l,v) { (st)->length = (l), (st)->s = (v); }
52
56 typedef struct coap_binary_t {
57 size_t length;
58 uint8_t *s;
59} coap_binary_t;
60
64 typedef struct coap_bin_const_t {
65 size_t length;
66 const uint8_t *s;
67} coap_bin_const_t;
68
79 coap_string_t *coap_new_string(size_t size);
80
86 void coap_delete_string(coap_string_t *string);
87
98 coap_str_const_t *coap_new_str_const(const uint8_t *data, size_t size);
99
105 void coap_delete_str_const(coap_str_const_t *string);
106
117 coap_binary_t *coap_new_binary(size_t size);
118
124 void coap_delete_binary(coap_binary_t *binary);
125
139 coap_binary_t *coap_resize_binary(coap_binary_t *binary, size_t new_size);
140
152 coap_bin_const_t *coap_new_bin_const(const uint8_t *data, size_t size);
153
159 void coap_delete_bin_const(coap_bin_const_t *binary);
160
161#ifndef COAP_MAX_STR_CONST_FUNC
162#define COAP_MAX_STR_CONST_FUNC 2
163#endif /* COAP_MAX_STR_CONST_FUNC */
164
178 coap_str_const_t *coap_make_str_const(const char *string);
179
189#define coap_string_equal(string1,string2) \
190 ((string1)->length == (string2)->length && ((string1)->length == 0 || \
191 ((string1)->s && (string2)->s && \
192 memcmp((string1)->s, (string2)->s, (string1)->length) == 0)))
193
203#define coap_binary_equal(binary1,binary2) \
204 ((binary1)->length == (binary2)->length && ((binary1)->length == 0 || \
205 ((binary1)->s && (binary2)->s && \
206 memcmp((binary1)->s, (binary2)->s, (binary1)->length) == 0)))
207
210#endif /* COAP_STR_H_ */
coap_delete_bin_const
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
coap_delete_str_const
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_new_binary
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_make_str_const
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_new_bin_const
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_resize_binary
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
coap_str_const_t
struct coap_str_const_t coap_str_const_t
CoAP string data definition with const data.
coap_delete_binary
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_binary_t
struct coap_binary_t coap_binary_t
CoAP binary data definition.
coap_new_string
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_string_t
struct coap_string_t coap_string_t
CoAP string data definition.
coap_new_str_const
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
coap_bin_const_t
struct coap_bin_const_t coap_bin_const_t
CoAP binary data definition with const data.
coap_delete_string
void coap_delete_string(coap_string_t *string)
Deletes the given string and releases any memory allocated.
Definition: coap_str.c:46
coap_bin_const_t
CoAP binary data definition with const data.
Definition: coap_str.h:64
coap_bin_const_t::length
size_t length
length of binary data
Definition: coap_str.h:65
coap_bin_const_t::s
const uint8_t * s
read-only binary data
Definition: coap_str.h:66
coap_binary_t
CoAP binary data definition.
Definition: coap_str.h:56
coap_binary_t::length
size_t length
length of binary data
Definition: coap_str.h:57
coap_binary_t::s
uint8_t * s
binary data
Definition: coap_str.h:58
coap_str_const_t
CoAP string data definition with const data.
Definition: coap_str.h:46
coap_str_const_t::s
const uint8_t * s
read-only string data
Definition: coap_str.h:48
coap_str_const_t::length
size_t length
length of string
Definition: coap_str.h:47
coap_string_t
CoAP string data definition.
Definition: coap_str.h:38
coap_string_t::s
uint8_t * s
string data
Definition: coap_str.h:40
coap_string_t::length
size_t length
length of string
Definition: coap_str.h:39