void zblib_driver_free(ZigBeeDriver *driver)
{
- if (driver == NULL) {
- Z_LOGE("driver is NULL");
- return;
- }
+ zblib_check_null_ret("driver", driver);
/* Invoke free hook */
if (driver->free_hook_fn)
g_free(driver);
}
-gboolean zblib_driver_link_object(ZigBeeDriver *driver, gpointer object)
+ZigBeeService *zblib_driver_ref_service(ZigBeeDriver *driver)
{
- if (driver == NULL) {
- Z_LOGE("driver is NULL");
- return FALSE;
- }
+ zblib_check_null_ret_error("driver", driver, NULL);
+
+ return driver->service;
+}
+
+ZigBeePlugin *zblib_driver_ref_plugin(ZigBeeDriver *driver)
+{
+ zblib_check_null_ret_error("driver", driver, NULL);
+
+ return driver->plugin;
+}
+
+gboolean zblib_driver_link_object(ZigBeeDriver *driver,
+ gpointer object)
+{
+ zblib_check_null_ret_error("driver", driver, FALSE);
driver->priv_object = object;
gpointer zblib_driver_ref_object(ZigBeeDriver *driver)
{
- if (driver == NULL) {
- Z_LOGE("driver is NULL");
- return NULL;
- }
+ zblib_check_null_ret_error("driver", driver, NULL);
return driver->priv_object;
}
-gboolean zblib_driver_set_dispatcher(ZigBeeDriver *driver, ZblibDriverDispatcher_t dispatcher_fn)
+gboolean zblib_driver_set_dispatcher(ZigBeeDriver *driver,
+ ZblibDriverDispatcher_t dispatcher_fn)
{
- if (driver == NULL) {
- Z_LOGE("driver is NULL");
- return FALSE;
- }
+ zblib_check_null_ret_error("driver", driver, FALSE);
driver->dispatcher_fn = dispatcher_fn;
return TRUE;
}
-gboolean zblib_driver_set_free_hook(ZigBeeDriver *driver, ZblibDriverFreeHook_t free_hook_fn)
+gboolean zblib_driver_set_free_hook(ZigBeeDriver *driver,
+ ZblibDriverFreeHook_t free_hook_fn)
{
- if (driver == NULL) {
- Z_LOGE("driver is NULL");
- return FALSE;
- }
+ zblib_check_null_ret_error("driver", driver, FALSE);
driver->free_hook_fn = free_hook_fn;
ZblibDriverType_e zblib_driver_ref_driver_type(ZigBeeDriver *driver)
{
- if (driver == NULL) {
- Z_LOGE("driver is NULL");
- return ZBLIB_DRIVER_TYPE_NONE;
- }
+ zblib_check_null_ret_error("driver",
+ driver, ZBLIB_DRIVER_TYPE_NONE);
return driver->driver_type;
-}
\ No newline at end of file
+}
+
+gboolean zblib_driver_dispatch_request(ZigBeeDriver *driver,
+ guint request_id)
+{
+ zblib_check_null_ret_error("driver", driver, FALSE);
+ zblib_check_null_ret_error("driver->dispatcher_fn",
+ driver->dispatcher_fn, FALSE);
+
+ /* Dispatch request to driver dispatcher function */
+ return driver->dispatcher_fn(driver, request_id);
+}