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));