chromium/device/bluetooth/bluetooth_remote_gatt_service.h

// Copyright 2016 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_BLUETOOTH_REMOTE_GATT_SERVICE_H_
#define DEVICE_BLUETOOTH_BLUETOOTH_REMOTE_GATT_SERVICE_H_

#include <memory>
#include <string>
#include <vector>

#include "base/containers/flat_map.h"
#include "device/bluetooth/bluetooth_export.h"
#include "device/bluetooth/bluetooth_gatt_service.h"

namespace device {

class BluetoothDevice;
class BluetoothRemoteGattCharacteristic;
class BluetoothUUID;

// BluetoothRemoteGattService represents a remote GATT service.
//
// Instances of the BluetoothRemoteGATTService class are used to represent GATT
// attribute hierarchies that have been received from a
// remote Bluetooth GATT peripheral. Such BluetoothRemoteGattService instances
// are constructed and owned by a BluetoothDevice.
//
// Note: We use virtual inheritance on the GATT service since it will be
// inherited by platform specific versions of the GATT service classes also. The
// platform specific remote GATT service classes will inherit both this class
// and their GATT service class, hence causing an inheritance diamond.
class DEVICE_BLUETOOTH_EXPORT BluetoothRemoteGattService
    : public virtual BluetoothGattService {};

}  // namespace device

#endif  // DEVICE_BLUETOOTH_BLUETOOTH_REMOTE_GATT_SERVICE_H_