1c87c5fbaSopenharmony_ci/* 2c87c5fbaSopenharmony_ci * coap_forward_decls.h -- Forward declarations of structures that are 3c87c5fbaSopenharmony_ci * opaque to application programming that use libcoap. 4c87c5fbaSopenharmony_ci * 5c87c5fbaSopenharmony_ci * Copyright (C) 2019-2023 Jon Shallow <supjps-libcoap@jpshallow.com> 6c87c5fbaSopenharmony_ci * 7c87c5fbaSopenharmony_ci * SPDX-License-Identifier: BSD-2-Clause 8c87c5fbaSopenharmony_ci * 9c87c5fbaSopenharmony_ci * This file is part of the CoAP library libcoap. Please see README for terms 10c87c5fbaSopenharmony_ci * of use. 11c87c5fbaSopenharmony_ci */ 12c87c5fbaSopenharmony_ci 13c87c5fbaSopenharmony_ci/** 14c87c5fbaSopenharmony_ci * @file coap_forward_decls.h 15c87c5fbaSopenharmony_ci * @brief CoAP forward definitions 16c87c5fbaSopenharmony_ci */ 17c87c5fbaSopenharmony_ci 18c87c5fbaSopenharmony_ci#ifndef COAP_FORWARD_DECLS_H_ 19c87c5fbaSopenharmony_ci#define COAP_FORWARD_DECLS_H_ 20c87c5fbaSopenharmony_ci 21c87c5fbaSopenharmony_ci/* 22c87c5fbaSopenharmony_ci * Define the forward declations for the structures (even non-opaque) 23c87c5fbaSopenharmony_ci * so that applications (using coap.h) as well as libcoap builds 24c87c5fbaSopenharmony_ci * can reference them (and makes .h file dependencies a lot simpler). 25c87c5fbaSopenharmony_ci */ 26c87c5fbaSopenharmony_cistruct coap_address_t; 27c87c5fbaSopenharmony_cistruct coap_bin_const_t; 28c87c5fbaSopenharmony_cistruct coap_dtls_pki_t; 29c87c5fbaSopenharmony_cistruct coap_str_const_t; 30c87c5fbaSopenharmony_cistruct coap_string_t; 31c87c5fbaSopenharmony_ci 32c87c5fbaSopenharmony_citypedef struct coap_address_t coap_address_t; 33c87c5fbaSopenharmony_ci 34c87c5fbaSopenharmony_ci/* 35c87c5fbaSopenharmony_ci * typedef all the opaque structures that are defined in coap_*_internal.h 36c87c5fbaSopenharmony_ci */ 37c87c5fbaSopenharmony_ci 38c87c5fbaSopenharmony_ci/* ************* coap_async_internal.h ***************** */ 39c87c5fbaSopenharmony_ci 40c87c5fbaSopenharmony_ci/** 41c87c5fbaSopenharmony_ci * Async Entry information. 42c87c5fbaSopenharmony_ci */ 43c87c5fbaSopenharmony_citypedef struct coap_async_t coap_async_t; 44c87c5fbaSopenharmony_ci 45c87c5fbaSopenharmony_ci/* ************* coap_block_internal.h ***************** */ 46c87c5fbaSopenharmony_ci 47c87c5fbaSopenharmony_ci/* 48c87c5fbaSopenharmony_ci * Block handling information. 49c87c5fbaSopenharmony_ci */ 50c87c5fbaSopenharmony_citypedef struct coap_lg_xmit_t coap_lg_xmit_t; 51c87c5fbaSopenharmony_citypedef struct coap_lg_crcv_t coap_lg_crcv_t; 52c87c5fbaSopenharmony_citypedef struct coap_lg_srcv_t coap_lg_srcv_t; 53c87c5fbaSopenharmony_ci 54c87c5fbaSopenharmony_ci/* ************* coap_cache_internal.h ***************** */ 55c87c5fbaSopenharmony_ci 56c87c5fbaSopenharmony_ci/* 57c87c5fbaSopenharmony_ci * Cache Entry information. 58c87c5fbaSopenharmony_ci */ 59c87c5fbaSopenharmony_citypedef struct coap_cache_entry_t coap_cache_entry_t; 60c87c5fbaSopenharmony_citypedef struct coap_cache_key_t coap_cache_key_t; 61c87c5fbaSopenharmony_ci 62c87c5fbaSopenharmony_ci/* ************* coap_io_internal.h ***************** */ 63c87c5fbaSopenharmony_ci 64c87c5fbaSopenharmony_ci/** 65c87c5fbaSopenharmony_ci * coap_socket_t and coap_packet_t information. 66c87c5fbaSopenharmony_ci */ 67c87c5fbaSopenharmony_citypedef struct coap_packet_t coap_packet_t; 68c87c5fbaSopenharmony_citypedef struct coap_socket_t coap_socket_t; 69c87c5fbaSopenharmony_ci 70c87c5fbaSopenharmony_ci/* ************* coap_net_internal.h ***************** */ 71c87c5fbaSopenharmony_ci 72c87c5fbaSopenharmony_ci/* 73c87c5fbaSopenharmony_ci * Net information. 74c87c5fbaSopenharmony_ci */ 75c87c5fbaSopenharmony_citypedef struct coap_context_t coap_context_t; 76c87c5fbaSopenharmony_citypedef struct coap_queue_t coap_queue_t; 77c87c5fbaSopenharmony_ci 78c87c5fbaSopenharmony_ci/* ************* coap_oscore_internal.h ***************** */ 79c87c5fbaSopenharmony_ci 80c87c5fbaSopenharmony_ci/* 81c87c5fbaSopenharmony_ci * OSCORE information. 82c87c5fbaSopenharmony_ci */ 83c87c5fbaSopenharmony_citypedef struct coap_oscore_conf_t coap_oscore_conf_t; 84c87c5fbaSopenharmony_ci 85c87c5fbaSopenharmony_ci/* ************* coap_pdu_internal.h ***************** */ 86c87c5fbaSopenharmony_ci 87c87c5fbaSopenharmony_ci/** 88c87c5fbaSopenharmony_ci * PDU information. 89c87c5fbaSopenharmony_ci */ 90c87c5fbaSopenharmony_citypedef struct coap_pdu_t coap_pdu_t; 91c87c5fbaSopenharmony_ci 92c87c5fbaSopenharmony_ci/* ************* coap_resource_internal.h ***************** */ 93c87c5fbaSopenharmony_ci 94c87c5fbaSopenharmony_ci/* 95c87c5fbaSopenharmony_ci * Resource information. 96c87c5fbaSopenharmony_ci */ 97c87c5fbaSopenharmony_citypedef struct coap_attr_t coap_attr_t; 98c87c5fbaSopenharmony_citypedef struct coap_resource_t coap_resource_t; 99c87c5fbaSopenharmony_ci 100c87c5fbaSopenharmony_ci/* ************* coap_session_internal.h ***************** */ 101c87c5fbaSopenharmony_ci 102c87c5fbaSopenharmony_ci/* 103c87c5fbaSopenharmony_ci * Session information. 104c87c5fbaSopenharmony_ci */ 105c87c5fbaSopenharmony_citypedef struct coap_addr_hash_t coap_addr_hash_t; 106c87c5fbaSopenharmony_citypedef struct coap_endpoint_t coap_endpoint_t; 107c87c5fbaSopenharmony_citypedef struct coap_session_t coap_session_t; 108c87c5fbaSopenharmony_ci 109c87c5fbaSopenharmony_ci/* ************* coap_subscribe_internal.h ***************** */ 110c87c5fbaSopenharmony_ci 111c87c5fbaSopenharmony_ci/* 112c87c5fbaSopenharmony_ci * Observe subscriber information. 113c87c5fbaSopenharmony_ci */ 114c87c5fbaSopenharmony_citypedef struct coap_subscription_t coap_subscription_t; 115c87c5fbaSopenharmony_ci 116c87c5fbaSopenharmony_ci#endif /* COAP_FORWARD_DECLS_H_ */ 117