diff options
author | keybuk@google.com <keybuk@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-14 21:29:06 +0000 |
---|---|---|
committer | keybuk@google.com <keybuk@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-14 21:29:06 +0000 |
commit | 216ed0bef820f496f853510c6fb274a817257ea6 (patch) | |
tree | 04f3091bce4100749e7d167d033a69a61b9a6a90 /dbus/bus.h | |
parent | d8f0b2d5f854cde9556fb4a9bc1a61e636aeba8e (diff) | |
download | chromium_src-216ed0bef820f496f853510c6fb274a817257ea6.zip chromium_src-216ed0bef820f496f853510c6fb274a817257ea6.tar.gz chromium_src-216ed0bef820f496f853510c6fb274a817257ea6.tar.bz2 |
dbus: add ObjectPath type
Rather than use std::string for object paths, add a dbus::ObjectPath type
that wraps one while allowing more type-safety. This solves all sorts of
issues with confusing object paths for strings, and allows us to do
Properties code using templates disambiguating them from strings.
BUG=chromium:109194
TEST=built and run tests
Change-Id: Icaf6f19daea4af23a9d2ec0ed76d2cbd379d680e
Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=121920
Review URL: https://chromiumcodereview.appspot.com/9378039
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@121941 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'dbus/bus.h')
-rw-r--r-- | dbus/bus.h | 15 |
1 files changed, 8 insertions, 7 deletions
@@ -17,6 +17,7 @@ #include "base/synchronization/waitable_event.h" #include "base/threading/platform_thread.h" #include "base/tracked_objects.h" +#include "dbus/object_path.h" class MessageLoop; @@ -112,7 +113,7 @@ class ObjectProxy; // } // // void OnExported(const std::string& interface_name, -// const std::string& object_path, +// const ObjectPath& object_path, // bool success) { // // success is true if the method was exported successfully. // } @@ -194,13 +195,13 @@ class Bus : public base::RefCountedThreadSafe<Bus> { // // Must be called in the origin thread. virtual ObjectProxy* GetObjectProxy(const std::string& service_name, - const std::string& object_path); + const ObjectPath& object_path); // Same as above, but also takes a bitfield of ObjectProxy::Options. // See object_proxy.h for available options. virtual ObjectProxy* GetObjectProxyWithOptions( const std::string& service_name, - const std::string& object_path, + const ObjectPath& object_path, int options); // Gets the exported object for the given service name and the object @@ -219,7 +220,7 @@ class Bus : public base::RefCountedThreadSafe<Bus> { // // Must be called in the origin thread. virtual ExportedObject* GetExportedObject(const std::string& service_name, - const std::string& object_path); + const ObjectPath& object_path); // Shuts down the bus and blocks until it's done. More specifically, this // function does the following: @@ -353,7 +354,7 @@ class Bus : public base::RefCountedThreadSafe<Bus> { // http://dbus.freedesktop.org/doc/api/html/group__DBusConnection.html // // BLOCKING CALL. - virtual bool TryRegisterObjectPath(const std::string& object_path, + virtual bool TryRegisterObjectPath(const ObjectPath& object_path, const DBusObjectPathVTable* vtable, void* user_data, DBusError* error); @@ -361,7 +362,7 @@ class Bus : public base::RefCountedThreadSafe<Bus> { // Unregister the object path. // // BLOCKING CALL. - virtual void UnregisterObjectPath(const std::string& object_path); + virtual void UnregisterObjectPath(const ObjectPath& object_path); // Posts the task to the message loop of the thread that created the bus. virtual void PostTaskToOriginThread( @@ -461,7 +462,7 @@ class Bus : public base::RefCountedThreadSafe<Bus> { // The following sets are used to check if rules/object_paths/filters // are properly cleaned up before destruction of the bus object. std::set<std::string> match_rules_added_; - std::set<std::string> registered_object_paths_; + std::set<ObjectPath> registered_object_paths_; std::set<std::pair<DBusHandleMessageFunction, void*> > filter_functions_added_; |