45 #ifndef LWM2M_ENGINE_H 46 #define LWM2M_ENGINE_H 51 #define LWM2M_FLOAT32_BITS 10 52 #define LWM2M_FLOAT32_FRAC (1L << LWM2M_FLOAT32_BITS) 56 LWM2M_TEXT_PLAIN = 1541,
60 LWM2M_OLD_JSON = 1543,
61 LWM2M_OLD_OPAQUE = 1544
62 } lwm2m_content_format_t;
64 void lwm2m_engine_init(
void);
66 int lwm2m_engine_set_rd_data(lwm2m_buffer_t *outbuf,
int block);
68 typedef lwm2m_status_t
69 (* lwm2m_object_instance_callback_t)(lwm2m_object_instance_t *object,
70 lwm2m_context_t *ctx);
72 (* lwm2m_resource_dim_callback_t)(lwm2m_object_instance_t *object,
73 uint16_t resource_id);
75 #define LWM2M_OBJECT_INSTANCE_NONE 0xffff 77 struct lwm2m_object_instance {
78 lwm2m_object_instance_t *next;
82 const lwm2m_resource_id_t *resource_ids;
83 uint16_t resource_count;
85 lwm2m_object_instance_callback_t callback;
86 lwm2m_resource_dim_callback_t resource_dim_callback;
91 lwm2m_object_instance_t *(* create_instance)(uint16_t instance_id,
92 lwm2m_status_t *status);
93 int (* delete_instance)(uint16_t instance_id, lwm2m_status_t *status);
94 lwm2m_object_instance_t *(* get_first)(lwm2m_status_t *status);
95 lwm2m_object_instance_t *(* get_next)(lwm2m_object_instance_t *instance,
96 lwm2m_status_t *status);
97 lwm2m_object_instance_t *(* get_by_id)(uint16_t instance_id,
98 lwm2m_status_t *status);
99 } lwm2m_object_impl_t;
101 typedef struct lwm2m_object lwm2m_object_t;
102 struct lwm2m_object {
103 lwm2m_object_t *next;
104 const lwm2m_object_impl_t *impl;
107 lwm2m_object_instance_t *lwm2m_engine_get_instance_buffer(
void);
109 int lwm2m_engine_has_instance(uint16_t object_id, uint16_t instance_id);
110 int lwm2m_engine_add_object(lwm2m_object_instance_t *
object);
111 void lwm2m_engine_remove_object(lwm2m_object_instance_t *
object);
112 int lwm2m_engine_add_generic_object(lwm2m_object_t *
object);
113 void lwm2m_engine_remove_generic_object(lwm2m_object_t *
object);
114 void lwm2m_notify_object_observers(lwm2m_object_instance_t *obj,
117 void lwm2m_engine_set_opaque_callback(lwm2m_context_t *ctx, lwm2m_write_opaque_callback cb);
Header file for the LWM2M object API
Queue Mode Configuration Parameters