Program Listing for File bg96_nidd.h

Return to documentation for file (include_public/anjay/bg96_nidd.h)

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

#include <anjay/core.h>
#include <anjay/nidd.h>

#ifdef __cplusplus
extern "C" {
#endif

typedef int anjay_bg96_nidd_getline_t(void *user_context,
                                      char *out_line_buffer,
                                      size_t buffer_size,
                                      avs_time_monotonic_t deadline);

typedef int anjay_bg96_nidd_write_t(void *user_context, const char *buffer);

typedef enum {
    ANJAY_BG96_NIDD_APN,
    ANJAY_BG96_NIDD_USERNAME,
    ANJAY_BG96_NIDD_PASSWORD
} anjay_bg96_nidd_parameter_t;

typedef int
anjay_bg96_nidd_get_parameter_t(void *user_context,
                                anjay_bg96_nidd_parameter_t parameter,
                                char *out_value,
                                size_t size);

typedef struct {
    const void *system_descriptor;

    void *user_context;
    anjay_bg96_nidd_getline_t *modem_getline;
    anjay_bg96_nidd_write_t *modem_write;
    anjay_bg96_nidd_get_parameter_t *modem_get_parameter;

    size_t outgoing_mtu;
    size_t incoming_mtu;
} anjay_bg96_nidd_config_t;

anjay_nidd_driver_t *
anjay_bg96_nidd_driver_create(const anjay_bg96_nidd_config_t *config);

#ifdef __cplusplus
}
#endif

#endif /* ANJAY_INCLUDE_ANJAY_BG96_NIDD_H */