buffet: Add ExportedObjectManager delegate
This makes it easy to export an object manager. We'll use this very
soon to implement the ObjectManager interface on the root Buffet
object.
BUG=chromium:359190
TEST=Unittests
Change-Id: I19d2da33b81557431c5787937c49a18e7d7bacb2
Reviewed-on: https://chromium-review.googlesource.com/196387
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
diff --git a/buffet/exported_property_set.h b/buffet/exported_property_set.h
index c464a8b..8e535b6 100644
--- a/buffet/exported_property_set.h
+++ b/buffet/exported_property_set.h
@@ -11,7 +11,6 @@
#include <base/memory/weak_ptr.h>
#include <dbus/exported_object.h>
#include <dbus/message.h>
-#include <gtest/gtest_prod.h>
namespace buffet {
@@ -105,6 +104,8 @@
// are exported to the DBus object. |cb| will be called on the origin
// thread.
void Init(const OnInitFinish& cb);
+ base::Callback<void(dbus::MessageWriter* writer)> GetPropertyWriter(
+ const std::string& interface);
protected:
void RegisterProperty(const std::string& interface_name,
@@ -112,6 +113,11 @@
ExportedPropertyBase* exported_property);
private:
+ // Used to write the dictionary of string->variant to a message.
+ // This dictionary represents the property name/value pairs for the
+ // given interface.
+ void WritePropertiesDictToMessage(const std::string& interface_name,
+ dbus::MessageWriter* writer);
void HandleGetAll(dbus::MethodCall* method_call,
dbus::ExportedObject::ResponseSender response_sender);
void HandleGet(dbus::MethodCall* method_call,