a365469999448a84fe61b9b4a9ecdea896b28ff7
[platform/core/connectivity/zigbee-manager.git] / zigbee-daemon / zigbee-interface / src / zigbee_service_dbus_interface_zcl_group.c
1 /*
2  * Copyright (c) 2016 Samsung Electronics Co., Ltd. All rights reserved.
3  *
4  * Contact: Suresh Kumar N (suresh.n@samsung.com)
5  *
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
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
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.
17  */
18
19 #include "zigbee_service_interface_common.h"
20
21 static gboolean on_zcl_group_add_group(ZigbeeZcl_group *zcl_group_object,
22         GDBusMethodInvocation *invocation,
23         gshort node_id,
24         gchar dst_ep,
25         gshort group_id,
26         GVariant *group_name,
27         gpointer user_data)
28 {
29         ZigBeeService *service = (ZigBeeService *)user_data;
30
31         NOT_USED(zcl_group_object);
32         NOT_USED(invocation);
33         NOT_USED(service);
34         NOT_USED(node_id);
35         NOT_USED(dst_ep);
36         NOT_USED(group_id);
37         NOT_USED(group_name);
38
39         /*
40          * TODO -
41          * Create and send request for processing
42          */
43
44         return TRUE;
45 }
46
47 static gboolean on_zcl_group_view_group(ZigbeeZcl_group *zcl_group_object,
48         GDBusMethodInvocation *invocation,
49         gshort node_id,
50         gchar dst_ep,
51         gshort group_id,
52         gpointer user_data)
53 {
54         ZigBeeService *service = (ZigBeeService *)user_data;
55
56         NOT_USED(zcl_group_object);
57         NOT_USED(invocation);
58         NOT_USED(service);
59         NOT_USED(node_id);
60         NOT_USED(dst_ep);
61         NOT_USED(group_id);
62
63         /*
64          * TODO -
65          * Create and send request for processing
66          */
67
68         return TRUE;
69 }
70
71 static gboolean on_zcl_group_get_group_membership(ZigbeeZcl_group *zcl_group_object,
72         GDBusMethodInvocation *invocation,
73         gshort node_id,
74         gchar dst_ep,
75         gchar group_count,
76         GVariant *group_list,
77         gpointer user_data)
78 {
79         ZigBeeService *service = (ZigBeeService *)user_data;
80
81         NOT_USED(zcl_group_object);
82         NOT_USED(invocation);
83         NOT_USED(service);
84         NOT_USED(node_id);
85         NOT_USED(dst_ep);
86         NOT_USED(group_count);
87         NOT_USED(group_list);
88
89         /*
90          * TODO -
91          * Create and send request for processing
92          */
93
94         return TRUE;
95 }
96
97 static gboolean on_zcl_group_remove_group(ZigbeeZcl_group *zcl_group_object,
98         GDBusMethodInvocation *invocation,
99         gshort node_id,
100         gchar dst_ep,
101         gshort group_id,
102         gpointer user_data)
103 {
104         ZigBeeService *service = (ZigBeeService *)user_data;
105
106         NOT_USED(zcl_group_object);
107         NOT_USED(invocation);
108         NOT_USED(service);
109         NOT_USED(node_id);
110         NOT_USED(dst_ep);
111         NOT_USED(group_id);
112
113         /*
114          * TODO -
115          * Create and send request for processing
116          */
117
118         return TRUE;
119 }
120
121 static gboolean on_zcl_group_remove_all_group(ZigbeeZcl_group *zcl_group_object,
122         GDBusMethodInvocation *invocation,
123         gshort node_id,
124         gchar dst_ep,
125         gpointer user_data)
126 {
127         ZigBeeService *service = (ZigBeeService *)user_data;
128
129         NOT_USED(zcl_group_object);
130         NOT_USED(invocation);
131         NOT_USED(service);
132         NOT_USED(node_id);
133         NOT_USED(dst_ep);
134
135         /*
136          * TODO -
137          * Create and send request for processing
138          */
139
140         return TRUE;
141 }
142
143 static gboolean on_zcl_group_add_group_if_identifying(ZigbeeZcl_group *zcl_group_object,
144         GDBusMethodInvocation *invocation,
145         gshort node_id,
146         gchar dst_ep,
147         gshort group_id,
148         GVariant *group_name,
149         gpointer user_data)
150 {
151         ZigBeeService *service = (ZigBeeService *)user_data;
152
153         NOT_USED(zcl_group_object);
154         NOT_USED(invocation);
155         NOT_USED(service);
156         NOT_USED(node_id);
157         NOT_USED(dst_ep);
158         NOT_USED(group_id);
159         NOT_USED(group_name);
160
161         /*
162          * TODO -
163          * Create and send request for processing
164          */
165
166         return TRUE;
167 }
168
169 gboolean zigbee_service_dbus_interface_zcl_group_init(ZigBeeService *service,
170         ZigbeeObjectSkeleton *zigbee_object)
171 {
172         ZigbeeZcl_group *zcl_group_object;
173
174         if (NULL == service) {
175                 Z_LOGE("service is NULL");
176                 return FALSE;
177         }
178
179         zcl_group_object = zigbee_zcl_group_skeleton_new();
180         zigbee_object_skeleton_set_zcl_group(zigbee_object, zcl_group_object);
181         g_object_unref(zcl_group_object);
182
183         Z_LOGI("zcl_group_object: [%p]", zcl_group_object);
184
185         /*
186          * Register signal handlers for 'zcl_group' interface
187          */
188         g_signal_connect(zcl_group_object,
189                 "handle-add-group",
190                 G_CALLBACK(on_zcl_group_add_group), service);
191
192         g_signal_connect(zcl_group_object,
193                 "handle-view-group",
194                 G_CALLBACK(on_zcl_group_view_group), service);
195
196         g_signal_connect(zcl_group_object,
197                 "handle-get-group-membership",
198                 G_CALLBACK(on_zcl_group_get_group_membership), service);
199
200         g_signal_connect(zcl_group_object,
201                 "handle-remove-group",
202                 G_CALLBACK(on_zcl_group_remove_group), service);
203
204         g_signal_connect(zcl_group_object,
205                 "handle-remove-all-group",
206                 G_CALLBACK(on_zcl_group_remove_all_group), service);
207
208         g_signal_connect(zcl_group_object,
209                 "handle-add-group-if-identifying",
210                 G_CALLBACK(on_zcl_group_add_group_if_identifying), service);
211
212         return TRUE;
213 }