Program Listing for File defs.h
↰ Return to documentation for file (include_public/anj/dm/defs.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_DM_DEFS_H
# define ANJ_DM_DEFS_H
# include <anj/defs.h>
# ifdef __cplusplus
extern "C" {
# endif
typedef enum {
ANJ_DM_RES_R,
ANJ_DM_RES_RM,
ANJ_DM_RES_W,
ANJ_DM_RES_WM,
ANJ_DM_RES_RW,
ANJ_DM_RES_RWM,
ANJ_DM_RES_E,
} anj_dm_res_kind_t;
typedef enum {
ANJ_DM_TRANSACTION_SUCCESS = 0,
ANJ_DM_TRANSACTION_FAILURE = -1
} anj_dm_transaction_result_t;
typedef struct anj_dm_res_struct {
anj_rid_t rid;
anj_data_type_t type;
anj_dm_res_kind_t kind;
const anj_riid_t *insts;
uint16_t max_inst_count;
} anj_dm_res_t;
typedef struct anj_dm_obj_inst_struct {
anj_iid_t iid;
const anj_dm_res_t *resources;
uint16_t res_count;
} anj_dm_obj_inst_t;
typedef struct anj_dm_handlers_struct anj_dm_handlers_t;
typedef struct anj_dm_obj_struct {
anj_oid_t oid;
const char *version;
const anj_dm_handlers_t *handlers;
const anj_dm_obj_inst_t *insts;
uint16_t max_inst_count;
} anj_dm_obj_t;
typedef int anj_dm_res_read_t(anj_t *anj,
const anj_dm_obj_t *obj,
anj_iid_t iid,
anj_rid_t rid,
anj_riid_t riid,
anj_res_value_t *out_value);
typedef int anj_dm_res_write_t(anj_t *anj,
const anj_dm_obj_t *obj,
anj_iid_t iid,
anj_rid_t rid,
anj_riid_t riid,
const anj_res_value_t *value);
typedef int anj_dm_res_execute_t(anj_t *anj,
const anj_dm_obj_t *obj,
anj_iid_t iid,
anj_rid_t rid,
const char *execute_arg,
size_t execute_arg_len);
typedef int anj_dm_res_inst_create_t(anj_t *anj,
const anj_dm_obj_t *obj,
anj_iid_t iid,
anj_rid_t rid,
anj_riid_t riid);
typedef int anj_dm_res_inst_delete_t(anj_t *anj,
const anj_dm_obj_t *obj,
anj_iid_t iid,
anj_rid_t rid,
anj_riid_t riid);
typedef int
anj_dm_inst_create_t(anj_t *anj, const anj_dm_obj_t *obj, anj_iid_t iid);
typedef int
anj_dm_inst_delete_t(anj_t *anj, const anj_dm_obj_t *obj, anj_iid_t iid);
typedef int
anj_dm_inst_reset_t(anj_t *anj, const anj_dm_obj_t *obj, anj_iid_t iid);
typedef int anj_dm_transaction_begin_t(anj_t *anj, const anj_dm_obj_t *obj);
typedef int anj_dm_transaction_validate_t(anj_t *anj, const anj_dm_obj_t *obj);
typedef void anj_dm_transaction_end_t(anj_t *anj,
const anj_dm_obj_t *obj,
anj_dm_transaction_result_t result);
struct anj_dm_handlers_struct {
anj_dm_inst_create_t *inst_create;
anj_dm_inst_delete_t *inst_delete;
anj_dm_inst_reset_t *inst_reset;
anj_dm_transaction_begin_t *transaction_begin;
anj_dm_transaction_validate_t *transaction_validate;
anj_dm_transaction_end_t *transaction_end;
anj_dm_res_read_t *res_read;
anj_dm_res_write_t *res_write;
anj_dm_res_execute_t *res_execute;
anj_dm_res_inst_create_t *res_inst_create;
anj_dm_res_inst_delete_t *res_inst_delete;
};
# ifdef __cplusplus
}
# endif
#endif // ANJ_DM_DEFS_H