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