buffet: Add DBusCommandDispacher and hook it up to CommandQueue
Added DBusCommandDispacher class that maintains DBusCommandProxy object
for each instance of CommandInstance class added to the CommandQueue.
As soon as a command instance is removed from the queue, D-Bus command
dispatcher removes the corresponding command proxy object from D-Bus.
BUG=chromium:374864
TEST=FEATURES=test emerge-link buffet
Change-Id: Ib7ce7370bd3ee471e22f02b8546675021ff063d7
Reviewed-on: https://chromium-review.googlesource.com/211642
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
Reviewed-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
diff --git a/buffet/manager.cc b/buffet/manager.cc
index ac693f1..7c3cbd5 100644
--- a/buffet/manager.cc
+++ b/buffet/manager.cc
@@ -56,7 +56,8 @@
// the properties interface.
state_.SetValue("{}");
dbus_object_.RegisterAsync(cb);
- command_manager_ = std::make_shared<CommandManager>();
+ command_manager_ =
+ std::make_shared<CommandManager>(dbus_object_.GetObjectManager());
command_manager_->Startup();
device_info_ = std::unique_ptr<DeviceRegistrationInfo>(
new DeviceRegistrationInfo(command_manager_));