buffet: Add ObjectManager interface to /org/chromium/Buffet
BUG=chromium:359190
TEST=`buffet_client GetManagedObjects` returns
message_type: MESSAGE_METHOD_RETURN
destination: :1.35
sender: :1.31
signature: a{oa{sa{sv}}}
serial: 10
reply_serial: 3
array [
dict entry {
object_path "/org/chromium/Buffet/Manager"
array [
dict entry {
string "org.chromium.Buffet.Manager"
array [
dict entry {
string "State"
variant string "{}"
}
]
}
]
}
]
Done.
Change-Id: I2bbcc9a3f71c7ec6ab76cb4600dad7efe1a8bb0a
Reviewed-on: https://chromium-review.googlesource.com/198963
Reviewed-by: Chris Sosa <sosa@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
Reviewed-by: Ilja Friedel <ihf@chromium.org>
diff --git a/buffet/exported_object_manager.cc b/buffet/exported_object_manager.cc
index 6458128..c1403ad 100644
--- a/buffet/exported_object_manager.cc
+++ b/buffet/exported_object_manager.cc
@@ -12,10 +12,9 @@
namespace dbus_utils {
-ExportedObjectManager::ExportedObjectManager(dbus::Bus* bus,
+ExportedObjectManager::ExportedObjectManager(scoped_refptr<dbus::Bus> bus,
const dbus::ObjectPath& path)
- : bus_(bus), exported_object_(bus->GetExportedObject(path)),
- weak_ptr_factory_(this) {}
+ : bus_(bus), exported_object_(bus->GetExportedObject(path)) {}
void ExportedObjectManager::Init(const OnInitFinish& cb) {
bus_->AssertOnOriginThread();
@@ -25,12 +24,13 @@
dbus::kObjectManagerInterface,
dbus::kObjectManagerGetManagedObjects,
base::Bind(&ExportedObjectManager::HandleGetManagedObjects,
- weak_ptr_factory_.GetWeakPtr()),
+ AsWeakPtr()),
sequencer->GetExportHandler(
dbus::kObjectManagerInterface,
dbus::kObjectManagerGetManagedObjects,
"Failed exporting GetManagedObjects method of ObjectManager",
false));
+ sequencer->OnAllTasksCompletedCall({cb});
}
void ExportedObjectManager::ClaimInterface(