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/manager.h b/buffet/manager.h
index a508d81..4498c50 100644
--- a/buffet/manager.h
+++ b/buffet/manager.h
@@ -10,6 +10,7 @@
#include <base/basictypes.h>
#include <base/memory/scoped_ptr.h>
+#include <base/memory/weak_ptr.h>
#include <base/values.h>
#include <dbus/message.h>
#include <dbus/object_path.h>
@@ -20,7 +21,9 @@
namespace buffet {
-class DBusManager;
+namespace dbus_utils {
+class ExportedObjectManager;
+} // namespace dbus_utils
// The Manager is responsible for global state of Buffet. It exposes
// interfaces which affect the entire device such as device registration and
@@ -29,7 +32,8 @@
public:
typedef base::Callback<void(bool success)> OnInitFinish;
- explicit Manager(dbus::Bus* bus);
+ Manager(scoped_refptr<dbus::Bus> bus,
+ base::WeakPtr<dbus_utils::ExportedObjectManager> object_manager);
~Manager();
void Init(const OnInitFinish& cb);
@@ -64,8 +68,9 @@
scoped_ptr<::dbus::Response> HandleTestMethod(
::dbus::MethodCall* method_call);
- dbus::Bus* bus_;
+ scoped_refptr<dbus::Bus> bus_;
dbus::ExportedObject* exported_object_; // weak; owned by the Bus object.
+ base::WeakPtr<dbus_utils::ExportedObjectManager> object_manager_;
scoped_ptr<Properties> properties_;
DeviceRegistrationInfo device_info_;