diff options
author | pneubeck@chromium.org <pneubeck@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-27 12:23:04 +0000 |
---|---|---|
committer | pneubeck@chromium.org <pneubeck@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-27 12:23:04 +0000 |
commit | c5fd536cbf85dea5a3bc200a515bdf6cf75b2576 (patch) | |
tree | 1f233003e6f5d34428c73b318a89454b7c7ee23b /chromeos/dbus/bluetooth_adapter_client.cc | |
parent | 072414940357abff52558f794af018adfeb6f0d7 (diff) | |
download | chromium_src-c5fd536cbf85dea5a3bc200a515bdf6cf75b2576.zip chromium_src-c5fd536cbf85dea5a3bc200a515bdf6cf75b2576.tar.gz chromium_src-c5fd536cbf85dea5a3bc200a515bdf6cf75b2576.tar.bz2 |
Split construction and initialization of DBus clients.
Before, each Client had a Create function which constructed an instance of the client and initialized it (with a dbus::Bus*).
To make the Clients separately replaceable in the DBusThreadManager, it's necessary to separate the construction of the Clients from their initialization.
This CL, splits each Create function into Create (which only calls the constructor of either the real Impl or the Stub) and Init(dbus::Bus*).
This is a pure refactoring.
BUG=275286
Review URL: https://chromiumcodereview.appspot.com/23119006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@219775 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chromeos/dbus/bluetooth_adapter_client.cc')
-rw-r--r-- | chromeos/dbus/bluetooth_adapter_client.cc | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/chromeos/dbus/bluetooth_adapter_client.cc b/chromeos/dbus/bluetooth_adapter_client.cc index c822e3a..d7c383f 100644 --- a/chromeos/dbus/bluetooth_adapter_client.cc +++ b/chromeos/dbus/bluetooth_adapter_client.cc @@ -51,16 +51,7 @@ class BluetoothAdapterClientImpl : public BluetoothAdapterClient, public dbus::ObjectManager::Interface { public: - explicit BluetoothAdapterClientImpl(dbus::Bus* bus) - : bus_(bus), - weak_ptr_factory_(this) { - object_manager_ = bus_->GetObjectManager( - bluetooth_object_manager::kBluetoothObjectManagerServiceName, - dbus::ObjectPath( - bluetooth_object_manager::kBluetoothObjectManagerServicePath)); - object_manager_->RegisterInterface( - bluetooth_adapter::kBluetoothAdapterInterface, this); - } + BluetoothAdapterClientImpl() : weak_ptr_factory_(this) {} virtual ~BluetoothAdapterClientImpl() { object_manager_->UnregisterInterface( @@ -186,6 +177,16 @@ class BluetoothAdapterClientImpl weak_ptr_factory_.GetWeakPtr(), error_callback)); } + protected: + virtual void Init(dbus::Bus* bus) OVERRIDE { + object_manager_ = bus->GetObjectManager( + bluetooth_object_manager::kBluetoothObjectManagerServiceName, + dbus::ObjectPath( + bluetooth_object_manager::kBluetoothObjectManagerServicePath)); + object_manager_->RegisterInterface( + bluetooth_adapter::kBluetoothAdapterInterface, this); + } + private: // Called by dbus::ObjectManager when an object with the adapter interface // is created. Informs observers. @@ -236,7 +237,6 @@ class BluetoothAdapterClientImpl error_callback.Run(error_name, error_message); } - dbus::Bus* bus_; dbus::ObjectManager* object_manager_; // List of observers interested in event notifications from us. @@ -259,10 +259,9 @@ BluetoothAdapterClient::~BluetoothAdapterClient() { } BluetoothAdapterClient* BluetoothAdapterClient::Create( - DBusClientImplementationType type, - dbus::Bus* bus) { + DBusClientImplementationType type) { if (type == REAL_DBUS_CLIENT_IMPLEMENTATION) - return new BluetoothAdapterClientImpl(bus); + return new BluetoothAdapterClientImpl(); DCHECK_EQ(STUB_DBUS_CLIENT_IMPLEMENTATION, type); return new FakeBluetoothAdapterClient(); } |