chromium/device/bluetooth/bluez/bluetooth_adapter_profile_bluez.h

// Copyright 2015 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_BLUEZ_BLUETOOTH_ADAPTER_PROFILE_BLUEZ_H_
#define DEVICE_BLUETOOTH_BLUEZ_BLUETOOTH_ADAPTER_PROFILE_BLUEZ_H_

#include <stddef.h>

#include <memory>

#include "base/memory/raw_ref.h"
#include "base/memory/weak_ptr.h"
#include "device/bluetooth/bluetooth_export.h"
#include "device/bluetooth/bluez/bluetooth_adapter_bluez.h"
#include "device/bluetooth/dbus/bluetooth_profile_manager_client.h"
#include "device/bluetooth/dbus/bluetooth_profile_service_provider.h"

namespace device {
class BluetoothUUID;
}  // namespace device

namespace bluez {

// The BluetoothAdapterProfileBlueZ class implements a multiplexing
// profile for custom Bluetooth services managed by a BluetoothAdapter.
// Maintains a list of delegates which may serve the profile.
// One delegate is allowed for each device.
//
// This class is not thread-safe, but is only called from the dbus origin
// thread.
//
// BluetoothAdapterProfileBlueZ objects are owned by the
// BluetoothAdapterBlueZ and allocated through Register()
class DEVICE_BLUETOOTH_EXPORT BluetoothAdapterProfileBlueZ
    : public bluez::BluetoothProfileServiceProvider::Delegate {};

}  // namespace bluez

#endif  // DEVICE_BLUETOOTH_BLUEZ_BLUETOOTH_ADAPTER_PROFILE_BLUEZ_H_