Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(234)

Unified Diff: dbus/bus.h

Issue 9668018: dbus: remove service name from ExportedObject (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: pay more attention when fixing mock Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/chromeos/dbus/proxy_resolution_service_provider_unittest.cc ('k') | dbus/bus.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: dbus/bus.h
diff --git a/dbus/bus.h b/dbus/bus.h
index e045386cfce107136f4b6f2b11f508b986495a43..0cafd9ea8dbcaceb65af723593bc4ba4c7ccd8ca 100644
--- a/dbus/bus.h
+++ b/dbus/bus.h
@@ -176,6 +176,12 @@ class Bus : public base::RefCountedThreadSafe<Bus> {
// Connect() is called.
explicit Bus(const Options& options);
+ // Called when an ownership request is complete.
+ // Parameters:
+ // - the requested service name.
+ // - whether ownership has been obtained or not.
+ typedef base::Callback<void (const std::string&, bool)> OnOwnershipCallback;
+
// Gets the object proxy for the given service name and the object path.
// The caller must not delete the returned object.
//
@@ -204,12 +210,11 @@ class Bus : public base::RefCountedThreadSafe<Bus> {
const ObjectPath& object_path,
int options);
- // Gets the exported object for the given service name and the object
- // path. The caller must not delete the returned object.
+ // Gets the exported object for the given object path.
+ // The caller must not delete the returned object.
//
// Returns an existing exported object if the bus object already owns
- // the exported object for the given service name and the object path.
- // Never returns NULL.
+ // the exported object for the given object path. Never returns NULL.
//
// The bus will own all exported objects created by the bus, to ensure
// that the exported objects are unregistered at the shutdown time of
@@ -219,8 +224,7 @@ class Bus : public base::RefCountedThreadSafe<Bus> {
// send signal from them.
//
// Must be called in the origin thread.
- virtual ExportedObject* GetExportedObject(const std::string& service_name,
- const ObjectPath& object_path);
+ virtual ExportedObject* GetExportedObject(const ObjectPath& object_path);
// Shuts down the bus and blocks until it's done. More specifically, this
// function does the following:
@@ -255,11 +259,21 @@ class Bus : public base::RefCountedThreadSafe<Bus> {
// BLOCKING CALL.
virtual bool Connect();
+ // Requests the ownership of the service name given by |service_name|.
+ // See also RequestOwnershipAndBlock().
+ //
+ // |on_ownership_callback| is called when the service name is obtained
+ // or failed to be obtained, in the origin thread.
+ //
+ // Must be called in the origin thread.
+ virtual void RequestOwnership(const std::string& service_name,
+ OnOwnershipCallback on_ownership_callback);
+
// Requests the ownership of the given service name.
// Returns true on success, or the the service name is already obtained.
//
// BLOCKING CALL.
- virtual bool RequestOwnership(const std::string& service_name);
+ virtual bool RequestOwnershipAndBlock(const std::string& service_name);
// Releases the ownership of the given service name.
// Returns true on success.
@@ -409,6 +423,15 @@ class Bus : public base::RefCountedThreadSafe<Bus> {
// Helper function used for ShutdownOnDBusThreadAndBlock().
void ShutdownOnDBusThreadAndBlockInternal();
+ // Helper function used for RequestOwnership().
+ void RequestOwnershipInternal(const std::string& service_name,
+ OnOwnershipCallback on_ownership_callback);
+
+ // Called when the ownership request is completed.
+ void OnOwnership(OnOwnershipCallback on_ownership_callback,
+ const std::string& service_name,
+ bool success);
+
// Processes the all incoming data to the connection, if any.
//
// BLOCKING CALL.
@@ -478,7 +501,7 @@ class Bus : public base::RefCountedThreadSafe<Bus> {
// ExportedObjectTable is used to hold the exported objects created by
// the bus object. Key is a concatenated string of service name +
// object path, like "org.chromium.TestService/org/chromium/TestObject".
- typedef std::map<std::string,
+ typedef std::map<const dbus::ObjectPath,
scoped_refptr<dbus::ExportedObject> > ExportedObjectTable;
ExportedObjectTable exported_object_table_;
« no previous file with comments | « chrome/browser/chromeos/dbus/proxy_resolution_service_provider_unittest.cc ('k') | dbus/bus.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698