Request ID (skeleton)
[platform/core/connectivity/zigbee-manager.git] / zigbee-daemon / zigbee-lib / include / zblib_driver.h
index d4530b5..715c7d4 100644 (file)
 #ifndef __ZIGBEE_LIB_DRIVER_H__
 #define __ZIGBEE_LIB_DRIVER_H__
 
-/* Driver APIs */
+/**< ZigBee driver dispatcher function pointer */
+typedef gboolean (*ZblibDriverDispatcher_t)(ZigBeeDriver *driver, guint request_id);
+
+/**< ZigBee driver free hook function pointer */
+typedef void (*ZblibDriverFreeHook_t)(ZigBeeDriver *driver);
+
+/**< Driver APIs */
 ZigBeeDriver *zblib_driver_new(ZigBeePlugin *plugin,
-       const gchar *object_name,
-       gint object_type);
+       const gchar *driver_name,
+       ZblibDriverType_e driver_type);
 void zblib_driver_free(ZigBeeDriver *driver);
 
+ZigBeeService *zblib_driver_ref_service(ZigBeeDriver *driver);
+ZigBeePlugin *zblib_driver_ref_plugin(ZigBeeDriver *driver);
+
+gboolean zblib_driver_link_object(ZigBeeDriver *driver, gpointer object);
+gpointer zblib_driver_ref_object(ZigBeeDriver *driver);
+
+gboolean zblib_driver_set_dispatcher(ZigBeeDriver *driver, ZblibDriverDispatcher_t dispatcher_fn);
+gboolean zblib_driver_set_free_hook(ZigBeeDriver *driver, ZblibDriverFreeHook_t free_hook_fn);
+
+ZblibDriverType_e zblib_driver_ref_driver_type(ZigBeeDriver *driver);
+
+gboolean zblib_driver_dispatch_request(ZigBeeDriver *driver, guint request_id);
+
 #endif /* __ZIGBEE_LIB_DRIVER_H__ */