diff options
Diffstat (limited to 'chromeos/dbus/bluetooth_gatt_service_service_provider.h')
-rw-r--r-- | chromeos/dbus/bluetooth_gatt_service_service_provider.h | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/chromeos/dbus/bluetooth_gatt_service_service_provider.h b/chromeos/dbus/bluetooth_gatt_service_service_provider.h new file mode 100644 index 0000000..258c4b4 --- /dev/null +++ b/chromeos/dbus/bluetooth_gatt_service_service_provider.h @@ -0,0 +1,52 @@ +// Copyright 2014 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 CHROMEOS_DBUS_BLUETOOTH_GATT_SERVICE_SERVICE_PROVIDER_H_ +#define CHROMEOS_DBUS_BLUETOOTH_GATT_SERVICE_SERVICE_PROVIDER_H_ + +#include <string> +#include <vector> + +#include "chromeos/chromeos_export.h" +#include "dbus/bus.h" +#include "dbus/object_path.h" + +namespace chromeos { + +// BluetoothGattServiceServiceProvider is used to provide a D-Bus object that +// the Bluetooth daemon can communicate with to register GATT service +// hierarchies. +// +// Instantiate with a chosen D-Bus object path (that conforms to the BlueZ GATT +// service specification), service UUID, and the list of included services, and +// pass the D-Bus object path as the |service_path| argument to the +// chromeos::BluetoothGattManagerClient::RegisterService method. Make sure to +// create characteristic and descriptor objects using the appropriate service +// providers before registering a GATT service with the Bluetooth daemon. +class CHROMEOS_EXPORT BluetoothGattServiceServiceProvider { + public: + virtual ~BluetoothGattServiceServiceProvider(); + + // Creates the instance where |bus| is the D-Bus bus connection to export the + // object onto, |object_path| is the object path that it should have, |uuid| + // is the 128-bit GATT service UUID, and |includes| are a list of object paths + // belonging to other exported GATT services that are included by the GATT + // service being created. Make sure that all included services have been + // exported before registering a GATT services with the GATT manager. + static BluetoothGattServiceServiceProvider* Create( + dbus::Bus* bus, + const dbus::ObjectPath& object_path, + const std::string& uuid, + const std::vector<dbus::ObjectPath>& includes); + + protected: + BluetoothGattServiceServiceProvider(); + + private: + DISALLOW_COPY_AND_ASSIGN(BluetoothGattServiceServiceProvider); +}; + +} // namespace chromeos + +#endif // CHROMEOS_DBUS_BLUETOOTH_GATT_SERVICE_SERVICE_PROVIDER_H_ |