buffet: Multiple listeners of add/remove new command.
Replace CommandDispatchInterface with callbacks.
Lists of callbacks in CommandQueue.
BUG=brillo:697
TEST=FEATURE=test emerge-gizmo buffet
Change-Id: I3c164c8c7c2cb098b896aa8d5c9a99d856b05172
Reviewed-on: https://chromium-review.googlesource.com/270350
Commit-Queue: Vitaly Buka <vitalybuka@chromium.org>
Tested-by: Vitaly Buka <vitalybuka@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
diff --git a/buffet/commands/command_manager.cc b/buffet/commands/command_manager.cc
index de2125b..cbaaeca 100644
--- a/buffet/commands/command_manager.cc
+++ b/buffet/commands/command_manager.cc
@@ -16,18 +16,16 @@
namespace buffet {
-CommandManager::CommandManager() {
- command_queue_.SetCommandDispachInterface(&command_dispatcher_);
+CommandManager::CommandManager()
+ : CommandManager(base::WeakPtr<ExportedObjectManager>{}) {
}
CommandManager::CommandManager(
const base::WeakPtr<ExportedObjectManager>& object_manager)
- : command_dispatcher_(object_manager->GetBus(), object_manager.get()) {
- command_queue_.SetCommandDispachInterface(&command_dispatcher_);
-}
-
-CommandManager::CommandManager(CommandDispachInterface* dispatch_interface) {
- command_queue_.SetCommandDispachInterface(dispatch_interface);
+ : command_dispatcher_(object_manager) {
+ command_queue_.AddOnCommandAddedCallback(
+ base::Bind(&DBusCommandDispacher::OnCommandAdded,
+ base::Unretained(&command_dispatcher_)));
}
const CommandDictionary& CommandManager::GetCommandDictionary() const {