libcoap 4.3.5-develop-19cef11
String handling support

API for handling strings and binary data. More...

+ Collaboration diagram for String handling support:

Data Structures

struct  coap_string_t
 CoAP string data definition. More...
 
struct  coap_str_const_t
 CoAP string data definition with const data. More...
 
struct  coap_binary_t
 CoAP binary data definition. More...
 
struct  coap_bin_const_t
 CoAP binary data definition with const data. More...
 
union  coap_const_char_ptr_t
 CoAP union for handling signed / unsigned chars. More...
 

Macros

#define COAP_SET_STR(st, l, v)   { (st)->length = (l), (st)->s = (v); }
 
#define COAP_MAX_STR_CONST_FUNC   2
 
#define coap_string_equal(string1, string2)
 Compares the two strings for equality. More...
 
#define coap_binary_equal(binary1, binary2)
 Compares the two binary data for equality. More...
 

Typedefs

typedef struct coap_string_t coap_string_t
 CoAP string data definition. More...
 
typedef struct coap_str_const_t coap_str_const_t
 CoAP string data definition with const data. More...
 
typedef struct coap_binary_t coap_binary_t
 CoAP binary data definition. More...
 
typedef struct coap_bin_const_t coap_bin_const_t
 CoAP binary data definition with const data. More...
 

Functions

coap_string_tcoap_new_string (size_t size)
 Returns a new string object with at least size+1 bytes storage allocated. More...
 
void coap_delete_string (coap_string_t *string)
 Deletes the given string and releases any memory allocated. More...
 
coap_str_const_tcoap_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 copied into the string object. More...
 
void coap_delete_str_const (coap_str_const_t *string)
 Deletes the given const string and releases any memory allocated. More...
 
coap_binary_tcoap_new_binary (size_t size)
 Returns a new binary object with at least size bytes storage allocated. More...
 
void coap_delete_binary (coap_binary_t *binary)
 Deletes the given coap_binary_t object and releases any memory allocated. More...
 
coap_binary_tcoap_resize_binary (coap_binary_t *binary, size_t new_size)
 Resizes the given coap_binary_t object. More...
 
coap_bin_const_tcoap_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 object with at least size bytes storage allocated, and the provided data copied into the binary object. More...
 
void coap_delete_bin_const (coap_bin_const_t *binary)
 Deletes the given const binary data and releases any memory allocated. More...
 
coap_str_const_tcoap_make_str_const (const char *string)
 Take the specified byte array (text) and create a coap_str_const_t *. More...
 

Detailed Description

API for handling strings and binary data.

Macro Definition Documentation

◆ coap_binary_equal

#define coap_binary_equal (   binary1,
  binary2 
)
Value:
((binary1)->length == (binary2)->length && ((binary1)->length == 0 || \
((binary1)->s && (binary2)->s && \
memcmp((binary1)->s, (binary2)->s, (binary1)->length) == 0)))

Compares the two binary data for equality.

Parameters
binary1The first binary data.
binary2The second binary data.
Returns
1 if the binary data is equal 0 otherwise.

Definition at line 211 of file coap_str.h.

◆ COAP_MAX_STR_CONST_FUNC

#define COAP_MAX_STR_CONST_FUNC   2

Definition at line 170 of file coap_str.h.

◆ COAP_SET_STR

#define COAP_SET_STR (   st,
  l,
 
)    { (st)->length = (l), (st)->s = (v); }

Definition at line 51 of file coap_str.h.

◆ coap_string_equal

#define coap_string_equal (   string1,
  string2 
)
Value:
((string1)->length == (string2)->length && ((string1)->length == 0 || \
((string1)->s && (string2)->s && \
memcmp((string1)->s, (string2)->s, (string1)->length) == 0)))

Compares the two strings for equality.

Parameters
string1The first string.
string2The second string.
Returns
1 if the strings are equal 0 otherwise.

Definition at line 197 of file coap_str.h.

Typedef Documentation

◆ coap_bin_const_t

CoAP binary data definition with const data.

◆ coap_binary_t

typedef struct coap_binary_t coap_binary_t

CoAP binary data definition.

◆ coap_str_const_t

CoAP string data definition with const data.

◆ coap_string_t

typedef struct coap_string_t coap_string_t

CoAP string data definition.

Function Documentation

◆ 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.

Parameters
binaryThe binary data to free off.

Definition at line 120 of file coap_str.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ coap_delete_binary()

void coap_delete_binary ( coap_binary_t binary)

Deletes the given coap_binary_t object and releases any memory allocated.

Parameters
binaryThe coap_binary_t object to free off.

Definition at line 105 of file coap_str.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ coap_delete_str_const()

void coap_delete_str_const ( coap_str_const_t string)

Deletes the given const string and releases any memory allocated.

Parameters
stringThe string to free off.

Definition at line 61 of file coap_str.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ coap_delete_string()

void coap_delete_string ( coap_string_t string)

Deletes the given string and releases any memory allocated.

Parameters
stringThe string to free off.

Definition at line 46 of file coap_str.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ 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 *.

Note: the array is 2 deep as there are up to two callings of coap_make_str_const in a function call. e.g. coap_add_attr(). Caution: If there are local variable assignments, these will cycle around the var[COAP_MAX_STR_CONST_FUNC] set. No current examples do this.

Parameters
stringThe const string to convert to a coap_str_const_t *
Returns
A pointer to one of two static variables containing the coap_str_const_t * result

Definition at line 66 of file coap_str.c.

+ Here is the caller graph for this function:

◆ 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 object with at least size bytes storage allocated, and the provided data copied into the binary object.

The binary data must be released using coap_delete_bin_const().

Parameters
dataThe data to put in the new string object.
sizeThe size to allocate for the binary data.
Returns
A pointer to the new object or NULL on error.

Definition at line 110 of file coap_str.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ coap_new_binary()

coap_binary_t * coap_new_binary ( size_t  size)

Returns a new binary object with at least size bytes storage allocated.

It is the responsibility of the caller to fill in all the appropriate information. The coap_binary_t object must be released using coap_delete_binary().

Parameters
sizeThe size to allocate for the binary data.
Returns
A pointer to the new object or NULL on error.

Definition at line 77 of file coap_str.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ 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 copied into the string object.

The string must be released using coap_delete_str_const().

Parameters
dataThe data to put in the new string object.
sizeThe size to allocate for the binary string data.
Returns
A pointer to the new object or NULL on error.

Definition at line 51 of file coap_str.c.

+ Here is the call graph for this function:

◆ 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.

It is the responsibility of the caller to fill in all the appropriate information. The string must be released using coap_delete_string().

Parameters
sizeThe size to allocate for the string data.
Returns
A pointer to the new object or NULL on error.

Definition at line 21 of file coap_str.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ coap_resize_binary()

coap_binary_t * coap_resize_binary ( coap_binary_t binary,
size_t  new_size 
)

Resizes the given coap_binary_t object.

It is the responsibility of the caller to fill in all the appropriate additional information.

Note: If there is an error, binary will separately need to be released by coap_delete_binary().

Parameters
binaryThe coap_binary_t object to resize.
new_sizeThe new size to allocate for the binary data.
Returns
A pointer to the new object or NULL on error.

Definition at line 82 of file coap_str.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function: