61 lines
2.1 KiB
C
61 lines
2.1 KiB
C
/*
|
|
* Copyright (c) 2017 Linaro Limited
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
#ifndef LWM2M_ENGINE_H
|
|
#define LWM2M_ENGINE_H
|
|
|
|
#include "lwm2m_object.h"
|
|
|
|
#define ZOAP_RESPONSE_CODE_CLASS(x) (x >> 5)
|
|
#define ZOAP_RESPONSE_CODE_DETAIL(x) (x & 0x1F)
|
|
|
|
/* TODO: */
|
|
#define NOTIFY_OBSERVER(o, i, r) lwm2m_notify_observer(o, i, r)
|
|
#define NOTIFY_OBSERVER_PATH(path) lwm2m_notify_observer_path(path)
|
|
|
|
char *lwm2m_sprint_ip_addr(const struct sockaddr *addr);
|
|
|
|
int lwm2m_notify_observer(u16_t obj_id, u16_t obj_inst_id, u16_t res_id);
|
|
int lwm2m_notify_observer_path(struct lwm2m_obj_path *path);
|
|
|
|
void lwm2m_register_obj(struct lwm2m_engine_obj *obj);
|
|
void lwm2m_unregister_obj(struct lwm2m_engine_obj *obj);
|
|
struct lwm2m_engine_obj_field *
|
|
lwm2m_get_engine_obj_field(struct lwm2m_engine_obj *obj, int res_id);
|
|
int lwm2m_create_obj_inst(u16_t obj_id, u16_t obj_inst_id,
|
|
struct lwm2m_engine_obj_inst **obj_inst);
|
|
int lwm2m_delete_obj_inst(u16_t obj_id, u16_t obj_inst_id);
|
|
int lwm2m_get_or_create_engine_obj(struct lwm2m_engine_context *context,
|
|
struct lwm2m_engine_obj_inst **obj_inst,
|
|
u8_t *created);
|
|
|
|
int lwm2m_init_message(struct net_context *net_ctx, struct zoap_packet *zpkt,
|
|
struct net_pkt **pkt, u8_t type, u8_t code, u16_t mid,
|
|
const u8_t *token, u8_t tkl);
|
|
struct zoap_pending *lwm2m_init_message_pending(struct zoap_packet *zpkt,
|
|
struct sockaddr *addr,
|
|
struct zoap_pending *zpendings,
|
|
int num_zpendings);
|
|
void lwm2m_init_message_cleanup(struct net_pkt *pkt,
|
|
struct zoap_pending *pending,
|
|
struct zoap_reply *reply);
|
|
|
|
u16_t lwm2m_get_rd_data(u8_t *client_data, u16_t size);
|
|
|
|
int lwm2m_write_handler(struct lwm2m_engine_obj_inst *obj_inst,
|
|
struct lwm2m_engine_res_inst *res,
|
|
struct lwm2m_engine_obj_field *obj_field,
|
|
struct lwm2m_engine_context *context);
|
|
|
|
void lwm2m_udp_receive(struct net_context *ctx, struct net_pkt *pkt,
|
|
struct zoap_pending *zpendings, int num_zpendings,
|
|
struct zoap_reply *zreplies, int num_zreplies,
|
|
int (*udp_request_handler)(struct zoap_packet *request,
|
|
struct zoap_packet *response,
|
|
struct sockaddr *from_addr));
|
|
|
|
#endif /* LWM2M_ENGINE_H */
|