195489c19Sopenharmony_ci/* 295489c19Sopenharmony_ci * Copyright (C) 2021 Huawei Device Co., Ltd. 395489c19Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 495489c19Sopenharmony_ci * you may not use this file except in compliance with the License. 595489c19Sopenharmony_ci * You may obtain a copy of the License at 695489c19Sopenharmony_ci * 795489c19Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 895489c19Sopenharmony_ci * 995489c19Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1095489c19Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1195489c19Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1295489c19Sopenharmony_ci * See the License for the specific language governing permissions and 1395489c19Sopenharmony_ci * limitations under the License. 1495489c19Sopenharmony_ci */ 1595489c19Sopenharmony_ci 1695489c19Sopenharmony_ci/** 1795489c19Sopenharmony_ci * @addtogroup Bluetooth 1895489c19Sopenharmony_ci * @{ 1995489c19Sopenharmony_ci * 2095489c19Sopenharmony_ci * @brief Defines a bluetooth system that provides basic bluetooth connection and profile functions, 2195489c19Sopenharmony_ci * including A2DP, AVRCP, BLE, GATT, HFP, MAP, PBAP, and SPP, etc. 2295489c19Sopenharmony_ci * 2395489c19Sopenharmony_ci * @since 6 2495489c19Sopenharmony_ci * 2595489c19Sopenharmony_ci */ 2695489c19Sopenharmony_ci 2795489c19Sopenharmony_ci/** 2895489c19Sopenharmony_ci * @file bluetooth_gatt_manager.h 2995489c19Sopenharmony_ci * 3095489c19Sopenharmony_ci * @brief gatt manager interface. 3195489c19Sopenharmony_ci * 3295489c19Sopenharmony_ci * @since 6 3395489c19Sopenharmony_ci * 3495489c19Sopenharmony_ci */ 3595489c19Sopenharmony_ci 3695489c19Sopenharmony_ci#ifndef BLUETOOTH_GATT_MANAGER_H 3795489c19Sopenharmony_ci#define BLUETOOTH_GATT_MANAGER_H 3895489c19Sopenharmony_ci 3995489c19Sopenharmony_ci#include "bluetooth_def.h" 4095489c19Sopenharmony_ci#include "bluetooth_types.h" 4195489c19Sopenharmony_ci#include "bluetooth_remote_device.h" 4295489c19Sopenharmony_ci 4395489c19Sopenharmony_cinamespace OHOS { 4495489c19Sopenharmony_cinamespace Bluetooth { 4595489c19Sopenharmony_ci/** 4695489c19Sopenharmony_ci * @brief Class for Gatt Manager. 4795489c19Sopenharmony_ci * 4895489c19Sopenharmony_ci * @since 6 4995489c19Sopenharmony_ci * 5095489c19Sopenharmony_ci */ 5195489c19Sopenharmony_ciclass BLUETOOTH_API GattManager { 5295489c19Sopenharmony_cipublic: 5395489c19Sopenharmony_ci static constexpr uint8_t GATT_CONNECTION_STATE_NUM = 4; 5495489c19Sopenharmony_ci /** 5595489c19Sopenharmony_ci * @brief The function to get devices by state. 5695489c19Sopenharmony_ci * 5795489c19Sopenharmony_ci * @param states State of devices. 5895489c19Sopenharmony_ci * @return list of devices. 5995489c19Sopenharmony_ci * @since 6 6095489c19Sopenharmony_ci * 6195489c19Sopenharmony_ci */ 6295489c19Sopenharmony_ci std::vector<BluetoothRemoteDevice> GetDevicesByStates(const std::array<int, GATT_CONNECTION_STATE_NUM> &states); 6395489c19Sopenharmony_ci 6495489c19Sopenharmony_ci /** 6595489c19Sopenharmony_ci * @brief The function to get devices by state. 6695489c19Sopenharmony_ci * 6795489c19Sopenharmony_ci * @return list of devices. 6895489c19Sopenharmony_ci * @since 6 6995489c19Sopenharmony_ci * 7095489c19Sopenharmony_ci */ 7195489c19Sopenharmony_ci std::vector<BluetoothRemoteDevice> GetConnectedDevices(); 7295489c19Sopenharmony_ci 7395489c19Sopenharmony_ci /** 7495489c19Sopenharmony_ci * @brief A constructor used to create a GattManager instance. 7595489c19Sopenharmony_ci * 7695489c19Sopenharmony_ci * @since 6 7795489c19Sopenharmony_ci * 7895489c19Sopenharmony_ci */ 7995489c19Sopenharmony_ci GattManager(); 8095489c19Sopenharmony_ci /** 8195489c19Sopenharmony_ci * @brief A destructor of GattManager. 8295489c19Sopenharmony_ci * 8395489c19Sopenharmony_ci * @since 6 8495489c19Sopenharmony_ci * 8595489c19Sopenharmony_ci */ 8695489c19Sopenharmony_ci ~GattManager(); 8795489c19Sopenharmony_ci 8895489c19Sopenharmony_ciprivate: 8995489c19Sopenharmony_ci BLUETOOTH_DECLARE_IMPL(); 9095489c19Sopenharmony_ci}; 9195489c19Sopenharmony_ci} // namespace Bluetooth 9295489c19Sopenharmony_ci} // namespace OHOS 9395489c19Sopenharmony_ci#endif // BLUETOOTH_GATT_MANAGER_H 94