123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- // Copyright 2015 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #ifndef DEVICE_BLUETOOTH_DBUS_BLUETOOTH_LE_ADVERTISING_MANAGER_CLIENT_H_
- #define DEVICE_BLUETOOTH_DBUS_BLUETOOTH_LE_ADVERTISING_MANAGER_CLIENT_H_
- #include <cstdint>
- #include <memory>
- #include <string>
- #include <vector>
- #include "base/callback.h"
- #include "dbus/object_path.h"
- #include "device/bluetooth/bluetooth_export.h"
- #include "device/bluetooth/dbus/bluez_dbus_client.h"
- namespace bluez {
- // BluetoothAdvertisingManagerClient is used to communicate with the advertising
- // manager object of the BlueZ daemon.
- class DEVICE_BLUETOOTH_EXPORT BluetoothLEAdvertisingManagerClient
- : public BluezDBusClient {
- public:
- // Interface for observing changes to advertising managers.
- class Observer {
- public:
- virtual ~Observer() {}
- // Called when an advertising manager with object path |object_path| is
- // added to the system.
- virtual void AdvertisingManagerAdded(const dbus::ObjectPath& object_path) {}
- // Called when an advertising manager with object path |object_path| is
- // removed from the system.
- virtual void AdvertisingManagerRemoved(
- const dbus::ObjectPath& object_path) {}
- };
- BluetoothLEAdvertisingManagerClient(
- const BluetoothLEAdvertisingManagerClient&) = delete;
- BluetoothLEAdvertisingManagerClient& operator=(
- const BluetoothLEAdvertisingManagerClient&) = delete;
- ~BluetoothLEAdvertisingManagerClient() override;
- // Adds and removes observers for events which change the advertising
- // managers on the system.
- virtual void AddObserver(Observer* observer) = 0;
- virtual void RemoveObserver(Observer* observer) = 0;
- // The ErrorCallback is used by advertising manager methods to indicate
- // failure. It receives two arguments: the name of the error in |error_name|
- // and an optional message in |error_message|.
- using ErrorCallback =
- base::OnceCallback<void(const std::string& error_name,
- const std::string& error_message)>;
- // Registers an advertisement with the DBus object path
- // |advertisement_object_path| with BlueZ's advertising manager.
- virtual void RegisterAdvertisement(
- const dbus::ObjectPath& manager_object_path,
- const dbus::ObjectPath& advertisement_object_path,
- base::OnceClosure callback,
- ErrorCallback error_callback) = 0;
- // Unregisters an advertisement with the DBus object path
- // |advertisement_object_path| with BlueZ's advertising manager.
- virtual void UnregisterAdvertisement(
- const dbus::ObjectPath& manager_object_path,
- const dbus::ObjectPath& advertisement_object_path,
- base::OnceClosure callback,
- ErrorCallback error_callback) = 0;
- // Set's the advertising interval.
- virtual void SetAdvertisingInterval(
- const dbus::ObjectPath& manager_object_path,
- uint16_t min_interval_ms,
- uint16_t max_interval_ms,
- base::OnceClosure callback,
- ErrorCallback error_callback) = 0;
- // Resets advertising.
- virtual void ResetAdvertising(const dbus::ObjectPath& manager_object_path,
- base::OnceClosure callback,
- ErrorCallback error_callback) = 0;
- // Creates the instance.
- static BluetoothLEAdvertisingManagerClient* Create();
- // Constants used to indicate exceptional error conditions.
- static const char kNoResponseError[];
- protected:
- BluetoothLEAdvertisingManagerClient();
- };
- } // namespace bluez
- #endif // DEVICE_BLUETOOTH_DBUS_BLUETOOTH_LE_ADVERTISING_MANAGER_CLIENT_H_
|