Index: dbus/bus.h |
diff --git a/dbus/bus.h b/dbus/bus.h |
index 647b1b72607012585481d7b875e59ed4d016c3da..544d31fc169bdf0038e1943af28f7823d1776b7d 100644 |
--- a/dbus/bus.h |
+++ b/dbus/bus.h |
@@ -354,9 +354,15 @@ class CHROME_DBUS_EXPORT Bus : public base::RefCountedThreadSafe<Bus> { |
// will return a new object, method calls on any remaining copies of the |
// previous object are not permitted. |
// |
+ // This method will asynchronously clean up any match rules that have been |
+ // added for the object manager and invoke |callback| when the operation is |
+ // complete. If this method returns false, then |callback| is never called. |
+ // The |callback| argument must not be null. |
+ // |
// Must be called in the origin thread. |
- virtual void RemoveObjectManager(const std::string& service_name, |
- const ObjectPath& object_path); |
+ virtual bool RemoveObjectManager(const std::string& service_name, |
+ const ObjectPath& object_path, |
+ const base::Closure& callback); |
// Instructs all registered object managers to retrieve their set of managed |
// objects from their respective remote objects. There is no need to call this |
@@ -601,6 +607,14 @@ class CHROME_DBUS_EXPORT Bus : public base::RefCountedThreadSafe<Bus> { |
void RemoveObjectProxyInternal(scoped_refptr<dbus::ObjectProxy> object_proxy, |
const base::Closure& callback); |
+ // Helper functions used for RemoveObjectManager(). |
+ void RemoveObjectManagerInternal( |
+ scoped_refptr<dbus::ObjectManager> object_manager, |
+ const base::Closure& callback); |
+ void RemoveObjectManagerInternalHelper( |
+ scoped_refptr<dbus::ObjectManager> object_manager, |
+ const base::Closure& callback); |
+ |
// Helper function used for UnregisterExportedObject(). |
void UnregisterExportedObjectInternal( |
scoped_refptr<dbus::ExportedObject> exported_object); |