diff options
author | keybuk@chromium.org <keybuk@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-14 20:08:06 +0000 |
---|---|---|
committer | keybuk@chromium.org <keybuk@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-14 20:08:06 +0000 |
commit | bc1b18ecfc890dde4aae0a5a5db27dde2796b25e (patch) | |
tree | 8e37e62d98047d218bf8fdeff2f10361fbaab961 /dbus/bus.h | |
parent | ce1402accb9a01358fc1235f1319d934cd611248 (diff) | |
download | chromium_src-bc1b18ecfc890dde4aae0a5a5db27dde2796b25e.zip chromium_src-bc1b18ecfc890dde4aae0a5a5db27dde2796b25e.tar.gz chromium_src-bc1b18ecfc890dde4aae0a5a5db27dde2796b25e.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
Review URL: http://codereview.chromium.org/9378039
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@121920 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_; |