| // 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_ |