| Index: device/bluetooth/bluetooth_remote_gatt_service.h
|
| diff --git a/device/bluetooth/bluetooth_remote_gatt_service.h b/device/bluetooth/bluetooth_remote_gatt_service.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..392b5e81182ec4b6a229f9209d4edd548f7d4ff0
|
| --- /dev/null
|
| +++ b/device/bluetooth/bluetooth_remote_gatt_service.h
|
| @@ -0,0 +1,75 @@
|
| +// Copyright 2016 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_BLUETOOTH_REMOTE_GATT_SERVICE_H_
|
| +#define DEVICE_BLUETOOTH_BLUETOOTH_REMOTE_GATT_SERVICE_H_
|
| +
|
| +#include <string>
|
| +#include <vector>
|
| +
|
| +#include "base/macros.h"
|
| +#include "device/bluetooth/bluetooth_export.h"
|
| +#include "device/bluetooth/bluetooth_gatt_service.h"
|
| +#include "device/bluetooth/bluetooth_remote_gatt_characteristic.h"
|
| +#include "device/bluetooth/bluetooth_uuid.h"
|
| +
|
| +namespace device {
|
| +
|
| +class BluetoothDevice;
|
| +class BluetoothRemoteGattCharacteristic;
|
| +class BluetoothRemoteGattDescriptor;
|
| +
|
| +// 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 {
|
| + public:
|
| + ~BluetoothRemoteGattService() override;
|
| +
|
| + // The Bluetooth-specific UUID of the service.
|
| + virtual BluetoothUUID GetUUID() const = 0;
|
| +
|
| + // Returns the BluetoothDevice that this GATT service was received from, which
|
| + // also owns this service.
|
| + virtual BluetoothDevice* GetDevice() const = 0;
|
| +
|
| + // Indicates whether the type of this service is primary or secondary. A
|
| + // primary service describes the primary function of the peripheral that
|
| + // hosts it, while a secondary service only makes sense in the presence of a
|
| + // primary service. A primary service may include other primary or secondary
|
| + // services.
|
| + virtual bool IsPrimary() const = 0;
|
| +
|
| + // List of characteristics that belong to this service.
|
| + virtual std::vector<BluetoothRemoteGattCharacteristic*> GetCharacteristics()
|
| + const = 0;
|
| +
|
| + // List of GATT services that are included by this service.
|
| + virtual std::vector<BluetoothRemoteGattService*> GetIncludedServices()
|
| + const = 0;
|
| +
|
| + // Returns the GATT characteristic with identifier |identifier| if it belongs
|
| + // to this GATT service.
|
| + virtual BluetoothRemoteGattCharacteristic* GetCharacteristic(
|
| + const std::string& identifier) const = 0;
|
| +
|
| + protected:
|
| + BluetoothRemoteGattService();
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(BluetoothRemoteGattService);
|
| +};
|
| +
|
| +} // namespace device
|
| +
|
| +#endif // DEVICE_BLUETOOTH_BLUETOOTH_REMOTE_GATT_SERVICE_H_
|
|
|