Program Listing for File lwm2m_send.h

Return to documentation for file (include_public/anj/lwm2m_send.h)

/*
 * Copyright 2023-2026 AVSystem <avsystem@avsystem.com>
 * AVSystem Anjay Lite LwM2M SDK
 * All rights reserved.
 *
 * Licensed under AVSystem Anjay Lite LwM2M Client SDK - Non-Commercial License.
 * See the attached LICENSE file for details.
 */

#include <anj/init.h>

#ifndef ANJ_LWM2M_SEND_H
#    define ANJ_LWM2M_SEND_H

#    include <anj/defs.h>

#    ifdef __cplusplus
extern "C" {
#    endif

#    ifdef ANJ_WITH_LWM2M_SEND

#        define ANJ_SEND_ID_ALL UINT16_MAX

#        define ANJ_SEND_SUCCESS 0

#        define ANJ_SEND_ERR_TIMEOUT -1

#        define ANJ_SEND_ERR_ABORT -2

#        define ANJ_SEND_ERR_REJECTED -3

#        define ANJ_SEND_ERR_NETWORK -4

#        define ANJ_SEND_ERR_INTERNAL -5

#        define ANJ_SEND_ERR_NO_REQUEST_FOUND -6

#        define ANJ_SEND_ERR_NO_SPACE -7

#        define ANJ_SEND_ERR_NOT_ALLOWED -8

#        define ANJ_SEND_ERR_DATA_NOT_VALID -9

 /* end of anj_send_errors */
typedef enum {
#        ifdef ANJ_WITH_SENML_CBOR
    ANJ_SEND_CONTENT_FORMAT_SENML_CBOR,
#        endif // ANJ_WITH_SENML_CBOR
#        ifdef ANJ_WITH_LWM2M_CBOR
    ANJ_SEND_CONTENT_FORMAT_LWM2M_CBOR,
#        endif // ANJ_WITH_LWM2M_CBOR
} anj_send_content_format_t;

typedef void anj_send_finished_handler_t(anj_t *anjay,
                                         uint16_t send_id,
                                         int result,
                                         void *data);

typedef struct {
    const anj_io_out_entry_t *records;

    size_t records_cnt;

    anj_send_finished_handler_t *finished_handler;

    void *data;

    anj_send_content_format_t content_format;
} anj_send_request_t;

int anj_send_new_request(anj_t *anj,
                         const anj_send_request_t *send_request,
                         uint16_t *out_send_id);

int anj_send_abort(anj_t *anj, uint16_t send_id);

#        define ANJ_INTERNAL_INCLUDE_SEND
#        include <anj_internal/lwm2m_send.h>
#        undef ANJ_INTERNAL_INCLUDE_SEND
#    endif // ANJ_WITH_LWM2M_SEND

#    ifdef __cplusplus
}
#    endif

#endif // ANJ_LWM2M_SEND_H