| /* |
| * Copyright (c) 2018 Intel Corporation |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| /** |
| * @file |
| * |
| * @brief CoAP implementation for Zephyr. |
| */ |
| |
| #ifndef ZEPHYR_INCLUDE_NET_COAP_LINK_FORMAT_H_ |
| #define ZEPHYR_INCLUDE_NET_COAP_LINK_FORMAT_H_ |
| |
| /** |
| * @addtogroup coap COAP Library |
| * @{ |
| */ |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| /** |
| * This resource should be added before all other resources that should be |
| * included in the responses of the .well-known/core resource if is to be used with |
| * coap_well_known_core_get. |
| */ |
| #define COAP_WELL_KNOWN_CORE_PATH \ |
| ((const char * const[]) { ".well-known", "core", NULL }) |
| |
| /** |
| * @brief Build a CoAP response for a .well-known/core CoAP request. |
| * |
| * @param resource Array of known resources, terminated with an empty resource |
| * @param request A pointer to the .well-known/core CoAP request |
| * @param response A pointer to a CoAP response, will be initialized |
| * @param data A data pointer to be used to build the CoAP response |
| * @param data_len The maximum length of the data buffer |
| * |
| * @return 0 in case of success or negative in case of error. |
| */ |
| int coap_well_known_core_get(struct coap_resource *resource, |
| const struct coap_packet *request, |
| struct coap_packet *response, |
| uint8_t *data, uint16_t data_len); |
| |
| /** |
| * @brief Build a CoAP response for a .well-known/core CoAP request. |
| * |
| * @param resources Array of known resources |
| * @param resources_len Number of resources in the array |
| * @param request A pointer to the .well-known/core CoAP request |
| * @param response A pointer to a CoAP response, will be initialized |
| * @param data A data pointer to be used to build the CoAP response |
| * @param data_len The maximum length of the data buffer |
| * |
| * @return 0 in case of success or negative in case of error. |
| */ |
| int coap_well_known_core_get_len(struct coap_resource *resources, |
| size_t resources_len, |
| const struct coap_packet *request, |
| struct coap_packet *response, |
| uint8_t *data, uint16_t data_len); |
| |
| /** |
| * In case you want to add attributes to the resources included in the |
| * 'well-known/core' "virtual" resource, the 'user_data' field should point |
| * to a valid coap_core_metadata structure. |
| */ |
| struct coap_core_metadata { |
| const char * const *attributes; |
| void *user_data; |
| }; |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| /** |
| * @} |
| */ |
| |
| #endif /* ZEPHYR_INCLUDE_NET_COAP_LINK_FORMAT_H_ */ |