Adding service interface layer logic for request processing
[platform/core/connectivity/zigbee-manager.git] / zigbee-daemon / zigbee-interface / src / zigbee_service_dbus_interface_zcl_poll_control.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_poll_control_check_in_response(ZigbeeZcl_poll_control *zcl_poll_control_object,
22         GDBusMethodInvocation *invocation,
23         gshort node_id,
24         gchar dst_ep,
25         gchar start_fast_polling,
26         gshort fast_poll_timeout,
27         gpointer user_data)
28 {
29         ZigBeeServiceInterface *service_interface = (ZigBeeServiceInterface *)user_data;
30
31         NOT_USED(zcl_poll_control_object);
32         NOT_USED(invocation);
33         NOT_USED(service_interface);
34         NOT_USED(node_id);
35         NOT_USED(dst_ep);
36         NOT_USED(start_fast_polling);
37         NOT_USED(fast_poll_timeout);
38
39         /*
40          * TODO -
41          * Create and send request for processing
42          */
43
44         return TRUE;
45 }
46
47 static gboolean on_zcl_poll_control_fast_poll_stop(ZigbeeZcl_poll_control *zcl_poll_control_object,
48         GDBusMethodInvocation *invocation,
49         gshort node_id,
50         gchar dst_ep,
51         gpointer user_data)
52 {
53         ZigBeeServiceInterface *service_interface = (ZigBeeServiceInterface *)user_data;
54
55         NOT_USED(zcl_poll_control_object);
56         NOT_USED(invocation);
57         NOT_USED(service_interface);
58         NOT_USED(node_id);
59         NOT_USED(dst_ep);
60
61         /*
62          * TODO -
63          * Create and send request for processing
64          */
65
66         return TRUE;
67 }
68
69 static gboolean on_zcl_poll_control_set_long_poll_interval(ZigbeeZcl_poll_control *zcl_poll_control_object,
70         GDBusMethodInvocation *invocation,
71         gshort node_id,
72         gchar dst_ep,
73         guint new_long_poll_interval,
74         gpointer user_data)
75 {
76         ZigBeeServiceInterface *service_interface = (ZigBeeServiceInterface *)user_data;
77
78         NOT_USED(zcl_poll_control_object);
79         NOT_USED(invocation);
80         NOT_USED(service_interface);
81         NOT_USED(node_id);
82         NOT_USED(dst_ep);
83         NOT_USED(new_long_poll_interval);
84
85         /*
86          * TODO -
87          * Create and send request for processing
88          */
89
90         return TRUE;
91 }
92
93 static gboolean on_zcl_poll_control_set_short_poll_interval(ZigbeeZcl_poll_control *zcl_poll_control_object,
94         GDBusMethodInvocation *invocation,
95         gshort node_id,
96         gchar dst_ep,
97         guint new_short_poll_interval,
98         gpointer user_data)
99 {
100         ZigBeeServiceInterface *service_interface = (ZigBeeServiceInterface *)user_data;
101
102         NOT_USED(zcl_poll_control_object);
103         NOT_USED(invocation);
104         NOT_USED(service_interface);
105         NOT_USED(node_id);
106         NOT_USED(dst_ep);
107         NOT_USED(new_short_poll_interval);
108
109         /*
110          * TODO -
111          * Create and send request for processing
112          */
113
114         return TRUE;
115 }
116
117 gboolean zigbee_service_dbus_interface_zcl_poll_control_init(ZigBeeServiceInterface *service_interface,
118         ZigbeeObjectSkeleton *zigbee_object)
119 {
120         ZigbeeZcl_poll_control *zcl_poll_control_object;
121
122         if (NULL == service_interface) {
123                 Z_LOGE("service_interface is NULL");
124                 return FALSE;
125         }
126
127         zcl_poll_control_object = zigbee_zcl_poll_control_skeleton_new();
128         zigbee_object_skeleton_set_zcl_poll_control(zigbee_object, zcl_poll_control_object);
129         g_object_unref(zcl_poll_control_object);
130
131         Z_LOGI("zcl_poll_control_object: [%p]", zcl_poll_control_object);
132
133         /*
134          * Register signal handlers for 'zcl_poll_control' interface
135          */
136         g_signal_connect(zcl_poll_control_object,
137                 "handle-check-in-response",
138                 G_CALLBACK(on_zcl_poll_control_check_in_response), service_interface);
139
140         g_signal_connect(zcl_poll_control_object,
141                 "handle-fast-poll-stop",
142                 G_CALLBACK(on_zcl_poll_control_fast_poll_stop), service_interface);
143
144         g_signal_connect(zcl_poll_control_object,
145                 "handle-set-long-poll-interval",
146                 G_CALLBACK(on_zcl_poll_control_set_long_poll_interval), service_interface);
147
148         g_signal_connect(zcl_poll_control_object,
149                 "handle-set-short-poll-interval",
150                 G_CALLBACK(on_zcl_poll_control_set_short_poll_interval), service_interface);
151
152         return TRUE;
153 }