summaryrefslogtreecommitdiffstats
path: root/dbus/bus.h
diff options
context:
space:
mode:
authorkeybuk@chromium.org <keybuk@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-14 20:08:06 +0000
committerkeybuk@chromium.org <keybuk@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-14 20:08:06 +0000
commitbc1b18ecfc890dde4aae0a5a5db27dde2796b25e (patch)
tree8e37e62d98047d218bf8fdeff2f10361fbaab961 /dbus/bus.h
parentce1402accb9a01358fc1235f1319d934cd611248 (diff)
downloadchromium_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.h15
1 files changed, 8 insertions, 7 deletions
diff --git a/dbus/bus.h b/dbus/bus.h
index 22c2218..e045386 100644
--- a/dbus/bus.h
+++ b/dbus/bus.h
@@ -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_;