Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / chromeos / dbus / fake_bluetooth_agent_manager_client.h
1 // Copyright (c) 2013 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_AGENT_MANAGER_CLIENT_H_
6 #define CHROMEOS_DBUS_FAKE_BLUETOOTH_AGENT_MANAGER_CLIENT_H_
7
8 #include "base/bind.h"
9 #include "base/callback.h"
10 #include "base/observer_list.h"
11 #include "chromeos/chromeos_export.h"
12 #include "chromeos/dbus/bluetooth_agent_manager_client.h"
13 #include "dbus/object_path.h"
14 #include "dbus/property.h"
15
16 namespace chromeos {
17
18 class FakeBluetoothAgentServiceProvider;
19
20 // FakeBluetoothAgentManagerClient simulates the behavior of the Bluetooth
21 // Daemon's agent manager object and is used both in test cases in place of a
22 // mock and on the Linux desktop.
23 class CHROMEOS_EXPORT FakeBluetoothAgentManagerClient
24     : public BluetoothAgentManagerClient {
25  public:
26   FakeBluetoothAgentManagerClient();
27   virtual ~FakeBluetoothAgentManagerClient();
28
29   // BluetoothAgentManagerClient overrides
30   virtual void Init(dbus::Bus* bus) override;
31   virtual void RegisterAgent(const dbus::ObjectPath& agent_path,
32                              const std::string& capability,
33                              const base::Closure& callback,
34                              const ErrorCallback& error_callback) override;
35   virtual void UnregisterAgent(const dbus::ObjectPath& agent_path,
36                                const base::Closure& callback,
37                                const ErrorCallback& error_callback) override;
38   virtual void RequestDefaultAgent(const dbus::ObjectPath& agent_path,
39                                    const base::Closure& callback,
40                                    const ErrorCallback& error_callback)
41       override;
42
43   // Register, unregister and retrieve pointers to agent service providers.
44   void RegisterAgentServiceProvider(
45       FakeBluetoothAgentServiceProvider* service_provider);
46   void UnregisterAgentServiceProvider(
47       FakeBluetoothAgentServiceProvider* service_provider);
48   FakeBluetoothAgentServiceProvider* GetAgentServiceProvider();
49
50  private:
51   // The single agent service provider we permit, owned by the application
52   // using it.
53   FakeBluetoothAgentServiceProvider* service_provider_;
54 };
55
56 }  // namespace chromeos
57
58 #endif  // CHROMEOS_DBUS_FAKE_BLUETOOTH_AGENT_MANAGER_CLIENT_H_