Anjay Lite
Loading...
Searching...
No Matches
coap_downloader.h
Go to the documentation of this file.
1/*
2 * Copyright 2023-2025 AVSystem <avsystem@avsystem.com>
3 * AVSystem Anjay Lite LwM2M SDK
4 * All rights reserved.
5 *
6 * Licensed under AVSystem Anjay Lite LwM2M Client SDK - Non-Commercial License.
7 * See the attached LICENSE file for details.
8 */
9
10#include <anj/init.h>
11
12#ifndef ANJ_COAP_DOWNLOADER_H
13# define ANJ_COAP_DOWNLOADER_H
14
16
17# include <anj/defs.h>
18
19# define ANJ_INTERNAL_INCLUDE_EXCHANGE
20# include <anj_internal/exchange.h>
21# undef ANJ_INTERNAL_INCLUDE_EXCHANGE
22
23# ifdef __cplusplus
24extern "C" {
25# endif
26
27# ifdef ANJ_WITH_COAP_DOWNLOADER
28
35# define ANJ_COAP_DOWNLOADER_ERR_INVALID_URI -1
36
45# define ANJ_COAP_DOWNLOADER_ERR_IN_PROGRESS -2
46
51# define ANJ_COAP_DOWNLOADER_ERR_INVALID_CONFIGURATION -3
52
57# define ANJ_COAP_DOWNLOADER_ERR_TERMINATED -4
65# define ANJ_COAP_DOWNLOADER_ERR_NETWORK -5
66
71# define ANJ_COAP_DOWNLOADER_ERR_INVALID_RESPONSE -6
72
77# define ANJ_COAP_DOWNLOADER_ERR_TIMEOUT -7
78
86# define ANJ_COAP_DOWNLOADER_ERR_INTERNAL -8
87
94# define ANJ_COAP_DOWNLOADER_ERR_ETAG_MISMATCH -9
95
99typedef enum {
105 ANJ_COAP_DOWNLOADER_STATUS_INITIAL,
110 ANJ_COAP_DOWNLOADER_STATUS_STARTING,
116 ANJ_COAP_DOWNLOADER_STATUS_DOWNLOADING,
121 ANJ_COAP_DOWNLOADER_STATUS_FINISHING,
126 ANJ_COAP_DOWNLOADER_STATUS_FINISHED,
134 ANJ_COAP_DOWNLOADER_STATUS_FAILED,
135} anj_coap_downloader_status_t;
136
154typedef void
155anj_coap_downloader_event_callback_t(void *arg,
156 anj_coap_downloader_t *coap_downloader,
157 anj_coap_downloader_status_t conn_status,
158 const uint8_t *data,
159 size_t data_len);
160
165typedef struct anjay_coap_downloader_configuration_struct {
172 anj_coap_downloader_event_callback_t *event_cb;
173
178 void *event_cb_arg;
179
183 const anj_net_config_t *net_socket_cfg;
184
189 const anj_exchange_udp_tx_params_t *udp_tx_params;
190} anj_coap_downloader_configuration_t;
191
202int anj_coap_downloader_init(anj_coap_downloader_t *coap_downloader,
203 const anj_coap_downloader_configuration_t *config);
204
217void anj_coap_downloader_step(anj_coap_downloader_t *coap_downloader);
218
236int anj_coap_downloader_start(anj_coap_downloader_t *coap_downloader,
237 const char *uri);
238
261void anj_coap_downloader_terminate(anj_coap_downloader_t *coap_downloader);
262
275int anj_coap_downloader_get_error(anj_coap_downloader_t *coap_downloader);
276
277# define ANJ_INTERNAL_INCLUDE_COAP_DOWNLOADER
278# include <anj_internal/coap_downloader.h>
279# undef ANJ_INTERNAL_INCLUDE_COAP_DOWNLOADER
280
281# endif // ANJ_WITH_COAP_DOWNLOADER
282
283# ifdef __cplusplus
284}
285# endif
286
287#endif // ANJ_CORE_H
Definition defs.h:184
Definition anj_net_api.h:378