Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / chromeos / dbus / fake_bluetooth_gatt_characteristic_service_provider.h
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_