libcoap 4.3.2rc2

Data Structures | Macros | Typedefs | Functions
coap_option.h File Reference

Helpers for handling options in CoAP PDUs. More...

Go to the source code of this file.

## Data Structures
struct | coap_option_t
| Representation of CoAP options. More...
struct | coap_opt_filter_t
struct | coap_opt_iterator_t
| Iterator to run through PDU options. More...
struct | coap_optlist_t
| Representation of chained list of CoAP options to install. More...

## Macros
#define | PCHAR(p) ((coap_opt_t *)(p))
#define | COAP_OPT_FILTER_SHORT 6
| The number of option types below 256 that can be stored in an option filter. More...
#define | COAP_OPT_FILTER_LONG 2
| The number of option types above 255 that can be stored in an option filter. More...
#define | COAP_OPT_ALL NULL
| Pre-defined filter that includes all options. More...

## Typedefs
typedef uint16_t | coap_option_num_t
typedef uint8_t | coap_opt_t
| Use byte-oriented access methods here because sliding a complex struct coap_opt_t over the data buffer may cause bus error on certain platforms. More...
typedef struct coap_opt_filter_t | coap_opt_filter_t
typedef struct coap_optlist_t | coap_optlist_t
| Representation of chained list of CoAP options to install. More...

## Functions
size_t | coap_opt_parse (const coap_opt_t *opt, size_t length, coap_option_t *result)
| Parses the option pointed to by `opt` into `result`. More...
size_t | coap_opt_size (const coap_opt_t *opt)
| Returns the size of the given option, taking into account a possible option jump. More...
void | coap_option_filter_clear (coap_opt_filter_t *filter)
| Clears filter `filter`. More...
int | coap_option_filter_set (coap_opt_filter_t *filter, coap_option_num_t number)
| Sets the corresponding entry for `number` in `filter`. More...
int | coap_option_filter_unset (coap_opt_filter_t *filter, coap_option_num_t number)
| Clears the corresponding entry for `number` in `filter`. More...
int | coap_option_filter_get (coap_opt_filter_t *filter, coap_option_num_t number)
| Checks if `number` is contained in `filter`. More...
coap_opt_iterator_t * | coap_option_iterator_init (const coap_pdu_t *pdu, coap_opt_iterator_t *oi, const coap_opt_filter_t *filter)
| Initializes the given option iterator `oi` to point to the beginning of the `pdu's` option list. More...
coap_opt_t * | coap_option_next (coap_opt_iterator_t *oi)
| Updates the iterator `oi` to point to the next option. More...
coap_opt_t * | coap_check_option (const coap_pdu_t *pdu, coap_option_num_t number, coap_opt_iterator_t *oi)
| Retrieves the first option of number `number` from `pdu`. More...
size_t | coap_opt_setheader (coap_opt_t *opt, size_t maxlen, uint16_t delta, size_t length)
| Encodes the given delta and length values into `opt`. More...
size_t | coap_opt_encode_size (uint16_t delta, size_t length)
| Compute storage bytes needed for an option with given `delta` and `length`. More...
size_t | coap_opt_encode (coap_opt_t *opt, size_t n, uint16_t delta, const uint8_t *val, size_t length)
| Encodes option with given `delta` into `opt`. More...
uint32_t | coap_opt_length (const coap_opt_t *opt)
| Returns the length of the given option. More...
const uint8_t * | coap_opt_value (const coap_opt_t *opt)
| Returns a pointer to the value of the given option. More...
coap_optlist_t * | coap_new_optlist (uint16_t number, size_t length, const uint8_t *data)
| Create a new optlist entry. More...
int | coap_add_optlist_pdu (coap_pdu_t *pdu, coap_optlist_t **optlist_chain)
| The current optlist of `optlist_chain` is first sorted (as per RFC7272 ordering requirements) and then added to the `pdu`. More...
int | coap_insert_optlist (coap_optlist_t **optlist_chain, coap_optlist_t *optlist)
| Adds `optlist` to the given `optlist_chain`. More...
void | coap_delete_optlist (coap_optlist_t *optlist_chain)
| Removes all entries from the `optlist_chain`, freeing off their memory usage. More...
COAP_STATIC_INLINE COAP_DEPRECATED int | coap_option_setb (coap_opt_filter_t *filter, uint16_t type)
| Sets the corresponding bit for `type` in `filter`. More...
COAP_STATIC_INLINE COAP_DEPRECATED int | coap_option_clrb (coap_opt_filter_t *filter, uint16_t type)
| Clears the corresponding bit for `type` in `filter`. More...
COAP_STATIC_INLINE COAP_DEPRECATED int | coap_option_getb (coap_opt_filter_t *filter, uint16_t type)
| Gets the corresponding bit for `type` in `filter`. More...

## Detailed Description

Helpers for handling options in CoAP PDUs.

Definition in file coap_option.h.

## Macro Definition Documentation

## ◆ PCHAR

#define PCHAR | ( |  | p | ) | ((coap_opt_t *)(p))

Definition at line 27 of file coap_option.h.

## Typedef Documentation

## ◆ coap_opt_t

typedef uint8_t coap_opt_t

Use byte-oriented access methods here because sliding a complex struct coap_opt_t over the data buffer may cause bus error on certain platforms.

Definition at line 26 of file coap_option.h.

## ◆ coap_option_num_t

typedef uint16_t coap_option_num_t

Definition at line 20 of file coap_option.h.

## Function Documentation

## ◆ coap_opt_parse()

size_t coap_opt_parse | ( | const coap_opt_t * | opt,
|  | size_t | length,
|  | coap_option_t * | result
| ) |  |

Parses the option pointed to by `opt` into `result`.

This function returns the number of bytes that have been parsed, or `0` on error. An error is signaled when illegal delta or length values are encountered or when option parsing would result in reading past the option (i.e. beyond opt + length).

Parameters

  opt | The beginning of the option to parse.
  length | The maximum length of `opt`.
  result | A pointer to the coap_option_t structure that is filled with actual values iff coap_opt_parse() > 0.

Returns
  The number of bytes parsed or `0` on error.

Definition at line 41 of file coap_option.c.

## ◆ coap_opt_size()

size_t coap_opt_size | ( | const coap_opt_t * | opt | ) |

Returns the size of the given option, taking into account a possible option jump.

Parameters

  opt | An option jump or the beginning of the option.

Returns
  The number of bytes between `opt` and the end of the option starting at `opt`. In case of an error, this function returns `0` as options need at least one byte storage space.

Definition at line 284 of file coap_option.c.

## ◆ coap_option_clrb()

COAP_STATIC_INLINE COAP_DEPRECATED int coap_option_clrb | ( | coap_opt_filter_t * | filter,
|  | uint16_t | type
| ) |  |

Clears the corresponding bit for `type` in `filter`.

This function returns `1` if bit was cleared or `-1` on error (i.e. bit not set).

Deprecated:
  Use coap_option_filter_unset() instead.

Parameters

  filter | The filter object to change.
  type | The type for which the bit should be cleared.

Returns
  `1` if bit was set, `-1` otherwise.

Definition at line 415 of file coap_option.h.

## ◆ coap_option_getb()

COAP_STATIC_INLINE COAP_DEPRECATED int coap_option_getb | ( | coap_opt_filter_t * | filter,
|  | uint16_t | type
| ) |  |

Gets the corresponding bit for `type` in `filter`.

This function returns `1` if the bit is set `0` if not.

Deprecated:
  Use coap_option_filter_get() instead.

Parameters

  filter | The filter object to read bit from.
  type | The type for which the bit should be read.

Returns
  `1` if bit was set, `0` if not.

Definition at line 431 of file coap_option.h.

## ◆ coap_option_setb()

COAP_STATIC_INLINE COAP_DEPRECATED int coap_option_setb | ( | coap_opt_filter_t * | filter,
|  | uint16_t | type
| ) |  |

Sets the corresponding bit for `type` in `filter`.

This function returns `1` if bit was set or `-1` on error (i.e. when the given type does not fit in the filter).

Deprecated:
  Use coap_option_filter_set() instead.

Parameters

  filter | The filter object to change.
  type | The type for which the bit should be set.

Returns
  `1` if bit was set, `-1` otherwise.

Definition at line 399 of file coap_option.h.