buffet: Move ownership of DBusCommandDispacher to buffet::Manager
Next change will move DBusCommandDispacher into buffet directory.
BUG=brillo:1245
TEST='FEATURES=test emerge-gizmo buffet'
Change-Id: I60b9a8c12347266ecceba96db68a7f2a2923deb3
Reviewed-on: https://chromium-review.googlesource.com/289693
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Vitaly Buka <vitalybuka@chromium.org>
Trybot-Ready: Vitaly Buka <vitalybuka@chromium.org>
Tested-by: Vitaly Buka <vitalybuka@chromium.org>
diff --git a/buffet/manager.cc b/buffet/manager.cc
index b1070b5..0b64d5b 100644
--- a/buffet/manager.cc
+++ b/buffet/manager.cc
@@ -24,6 +24,7 @@
#include <dbus/values_util.h>
// TODO(vitalybuka): Will be moved into buffet soon.
+#include "libweave/src/commands/dbus_command_dispatcher.h"
#include "libweave/src/commands/dbus_conversion.h"
#include "weave/enum_to_string.h"
@@ -57,6 +58,9 @@
device_ = weave::Device::Create();
device_->Start(options, &dbus_object_, sequencer);
+ command_dispatcher_.reset(new weave::DBusCommandDispacher{
+ dbus_object_.GetObjectManager(), device_->GetCommands()});
+
device_->GetState()->AddOnChangedCallback(
base::Bind(&Manager::OnStateChanged, weak_ptr_factory_.GetWeakPtr()));
diff --git a/buffet/manager.h b/buffet/manager.h
index 6db50fe..ef433e2 100644
--- a/buffet/manager.h
+++ b/buffet/manager.h
@@ -22,6 +22,10 @@
#include "buffet/org.chromium.Buffet.Manager.h"
#include "weave/device.h"
+namespace weave {
+class DBusCommandDispacher;
+}
+
namespace chromeos {
namespace dbus_utils {
class ExportedObjectManager;
@@ -113,6 +117,7 @@
chromeos::dbus_utils::DBusObject dbus_object_;
std::unique_ptr<weave::Device> device_;
+ std::unique_ptr<weave::DBusCommandDispacher> command_dispatcher_;
base::WeakPtrFactory<Manager> weak_ptr_factory_{this};
DISALLOW_COPY_AND_ASSIGN(Manager);
diff --git a/libweave/src/commands/command_manager.cc b/libweave/src/commands/command_manager.cc
index 6baab68..3704803 100644
--- a/libweave/src/commands/command_manager.cc
+++ b/libweave/src/commands/command_manager.cc
@@ -13,17 +13,9 @@
#include "libweave/src/utils.h"
#include "weave/enum_to_string.h"
-using chromeos::dbus_utils::ExportedObjectManager;
-
namespace weave {
-CommandManager::CommandManager()
- : CommandManager(base::WeakPtr<ExportedObjectManager>{}) {
-}
-
-CommandManager::CommandManager(
- const base::WeakPtr<ExportedObjectManager>& object_manager)
- : command_dispatcher_(object_manager, this) {}
+CommandManager::CommandManager() {}
CommandManager::~CommandManager() {}
diff --git a/libweave/src/commands/command_manager.h b/libweave/src/commands/command_manager.h
index 53942d2..377862c 100644
--- a/libweave/src/commands/command_manager.h
+++ b/libweave/src/commands/command_manager.h
@@ -16,15 +16,8 @@
#include "libweave/src/commands/command_dictionary.h"
#include "libweave/src/commands/command_queue.h"
-#include "libweave/src/commands/dbus_command_dispatcher.h"
#include "weave/commands.h"
-namespace chromeos {
-namespace dbus_utils {
-class ExportedObjectManager;
-} // namespace dbus_utils
-} // namespace chromeos
-
namespace weave {
class CommandInstance;
@@ -35,9 +28,6 @@
class CommandManager final : public Commands {
public:
CommandManager();
- explicit CommandManager(
- const base::WeakPtr<chromeos::dbus_utils::ExportedObjectManager>&
- object_manager);
~CommandManager() override;
@@ -106,7 +96,6 @@
CommandDictionary base_dictionary_; // Base/std command definitions/schemas.
CommandDictionary dictionary_; // Command definitions/schemas.
CommandQueue command_queue_;
- DBusCommandDispacher command_dispatcher_;
std::vector<base::Callback<void()>> on_command_changed_;
uint32_t next_command_id_{0};
diff --git a/libweave/src/device_manager.cc b/libweave/src/device_manager.cc
index 2a3e18d..75299b5 100644
--- a/libweave/src/device_manager.cc
+++ b/libweave/src/device_manager.cc
@@ -41,8 +41,7 @@
const Options& options,
chromeos::dbus_utils::DBusObject* dbus_object,
chromeos::dbus_utils::AsyncEventSequencer* sequencer) {
- command_manager_ =
- std::make_shared<CommandManager>(dbus_object->GetObjectManager());
+ command_manager_ = std::make_shared<CommandManager>();
command_manager_->Startup(options.definitions_path,
options.test_definitions_path);
state_change_queue_.reset(new StateChangeQueue(kMaxStateChangeQueueSize));