2 * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
4 * Contact: Suresh Kumar N (suresh.n@samsung.com)
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
19 #ifndef __ZIGBEE_SERVICE_INTERFACE_COMMON_H__
20 #define __ZIGBEE_SERVICE_INTERFACE_COMMON_H__
30 #include <zblib_service_interface.h>
32 #include "zigbee_generated_code.h"
34 #include "zigbee_service_dbus_interface_service.h"
35 #include "zigbee_service_dbus_interface_zcl_on_off.h"
36 #include "zigbee_service_dbus_interface_zcl_door_lock.h"
37 #include "zigbee_service_dbus_interface_zcl_level_control.h"
38 #include "zigbee_service_dbus_interface_zcl_thermostat.h"
39 #include "zigbee_service_dbus_interface_zcl_fan_control.h"
40 #include "zigbee_service_dbus_interface_zcl_alarm.h"
41 #include "zigbee_service_dbus_interface_mfglib_control.h"
42 #include "zigbee_service_dbus_interface_zcl_global_control.h"
43 #include "zigbee_service_dbus_interface_zdo_dev_control.h"
44 #include "zigbee_service_dbus_interface_zcl_basic.h"
45 #include "zigbee_service_dbus_interface_zcl_identify.h"
46 #include "zigbee_service_dbus_interface_zcl_ias_zone.h"
47 #include "zigbee_service_dbus_interface_zcl_poll_control.h"
48 #include "zigbee_service_dbus_interface_zcl_group.h"
49 #include "zigbee_service_dbus_interface_zcl_scene.h"
50 #include "zigbee_service_dbus_interface_zdo_bind.h"
51 #include "zigbee_service_dbus_interface_zcl_color_control.h"
52 #include "zigbee_service_dbus_interface_custom.h"
54 /**< ZigBee D-BUS service*/
55 #define ZIGBEE_DBUS_SERVICE "org.tizen.zigbee"
57 /**< ZigBee D-BUS service path */
58 #define ZIGBEE_DBUS_PATH "/org/tizen/zigbee"
59 #define ZIGBEE_SERVICE_PATH ZIGBEE_DBUS_PATH"/control"
61 /**< ZigBee D-BUS generic fail response macro */
62 #define ZIGBEE_DBUS_FAIL_RESPONSE(invocation, msg) do { \
63 g_dbus_method_invocation_return_error(invocation, \
64 G_DBUS_ERROR, G_DBUS_ERROR_FAILED, msg); \
67 /**< ZigBee D-BUS default fail message */
68 #define ZIGBEE_DBUS_DEFAULT_REQ_FAILED_MSG "Request failed"
70 /**< ZigBee D-BUS interface custom data */
72 GDBusObjectManagerServer *manager; /**< ZigBee object */
73 ZigbeeManager *zigbee_mgr;
74 GHashTable *objects; /**< ZigBee D-BUS object(s) */
76 gint bus_id; /**< ZigBee D-BUS ID */
78 gboolean name_acquired; /**< ZigBee D-BUS name acquired */
79 gboolean sevice_interface_init_complete; /**< ZigBee D-BUS service init completed */
81 gboolean zigbee_state; /**< ZigBee service state */
84 /**< ZigBee D-BUS response callback data */
85 typedef struct zigbee_service_interface_resp_cb_type ZigbeeServiceInterfaceRespCbData_t;
88 ZigbeeServiceInterfaceRespCbData_t *
89 zigbee_service_dbus_interface_create_resp_cb_data(void *interface_object,
90 GDBusMethodInvocation *invocation,
91 void *user_data, unsigned int user_data_len);
93 void zigbee_service_dbus_interface_destroy_resp_cb_data(ZigbeeServiceInterfaceRespCbData_t *resp_cb_data);
95 void *zigbee_service_dbus_interface_ref_interface_object(ZigbeeServiceInterfaceRespCbData_t *resp_cb_data);
96 GDBusMethodInvocation *
97 zigbee_service_dbus_interface_ref_invocation(ZigbeeServiceInterfaceRespCbData_t *resp_cb_data);
99 gboolean zigbee_service_dbus_interface_dispatch_request(ZigBeeServiceInterface *service_interface,
100 ZblibDriverType_e driver_type, guint ops_id,
101 gpointer request_data, guint request_data_len,
102 ZblibServiceInterfaceResponseCb_t resp_cb, gpointer resp_cb_data);
104 #endif /* __ZIGBEE_SERVICE_INTERFACE_COMMON_H__ */