4 * Copyright (c) 2016-2017 Samsung Electronics Co., Ltd.
6 * Contact: Anupam Roy (anupam.r@samsung.com)
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
22 #ifndef BT_SERVICE_GATT_H_
23 #define BT_SERVICE_GATT_H_
26 #include <sys/types.h>
27 #include "bluetooth-api.h"
28 #include "bluetooth-gatt-server-api.h"
34 int _bt_gatt_init(void);
36 void _bt_gatt_deinit(void);
38 int _bt_get_allocated_server_instance(const char *sender, int adv_handle, gboolean use_reserved_slot);
40 int _bt_register_server_instance(const char *sender, int adv_handle);
42 int _bt_unregister_server_instance(const char *sender, int adv_handle);
44 char* _bt_get_sender_and_handle(int server_instance, int *adv_handle);
46 int _bt_register_server_instance(const char *sender, int adv_handle);
48 void _bt_get_adv_handle_from_instance(int server_inst, int *adv_handle);
50 void _bt_set_new_scan_rsp_data(bluetooth_scan_resp_data_t *scan, int len, int instance);
52 void _bt_set_new_adv_data(bluetooth_advertising_data_t *adv, int len, int instance);
54 void _bt_update_adv_handle(const char *sender, int adv_handle);
56 void _bt_get_previous_adv_data(bluetooth_advertising_data_t *adv, int *len, int instance);
58 void _bt_get_previous_scan_rsp_data(bluetooth_scan_resp_data_t *scan, int *len, int instance);
60 int _bt_is_sender_gatt_server_with_no_adv(const char *sender, int adv_handle);
62 void _bt_check_adv_app_termination(const char *name);
64 int _bt_gatt_server_add_service(char *sender, int service_type,
65 int num_handles, char *svc_uuid, int instance_id);
67 int _bt_gatt_server_add_included_service(char *sender, int instance_id,
68 int service_handle, int included_svc_handle);
70 int _bt_gatt_server_add_characteristic(char *sender, char *char_uuid,
71 bluetooth_gatt_server_attribute_params_t *param);
73 int _bt_gatt_server_add_descriptor(char *sender, char *desc_uuid,
74 bt_gatt_permission_t *perm, int service_handle, int instance_id);
76 int _bt_gatt_server_start_service(char *sender, int service_handle, int instance_id);
78 int _bt_gatt_server_stop_service(char *sender, int service_handle, int instance_id);
80 int _bt_gatt_server_delete_service(char *sender, int service_handle, int instance_id);
82 int _bt_gatt_server_send_response(char *sender, bluetooth_gatt_att_data_t *data,
83 bluetooth_gatt_server_response_params_t *param);
85 int _bt_gatt_server_send_indication(char *sender, bluetooth_device_address_t *addr, bluetooth_gatt_att_data_t *data,
86 bluetooth_gatt_server_indication_params_t *param);
88 int _bt_gatt_server_update_attribute_value(char *sender, int instance_id,
89 bluetooth_gatt_server_update_value_t *param);
91 int _bt_get_att_mtu(bluetooth_device_address_t *address,
94 //int _bt_gatt_server_enable_application(int instance_id);
96 int _bt_gatt_server_register(char *sender);
98 int _bt_gatt_server_unregister(char *sender);
100 int _bt_gatt_server_update_multi_adv_info(char *name, int instance_id);
102 int _bt_gatt_server_connect_remote_client(char *sender,
103 bluetooth_device_address_t *address, int instance_id);
105 int _bt_gatt_server_disconnect_remote_client(char *sender,
106 bluetooth_device_address_t *address,
109 int _bt_gatt_server_add_service(char *sender, int service_type,
110 int num_handles, char *svc_uuid, int instance_id);
112 int _bt_gatt_server_add_included_service(char *sender, int instance_id,
113 int service_handle, int included_svc_handle);
115 int _bt_gatt_server_add_characteristic(char *sender, char *char_uuid,
116 bluetooth_gatt_server_attribute_params_t *param);
118 int _bt_gatt_server_add_descriptor(char *sender, char *desc_uuid,
119 bt_gatt_permission_t *perm, int service_handle, int instance_id);
121 int _bt_gatt_server_start_service(char *sender, int service_handle, int instance_id);
123 int _bt_gatt_server_stop_service(char *sender, int service_handle, int instance_id);
125 int _bt_gatt_server_delete_service(char *sender, int service_handle, int instance_id);
127 int _bt_gatt_server_send_indication(char *sender, bluetooth_device_address_t *addr, bluetooth_gatt_att_data_t *data,
128 bluetooth_gatt_server_indication_params_t *param);
130 int _bt_gatt_server_send_response(char *sender, bluetooth_gatt_att_data_t *data,
131 bluetooth_gatt_server_response_params_t *param);
133 void _bt_gatt_server_clear_req_info(void);
135 void _bt_gatt_server_clear_connection_info(void);
137 bt_product_gatt_permission_t _bt_gatt_convert_attr_permission_to_stack_specific(
138 bt_gatt_permission_t perm);
140 void _bt_check_gatt_server_app_termination(const char *name);
142 int _bt_gatt_server_get_att_mtu(bluetooth_device_address_t *address, unsigned int *mtu);
148 #endif /* __cplusplus */
149 #endif /* BT_SERVICE_GATT_H_ */