Fixed ACR issue.
[platform/core/api/zigbee.git] / src / zbl-zcl-poll-control.c
1 /*
2  * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 #include "zbl.h"
17 #include "zbl-dbus.h"
18 #include "zb-common.h"
19
20 API int zb_zcl_pollctrl_check_in_response(zb_zigbee_h handle, zb_nwk_addr addr16,
21         unsigned char ep, unsigned char start_fast_polling, unsigned short fast_poll_timeout)
22 {
23         int ret;
24         CHECK_FEATURE_SUPPORTED(ZIGBEE_FEATURE);
25         RETV_IF(NULL == handle, ZIGBEE_ERROR_INVALID_PARAMETER);
26         RETV_IF(NULL == zbl_dbus_get_object(), ZIGBEE_ERROR_IO_ERROR);
27         RETV_IF(0 == addr16, ZIGBEE_ERROR_INVALID_ADDRESS);
28         RETV_IF(0 == ep, ZIGBEE_ERROR_INVALID_ENDPOINT);
29         ret = zbl_pollcontrol_check_in_response(addr16, ep, start_fast_polling,
30                 fast_poll_timeout);
31         return ret;
32 }
33
34 API int zb_zcl_pollctrl_fast_poll_stop(zb_zigbee_h handle, zb_nwk_addr addr16,
35         unsigned char ep)
36 {
37         int ret;
38         CHECK_FEATURE_SUPPORTED(ZIGBEE_FEATURE);
39         RETV_IF(NULL == handle, ZIGBEE_ERROR_INVALID_PARAMETER);
40         RETV_IF(NULL == zbl_dbus_get_object(), ZIGBEE_ERROR_IO_ERROR);
41         RETV_IF(0 == addr16, ZIGBEE_ERROR_INVALID_ADDRESS);
42         RETV_IF(0 == ep, ZIGBEE_ERROR_INVALID_ENDPOINT);
43         ret = zbl_pollcontrol_fast_poll_stop(addr16, ep);
44         return ret;
45 }
46
47 API int zb_zcl_pollctrl_set_long_poll_interval(zb_zigbee_h handle,
48         zb_nwk_addr addr16, unsigned char ep, unsigned int new_long_poll_interval,
49         zb_zcl_pollctrl_check_in_cb cb, void *user_data)
50 {
51         int ret;
52         CHECK_FEATURE_SUPPORTED(ZIGBEE_FEATURE);
53         RETV_IF(NULL == handle, ZIGBEE_ERROR_INVALID_PARAMETER);
54         RETV_IF(NULL == zbl_dbus_get_object(), ZIGBEE_ERROR_IO_ERROR);
55         RETV_IF(0 == addr16, ZIGBEE_ERROR_INVALID_ADDRESS);
56         RETV_IF(0 == ep, ZIGBEE_ERROR_INVALID_ENDPOINT);
57         ret = zbl_pollcontrol_set_long_poll_interval(addr16, ep, new_long_poll_interval,
58                 cb, user_data);
59         return ret;
60 }
61
62 API int zb_zcl_pollctrl_set_short_poll_interval(zb_zigbee_h handle,
63         zb_nwk_addr addr16, unsigned char ep, unsigned int new_short_poll_interval,
64         zb_zcl_pollctrl_check_in_cb cb, void *user_data)
65 {
66         int ret;
67         CHECK_FEATURE_SUPPORTED(ZIGBEE_FEATURE);
68         RETV_IF(NULL == handle, ZIGBEE_ERROR_INVALID_PARAMETER);
69         RETV_IF(NULL == zbl_dbus_get_object(), ZIGBEE_ERROR_IO_ERROR);
70         RETV_IF(0 == addr16, ZIGBEE_ERROR_INVALID_ADDRESS);
71         RETV_IF(0 == ep, ZIGBEE_ERROR_INVALID_ENDPOINT);
72         ret = zbl_pollcontrol_set_short_poll_interval(addr16, ep, new_short_poll_interval,
73                 cb, user_data);
74         return ret;
75 }