static void __bt_handle_client_descriptor_read_data(event_gattc_read_data *event_data);
static void __bt_handle_client_characteristic_write_data(event_gattc_write_data *event_data);
static void __bt_handle_client_descriptor_write_data(event_gattc_write_data *event_data);
-static int __bt_do_unregister_gatt_instance(int instance_id);
static void __bt_hanlde_le_device_disconnection(event_dev_conn_status_t *event_data);
static void __bt_handle_client_notification_registered(event_gattc_regdereg_notify_t *event_data,
gboolean is_registered);
#endif
-static int __bt_do_unregister_server_instance(int server_instance);
+static int __bt_unregister_gatt_server_instance(int server_instance);
/* Linked List of GATT requests from Remote GATT Clients */
static GSList *gatt_server_requests = NULL;
if (apps[k] == 1) {
BT_INFO("Unregister app[%d]", k);
/* Unregister server instance */
- __bt_do_unregister_server_instance(k);
+ __bt_unregister_gatt_server_instance(k);
}
}
}
}
}
-#ifdef TIZEN_GATT_CLIENT
-static int __bt_do_unregister_gatt_instance(int instance_id)
-{
- int ret = OAL_STATUS_SUCCESS;
- int k;
-
- BT_INFO("DeAllocate server or client instance ID [%d]", instance_id);
-
- /* Reset data: instance_id parameter could be either for GATT Server or for GATT client */
- for (k = 1; k < MAX_APPS_SUPPORTED; k++) {
- if (numapps[k].instance_id == instance_id) {
- BT_INFO("This is a GATT server app, unregister: Slot [%d] vacant", k);
- numapps[k].is_initialized = FALSE;
- numapps[k].instance_id = -1;
- numapps[k].adv_handle = 0;
- numapps[k].adv_instance = -1;
- memset(numapps[k].sender, 0x00, sizeof(numapps[k].sender));
- memset(numapps[k].uuid, 0x00, sizeof(numapps[k].uuid));
- memset(numapps[k].adv_data.data, 0x00, BLUETOOTH_ADVERTISING_DATA_LENGTH_MAX);
- memset(numapps[k].scan_rsp.data, 0x00, BLUETOOTH_ADVERTISING_DATA_LENGTH_MAX);
- numapps[k].adv_data_len = 0;
- numapps[k].scan_rsp_len = 0;
-
- /* Its a GATT Server Instance */
- ret = gatts_unregister(instance_id);
- if (ret != OAL_STATUS_SUCCESS) {
- BT_ERR("DeAllocate server instance with stack Fail ret: %d", ret);
- return BLUETOOTH_ERROR_INTERNAL;
- }
- break;
- } else if (numapps[k].client_id == instance_id) {
- BT_INFO("This is a GATT client app, unregister: Slot [%d] vacant", k);
- numapps[k].client_id = -1;
- numapps[k].is_initialized = FALSE;
- memset(numapps[k].sender, 0x00, sizeof(numapps[k].sender));
- memset(numapps[k].uuid, 0x00, sizeof(numapps[k].uuid));
- memset(&numapps[k].address.addr, 0x00, sizeof(bluetooth_device_address_t));
-
- /* Its a GATT Client Instance */
- ret = gattc_deregister(instance_id);
- if (ret != OAL_STATUS_SUCCESS) {
- BT_ERR("DeAllocate GATT Client instance with stack Fail ret: %d", ret);
- return BLUETOOTH_ERROR_INTERNAL;
- }
- break;
- }
- }
- return BLUETOOTH_ERROR_NONE;
-}
-#endif
-
-static int __bt_do_unregister_server_instance(int server_instance)
+static int __bt_unregister_gatt_server_instance(int server_instance)
{
int ret = OAL_STATUS_SUCCESS;
int k;
if (!numapps[server_instance].service_handles) {
BT_INFO("There are no Service handles with this app, safe to unregister");
/* Unregister server instance only if this sender does not have any gatt services in it */
- result = __bt_do_unregister_server_instance(server_instance);
+ result = __bt_unregister_gatt_server_instance(server_instance);
} else {
numapps[server_instance].adv_handle = 0;
memset(numapps[server_instance].adv_data.data, 0x00, BLUETOOTH_ADVERTISING_DATA_LENGTH_MAX);
if (apps[k] == 1) {
BT_INFO("Unregister app[%d]", k);
/* Unregister server instance */
- __bt_do_unregister_server_instance(k);
+ __bt_unregister_gatt_server_instance(k);
}
}
int _bt_unregister_gatt_client_instance(const char *sender, int client_id)
{
- BT_INFO("Unregister Allocated GATT CLient instance [%s] Client ID [%d]",
- sender, client_id);
- int result = BLUETOOTH_ERROR_NONE;
- int k;
+ bt_service_app_info_t *info = NULL;
+ int k, ret;
+
+ BT_INFO("Unregister Allocated GATT Client instance [%s] Client ID [%d]", sender, client_id);
/* Unregister CLient instance associated with address X. It is possible that another app still
has client_id valid for same remote address */
- bt_service_app_info_t *info = NULL;
-
for (k = 1; k < MAX_APPS_SUPPORTED; k++) {
info = &numapps[k];
/* Exact matching of sender */
if (!g_strcmp0(info->sender, sender) && info->client_id == client_id) { /* Check for only valid GATT client Instance */
BT_INFO("Unregister GATT client instance [%d]", info->client_id);
- result = __bt_do_unregister_gatt_instance(info->client_id);
- if (result != BLUETOOTH_ERROR_NONE)
- BT_ERR("Error in unregistering GATT Client Interface");
+ numapps[k].client_id = -1;
+ numapps[k].is_initialized = FALSE;
+ memset(numapps[k].sender, 0x00, sizeof(numapps[k].sender));
+ memset(numapps[k].uuid, 0x00, sizeof(numapps[k].uuid));
+ memset(&numapps[k].address.addr, 0x00, sizeof(bluetooth_device_address_t));
- break;
+ /* Its a GATT Client Instance */
+ ret = gattc_deregister(client_id);
+ if (ret != OAL_STATUS_SUCCESS) {
+ BT_ERR("DeAllocate GATT Client instance with stack Fail ret: %d", ret);
+ return BLUETOOTH_ERROR_INTERNAL;
+ } else {
+ return BLUETOOTH_ERROR_NONE;
+ }
}
}
- return result;
+
+ return BLUETOOTH_ERROR_NOT_FOUND;
}
#endif