fake_bluetooth_profile_service_provider.h revision c2e0dbddbe15c98d52c4786dac06cb8952a8ae6d
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_PROFILE_SERVICE_PROVIDER_H_
6#define CHROMEOS_DBUS_FAKE_BLUETOOTH_PROFILE_SERVICE_PROVIDER_H_
7
8#include "base/bind.h"
9#include "base/callback.h"
10#include "chromeos/chromeos_export.h"
11#include "chromeos/dbus/dbus_client_implementation_type.h"
12#include "chromeos/dbus/experimental_bluetooth_profile_service_provider.h"
13#include "dbus/file_descriptor.h"
14#include "dbus/object_path.h"
15
16namespace chromeos {
17
18// FakeBluetoothProfileServiceProvider simulates the behavior of a local
19// Bluetooth agent object and is used both in test cases in place of a
20// mock and on the Linux desktop.
21class CHROMEOS_EXPORT FakeBluetoothProfileServiceProvider
22    : public ExperimentalBluetoothProfileServiceProvider {
23 public:
24  FakeBluetoothProfileServiceProvider(const dbus::ObjectPath& object_path,
25                                      Delegate *delegate);
26  virtual ~FakeBluetoothProfileServiceProvider();
27
28  // Each of these calls the equivalent
29  // BluetoothProfileServiceProvider::Delegate method on the object passed on
30  // construction.
31  virtual void Release();
32  virtual void NewConnection(
33      const dbus::ObjectPath& device_path,
34      dbus::FileDescriptor* fd,
35      const Delegate::Options& options,
36      const Delegate::ConfirmationCallback& callback);
37  virtual void RequestDisconnection(
38      const dbus::ObjectPath& device_path,
39      const Delegate::ConfirmationCallback& callback);
40  virtual void Cancel();
41
42 private:
43  // D-Bus object path we are faking.
44  dbus::ObjectPath object_path_;
45
46  // All incoming method calls are passed on to the Delegate and a callback
47  // passed to generate the reply. |delegate_| is generally the object that
48  // owns this one, and must outlive it.
49  Delegate* delegate_;
50};
51
52}  // namespace chromeos
53
54#endif  // CHROMEOS_DBUS_FAKE_BLUETOOTH_PROFILE_SERVICE_PROVIDER_H_
55