Skip to content

Commit

Permalink
net: lib: lwm2m: Deprecate callback registration API
Browse files Browse the repository at this point in the history
Deprecate old API and create new API using path structs
instead of string references to paths.

Signed-off-by: Jarno Lämsä <[email protected]>
  • Loading branch information
Jarno Lämsä authored and carlescufi committed Jan 19, 2023
1 parent a2e52c5 commit bca0550
Show file tree
Hide file tree
Showing 3 changed files with 256 additions and 18 deletions.
134 changes: 134 additions & 0 deletions include/zephyr/net/lwm2m.h
Original file line number Diff line number Diff line change
Expand Up @@ -1403,6 +1403,8 @@ int lwm2m_get_time(const struct lwm2m_obj_path *path, time_t *buf);
/**
* @brief Set resource (instance) read callback
*
* @deprecated Use lwm2m_register_read_callback() instead.
*
* LwM2M clients can use this to set the callback function for resource reads when data
* handling in the LwM2M engine needs to be bypassed.
* For example reading back opaque binary data from external storage.
Expand All @@ -1418,12 +1420,35 @@ int lwm2m_get_time(const struct lwm2m_obj_path *path, time_t *buf);
*
* @return 0 for success or negative in case of error.
*/
__deprecated
int lwm2m_engine_register_read_callback(const char *pathstr,
lwm2m_engine_get_data_cb_t cb);

/**
* @brief Set resource (instance) read callback
*
* LwM2M clients can use this to set the callback function for resource reads when data
* handling in the LwM2M engine needs to be bypassed.
* For example reading back opaque binary data from external storage.
*
* This callback should not generally be used for any data that might be observed as
* engine does not have any knowledge of data changes.
*
* When separate buffer for data should be used, use lwm2m_engine_set_res_buf() instead
* to set the storage.
*
* @param[in] path LwM2M path as a struct
* @param[in] cb Read resource callback
*
* @return 0 for success or negative in case of error.
*/
int lwm2m_register_read_callback(const struct lwm2m_obj_path *path, lwm2m_engine_get_data_cb_t cb);

/**
* @brief Set resource (instance) pre-write callback
*
* @deprecated Use lwm2m_register_pre_write_callback() instead.
*
* This callback is triggered before setting the value of a resource. It
* can pass a special data buffer to the engine so that the actual resource
* value can be calculated later, etc.
Expand All @@ -1433,12 +1458,30 @@ int lwm2m_engine_register_read_callback(const char *pathstr,
*
* @return 0 for success or negative in case of error.
*/
__deprecated
int lwm2m_engine_register_pre_write_callback(const char *pathstr,
lwm2m_engine_get_data_cb_t cb);

/**
* @brief Set resource (instance) pre-write callback
*
* This callback is triggered before setting the value of a resource. It
* can pass a special data buffer to the engine so that the actual resource
* value can be calculated later, etc.
*
* @param[in] path LwM2M path as a struct
* @param[in] cb Pre-write resource callback
*
* @return 0 for success or negative in case of error.
*/
int lwm2m_register_pre_write_callback(const struct lwm2m_obj_path *path,
lwm2m_engine_get_data_cb_t cb);

/**
* @brief Set resource (instance) validation callback
*
* @deprecated Use lwm2m_register_validate_callback() instead.
*
* This callback is triggered before setting the value of a resource to the
* resource data buffer.
*
Expand All @@ -1456,12 +1499,38 @@ int lwm2m_engine_register_pre_write_callback(const char *pathstr,
*
* @return 0 for success or negative in case of error.
*/
__deprecated
int lwm2m_engine_register_validate_callback(const char *pathstr,
lwm2m_engine_set_data_cb_t cb);

/**
* @brief Set resource (instance) validation callback
*
* This callback is triggered before setting the value of a resource to the
* resource data buffer.
*
* The callback allows an LwM2M client or object to validate the data before
* writing and notify an error if the data should be discarded for any reason
* (by returning a negative error code).
*
* @note All resources that have a validation callback registered are initially
* decoded into a temporary validation buffer. Make sure that
* ``CONFIG_LWM2M_ENGINE_VALIDATION_BUFFER_SIZE`` is large enough to
* store each of the validated resources (individually).
*
* @param[in] path LwM2M path as a struct
* @param[in] cb Validate resource data callback
*
* @return 0 for success or negative in case of error.
*/
int lwm2m_register_validate_callback(const struct lwm2m_obj_path *path,
lwm2m_engine_set_data_cb_t cb);

/**
* @brief Set resource (instance) post-write callback
*
* @deprecated Use lwm2m_register_post_write_callback() instead.
*
* This callback is triggered after setting the value of a resource to the
* resource data buffer.
*
Expand All @@ -1473,48 +1542,113 @@ int lwm2m_engine_register_validate_callback(const char *pathstr,
*
* @return 0 for success or negative in case of error.
*/
__deprecated
int lwm2m_engine_register_post_write_callback(const char *pathstr,
lwm2m_engine_set_data_cb_t cb);

/**
* @brief Set resource (instance) post-write callback
*
* This callback is triggered after setting the value of a resource to the
* resource data buffer.
*
* It allows an LwM2M client or object to post-process the value of a resource
* or trigger other related resource calculations.
*
* @param[in] path LwM2M path as a struct
* @param[in] cb Post-write resource callback
*
* @return 0 for success or negative in case of error.
*/
int lwm2m_register_post_write_callback(const struct lwm2m_obj_path *path,
lwm2m_engine_set_data_cb_t cb);

/**
* @brief Set resource execute event callback
*
* @deprecated Use lwm2m_register_exec_callback() instead.
*
* This event is triggered when the execute method of a resource is enabled.
*
* @param[in] pathstr LwM2M path string "obj/obj-inst/res"
* @param[in] cb Execute resource callback
*
* @return 0 for success or negative in case of error.
*/
__deprecated
int lwm2m_engine_register_exec_callback(const char *pathstr,
lwm2m_engine_execute_cb_t cb);

/**
* @brief Set resource execute event callback
*
* This event is triggered when the execute method of a resource is enabled.
*
* @param[in] path LwM2M path as a struct
* @param[in] cb Execute resource callback
*
* @return 0 for success or negative in case of error.
*/
int lwm2m_register_exec_callback(const struct lwm2m_obj_path *path, lwm2m_engine_execute_cb_t cb);

/**
* @brief Set object instance create event callback
*
* @deprecated Use lwm2m_register_create_callback instead.
*
* This event is triggered when an object instance is created.
*
* @param[in] obj_id LwM2M object id
* @param[in] cb Create object instance callback
*
* @return 0 for success or negative in case of error.
*/
__deprecated
int lwm2m_engine_register_create_callback(uint16_t obj_id,
lwm2m_engine_user_cb_t cb);

/**
* @brief Set object instance create event callback
*
* This event is triggered when an object instance is created.
*
* @param[in] obj_id LwM2M object id
* @param[in] cb Create object instance callback
*
* @return 0 for success or negative in case of error.
*/
int lwm2m_register_create_callback(uint16_t obj_id,
lwm2m_engine_user_cb_t cb);

/**
* @brief Set object instance delete event callback
*
* @deprecated Use lwm2m_register_delete_callback instead
*
* This event is triggered when an object instance is deleted.
*
* @param[in] obj_id LwM2M object id
* @param[in] cb Delete object instance callback
*
* @return 0 for success or negative in case of error.
*/
__deprecated
int lwm2m_engine_register_delete_callback(uint16_t obj_id,
lwm2m_engine_user_cb_t cb);

/**
* @brief Set object instance delete event callback
*
* This event is triggered when an object instance is deleted.
*
* @param[in] obj_id LwM2M object id
* @param[in] cb Delete object instance callback
*
* @return 0 for success or negative in case of error.
*/
int lwm2m_register_delete_callback(uint16_t obj_id,
lwm2m_engine_user_cb_t cb);

/**
* @brief Resource read-only value bit
*/
Expand Down
Loading

0 comments on commit bca0550

Please sign in to comment.