Home | History | Annotate | Download | only in dbus
      1 // Copyright 2014 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef CHROMEOS_DBUS_FAKE_BLUETOOTH_GATT_CHARACTERISTIC_SERVICE_PROVIDER_H_
      6 #define CHROMEOS_DBUS_FAKE_BLUETOOTH_GATT_CHARACTERISTIC_SERVICE_PROVIDER_H_
      7 
      8 #include <string>
      9 #include <vector>
     10 
     11 #include "chromeos/chromeos_export.h"
     12 #include "chromeos/dbus/bluetooth_gatt_characteristic_service_provider.h"
     13 #include "dbus/object_path.h"
     14 
     15 namespace chromeos {
     16 
     17 // FakeBluetoothGattCharacteristicServiceProvider simulates behavior of a local
     18 // GATT characteristic object and is used both in test cases in place of a mock
     19 // and on the Linux desktop.
     20 class CHROMEOS_EXPORT FakeBluetoothGattCharacteristicServiceProvider
     21     : public BluetoothGattCharacteristicServiceProvider {
     22  public:
     23   FakeBluetoothGattCharacteristicServiceProvider(
     24       const dbus::ObjectPath& object_path,
     25       Delegate* delegate,
     26       const std::string& uuid,
     27       const std::vector<std::string>& flags,
     28       const std::vector<std::string>& permissions,
     29       const dbus::ObjectPath& service_path);
     30   virtual ~FakeBluetoothGattCharacteristicServiceProvider();
     31 
     32   // BluetoothGattCharacteristicServiceProvider override.
     33   virtual void SendValueChanged(const std::vector<uint8>& value) OVERRIDE;
     34 
     35   // Methods to simulate value get/set requests issued from a remote device. The
     36   // methods do nothing, if the associated service was not registered with the
     37   // GATT manager.
     38   void GetValue(const Delegate::ValueCallback& callback,
     39                 const Delegate::ErrorCallback& error_callback);
     40   void SetValue(const std::vector<uint8>& value,
     41                 const base::Closure& callback,
     42                 const Delegate::ErrorCallback& error_callback);
     43 
     44   const dbus::ObjectPath& object_path() const { return object_path_; }
     45   const std::string& uuid() const { return uuid_; }
     46   const dbus::ObjectPath& service_path() const { return service_path_; }
     47 
     48  private:
     49   // D-Bus object path of the fake GATT characteristic.
     50   dbus::ObjectPath object_path_;
     51 
     52   // 128-bit GATT characteristic UUID.
     53   std::string uuid_;
     54 
     55   // Object path of the service that this characteristic belongs to.
     56   dbus::ObjectPath service_path_;
     57 
     58   // The delegate that method calls are passed on to.
     59   Delegate* delegate_;
     60 
     61   DISALLOW_COPY_AND_ASSIGN(FakeBluetoothGattCharacteristicServiceProvider);
     62 };
     63 
     64 }  // namespace chromeos
     65 
     66 #endif  // CHROMEOS_DBUS_FAKE_BLUETOOTH_GATT_CHARACTERISTIC_SERVICE_PROVIDER_H_
     67