| // Copyright 2018 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CHROMECAST_DEVICE_BLUETOOTH_SHLIB_GATT_CLIENT_H_ |
| #define CHROMECAST_DEVICE_BLUETOOTH_SHLIB_GATT_CLIENT_H_ |
| |
| #include <vector> |
| |
| #include "chromecast/public/bluetooth/gatt.h" |
| |
| namespace chromecast { |
| namespace bluetooth_v2_shlib { |
| |
| class GattClient { |
| public: |
| virtual ~GattClient() = default; |
| virtual bool IsSupported() = 0; |
| virtual void SetDelegate(Gatt::Client::Delegate* delegate) = 0; |
| virtual bool Connect(const Addr& addr, Gatt::Client::Transport transport) = 0; |
| virtual bool Disconnect(const Addr& addr) = 0; |
| virtual bool CreateBond(const Addr& addr) = 0; |
| virtual bool RemoveBond(const Addr& addr) = 0; |
| virtual bool ReadCharacteristic(const Addr& addr, |
| const Gatt::Characteristic& characteristic, |
| Gatt::Client::AuthReq auth_req) = 0; |
| virtual bool WriteCharacteristic(const Addr& addr, |
| const Gatt::Characteristic& characteristic, |
| Gatt::Client::AuthReq auth_req, |
| Gatt::WriteType write_type, |
| const std::vector<uint8_t>& value) = 0; |
| virtual bool ReadDescriptor(const Addr& addr, |
| const Gatt::Descriptor& descriptor, |
| Gatt::Client::AuthReq auth_req) = 0; |
| virtual bool WriteDescriptor(const Addr& addr, |
| const Gatt::Descriptor& descriptor, |
| Gatt::Client::AuthReq auth_req, |
| const std::vector<uint8_t>& value) = 0; |
| virtual bool SetCharacteristicNotification( |
| const Addr& addr, |
| const Gatt::Characteristic& characteristic, |
| bool enable) = 0; |
| virtual bool ReadRemoteRssi(const Addr& addr) = 0; |
| virtual bool RequestMtu(const Addr& addr, int mtu) = 0; |
| virtual bool ConnectionParameterUpdate(const Addr& addr, |
| int min_interval, |
| int max_interval, |
| int latency, |
| int timeout) = 0; |
| virtual bool GetServices(const Addr& addr) = 0; |
| virtual bool ClearPendingConnect(const Addr& addr) = 0; |
| virtual bool ClearPendingDisconnect(const Addr& addr) = 0; |
| }; |
| |
| } // namespace bluetooth_v2_shlib |
| } // namespace chromecast |
| |
| #endif // CHROMECAST_DEVICE_BLUETOOTH_SHLIB_GATT_CLIENT_H_ |