blob: defb5f693d9682408165d7f4b54f1ab234aea9b2 [file] [log] [blame]
// Copyright 2019 The Chromium Authors
// 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_DEBUG_MANAGER_CLIENT_H_
#define DEVICE_BLUETOOTH_DBUS_BLUETOOTH_DEBUG_MANAGER_CLIENT_H_
#include <string>
#include <vector>
#include "base/functional/callback.h"
#include "dbus/object_path.h"
#include "device/bluetooth/bluetooth_export.h"
#include "device/bluetooth/dbus/bluez_dbus_client.h"
namespace bluez {
// BluetoothDebugManagerClient is used to communicate with the debug manager
// object of the Bluetooth daemon.
class DEVICE_BLUETOOTH_EXPORT BluetoothDebugManagerClient
: public BluezDBusClient {
public:
BluetoothDebugManagerClient(const BluetoothDebugManagerClient&) = delete;
BluetoothDebugManagerClient& operator=(const BluetoothDebugManagerClient&) =
delete;
~BluetoothDebugManagerClient() override;
// The ErrorCallback is used by debug manager methods to indicate failure.
// It receives two arguments: the name of the error in |error_name| and
// an optional message in |error_message|.
typedef base::OnceCallback<void(const std::string& error_name,
const std::string& error_message)>
ErrorCallback;
// Invoke D-Bus API to enable or disable LL privacy.
virtual void SetLLPrivacy(const bool enable,
base::OnceClosure callback,
ErrorCallback error_callback) = 0;
// Invoke D-Bus API to enable or disable the Bluetooth Quality Report.
virtual void SetBluetoothQualityReport(const bool enable,
base::OnceClosure callback,
ErrorCallback error_callback) = 0;
// Invoke D-Bus API to set the levels of logging verbosity for each of
// the bluetooth daemons and kernel.
virtual void SetLogLevels(const uint8_t bluez_level,
const uint8_t kernel_level,
base::OnceClosure callback,
ErrorCallback error_callback) = 0;
// Creates the instance.
static BluetoothDebugManagerClient* Create();
// Constants used to indicate exceptional error conditions. These are
// returned as the |error_name| in ErrorCallback.
static const char kNoResponseError[];
static const char kInvalidArgumentError[];
protected:
BluetoothDebugManagerClient();
};
} // namespace bluez
#endif // DEVICE_BLUETOOTH_DBUS_BLUETOOTH_DEBUG_MANAGER_CLIENT_H_