BLE Gatt Server Socket notify implementation.
[platform/core/connectivity/bluetooth-frwk.git] / bt-service-adaptation / services / bt-request-handler.c
index 12d6f0f..ded26a9 100644 (file)
@@ -2256,6 +2256,72 @@ int __bt_bluez_request(int function_name,
 
                break;
        }
+       case BT_GATT_SERVER_ACQURE_WRITE_RESPONSE: {
+
+               bluetooth_gatt_server_acquire_response_params_t param;
+               char *app;
+               GDBusMessage *msg;
+               msg = g_dbus_method_invocation_get_message(context);
+               GUnixFDList *fd_list;
+               int fd  = -1;;
+               int *fd_list_array;
+               int len;
+
+               BT_ERR("sending acquire write  respose \n");
+
+               fd_list = g_dbus_message_get_unix_fd_list(msg);
+
+               memset(&param, 0x00, sizeof(bluetooth_gatt_server_acquire_response_params_t));
+
+               app = (char*)g_dbus_method_invocation_get_sender(context);
+
+               __bt_service_get_parameters(in_param1, &param,
+                               sizeof(bluetooth_gatt_server_acquire_response_params_t));
+
+               BT_ERR("sending acquire write  respose sent \n  ");
+
+               fd_list_array = g_unix_fd_list_peek_fds(fd_list, &len);
+               BT_INFO("Num fds in fd_list is : %d, fd_list[0]: %d", len, fd_list_array[0]);
+               fd = fd_list_array[0];
+
+               param.fd = fd;
+               result = _bt_gatt_server_acquire_send_response(app, &param, fd_list);
+
+               break;
+       }
+       case BT_GATT_SERVER_ACQUIRE_NOTIFY_RESPONSE: {
+
+               bluetooth_gatt_server_acquire_response_params_t param;
+               char *app;
+               GDBusMessage *msg;
+               msg = g_dbus_method_invocation_get_message(context);
+               GUnixFDList *fd_list;
+               int fd  = -1;
+               int *fd_list_array;
+               int len;
+
+               BT_ERR("sending acquire write  respose \n");
+
+               fd_list = g_dbus_message_get_unix_fd_list(msg);
+
+               memset(&param, 0x00, sizeof(bluetooth_gatt_server_acquire_response_params_t));
+
+               app = (char*)g_dbus_method_invocation_get_sender(context);
+
+               __bt_service_get_parameters(in_param1, &param,
+                               sizeof(bluetooth_gatt_server_acquire_response_params_t));
+
+               BT_ERR("sending acquire write  respose sent \n  ");
+
+               fd_list_array = g_unix_fd_list_peek_fds(fd_list, &len);
+               BT_INFO("Num fds in fd_list is : %d, fd_list[0]: %d", len, fd_list_array[0]);
+               fd = fd_list_array[0];
+
+               param.fd = fd;
+               result = _bt_gatt_server_acquire_send_response(app, &param, fd_list);
+
+               break;
+       }
        case BT_GATT_SERVER_SEND_INDICATION: {
                bluetooth_gatt_server_indication_params_t param;
                bluetooth_gatt_att_data_t data;
@@ -2574,6 +2640,34 @@ int __bt_bluez_request(int function_name,
                }
                break;
        }
+       /* Local Async */
+       case BT_GATT_WATCH_CHARACTERISTIC: {
+               bluetooth_gatt_client_char_prop_info_t param;
+               int client_id;
+               gboolean is_notify;
+
+               memset(&param, 0x00, sizeof(bluetooth_gatt_client_char_prop_info_t));
+
+               sender = (char*)g_dbus_method_invocation_get_sender(context);
+
+               __bt_service_get_parameters(in_param1, &param,
+                               sizeof(bluetooth_gatt_client_char_prop_info_t));
+               __bt_service_get_parameters(in_param2, &client_id,
+                               sizeof(int));
+               __bt_service_get_parameters(in_param3, &is_notify,
+                               sizeof(gboolean));
+
+               result = _bt_gatt_watch_characteristic(&param , client_id, is_notify);
+               if (BLUETOOTH_ERROR_NONE == result) {
+                       BT_INFO("GATT Client: Save Invocation data for characteristic props app[%s]", sender);
+
+                       /* Save the informations to invocation */
+                       _bt_save_invocation_context(context, result, sender,
+                                       function_name,
+                                       (gpointer)g_memdup(&param, sizeof(bluetooth_gatt_client_char_prop_info_t)));
+               }
+               break;
+       }
        case BT_GATT_WATCH_SERVICE_CHANGED_INDICATION: {
                gboolean is_enabled;
                bluetooth_device_address_t address;
@@ -2728,6 +2822,20 @@ int __bt_bluez_request(int function_name,
                                sizeof(gboolean));
                break;
        }
+       case BT_IS_LE_2M_PHY_SUPPORTED: {
+               gboolean is_2m_phy_supported = FALSE;
+
+               is_2m_phy_supported = _bt_is_le_2m_phy_supported();
+               g_array_append_vals(*out_param1, &is_2m_phy_supported, sizeof(gboolean));
+               break;
+       }
+       case BT_IS_LE_CODED_PHY_SUPPORTED: {
+               gboolean is_coded_phy_supported = FALSE;
+
+               is_coded_phy_supported = _bt_is_le_coded_phy_supported();
+               g_array_append_vals(*out_param1, &is_coded_phy_supported, sizeof(gboolean));
+               break;
+       }
        default:
                BT_INFO("UnSupported function [%d]", function_name);
                result = BLUETOOTH_ERROR_NOT_SUPPORT;
@@ -3522,6 +3630,7 @@ gboolean __bt_service_check_privilege(int function_name,
        case BT_GATT_SERVER_STOP_SERVICE:
        case BT_GATT_SERVER_DELETE_SERVICE:
        case BT_GATT_SERVER_SEND_RESPONSE:
+       case BT_GATT_SERVER_ACQURE_WRITE_RESPONSE:
        case BT_GATT_SERVER_SEND_INDICATION:
        case BT_GATT_SERVER_UPDATE_VALUE:
        case BT_GATT_SERVER_DEREGISTER:
@@ -3678,6 +3787,8 @@ gboolean __bt_service_check_privilege(int function_name,
        case BT_GET_ADVERTISING_DATA:
        case BT_GET_SCAN_RESPONSE_DATA:
        case BT_IS_ADVERTISING:
+       case BT_IS_LE_2M_PHY_SUPPORTED:
+       case BT_IS_LE_CODED_PHY_SUPPORTED:
        case BT_REGISTER_SCAN_FILTER:
        case BT_UNREGISTER_SCAN_FILTER:
        case BT_UNREGISTER_ALL_SCAN_FILTERS: