blob: af6c6a74d0eeddc8507fcad527771697578aef3f [file] [log] [blame]
/*
* Copyright (c) 2022 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef LWM2M_REGISTRY_H
#define LWM2M_REGISTRY_H
#include "lwm2m_object.h"
int path_to_objs(const struct lwm2m_obj_path *path, struct lwm2m_engine_obj_inst **obj_inst,
struct lwm2m_engine_obj_field **obj_field, struct lwm2m_engine_res **res,
struct lwm2m_engine_res_inst **res_inst);
struct lwm2m_engine_obj_field *lwm2m_get_engine_obj_field(struct lwm2m_engine_obj *obj, int res_id);
int lwm2m_create_obj_inst(uint16_t obj_id, uint16_t obj_inst_id,
struct lwm2m_engine_obj_inst **obj_inst);
int lwm2m_delete_obj_inst(uint16_t obj_id, uint16_t obj_inst_id);
int lwm2m_get_or_create_engine_obj(struct lwm2m_message *msg,
struct lwm2m_engine_obj_inst **obj_inst, uint8_t *created);
void lwm2m_register_obj(struct lwm2m_engine_obj *obj);
void lwm2m_unregister_obj(struct lwm2m_engine_obj *obj);
/* Create or Allocate resource instance. */
int lwm2m_engine_get_create_res_inst(struct lwm2m_obj_path *path, struct lwm2m_engine_res **res,
struct lwm2m_engine_res_inst **res_inst);
struct lwm2m_engine_obj *lwm2m_engine_get_obj(const struct lwm2m_obj_path *path);
struct lwm2m_engine_obj_inst *lwm2m_engine_get_obj_inst(const struct lwm2m_obj_path *path);
struct lwm2m_engine_res *lwm2m_engine_get_res(const struct lwm2m_obj_path *path);
struct lwm2m_engine_res_inst *lwm2m_engine_get_res_inst(const struct lwm2m_obj_path *path);
struct lwm2m_engine_obj *get_engine_obj(int obj_id);
struct lwm2m_engine_obj_inst *get_engine_obj_inst(int obj_id, int obj_inst_id);
struct lwm2m_engine_obj_inst *next_engine_obj_inst(int obj_id, int obj_inst_id);
bool lwm2m_engine_shall_report_obj_version(const struct lwm2m_engine_obj *obj);
int lwm2m_engine_get_resource(const char *pathstr, struct lwm2m_engine_res **res);
void lwm2m_engine_get_binding(char *binding);
void lwm2m_engine_get_queue_mode(char *queue);
size_t lwm2m_engine_get_opaque_more(struct lwm2m_input_context *in, uint8_t *buf, size_t buflen,
struct lwm2m_opaque_context *opaque, bool *last_block);
/* Resources */
sys_slist_t *lwm2m_engine_obj_list(void);
sys_slist_t *lwm2m_engine_obj_inst_list(void);
#endif /* LWM2M_REGISTRY_H */