| Index: dbus/bus.h
|
| diff --git a/dbus/bus.h b/dbus/bus.h
|
| index 75de9a3d1e240d51b81ba208ff910df2a5df3942..054525843522e8dd6fd5c77d0090bed17d56a67a 100644
|
| --- a/dbus/bus.h
|
| +++ b/dbus/bus.h
|
| @@ -201,6 +201,8 @@ class CHROME_DBUS_EXPORT Bus : public base::RefCountedThreadSafe<Bus> {
|
| // - the requested service name.
|
| // - whether ownership has been obtained or not.
|
| typedef base::Callback<void (const std::string&, bool)> OnOwnershipCallback;
|
| + // TODO(satorux): Remove the service name parameter as the caller of
|
| + // RequestOwnership() knows the service name.
|
|
|
| // Gets the object proxy for the given service name and the object path.
|
| // The caller must not delete the returned object.
|
| @@ -230,6 +232,42 @@ class CHROME_DBUS_EXPORT Bus : public base::RefCountedThreadSafe<Bus> {
|
| const ObjectPath& object_path,
|
| int options);
|
|
|
| + // Removes the previously created object proxy for the given service
|
| + // name and the object path and releases its memory.
|
| + //
|
| + // If and object proxy for the given service name and object was
|
| + // created with GetObjectProxy, this function removes it from the
|
| + // bus object and detaches the ObjectProxy, invalidating any pointer
|
| + // previously acquired for it with GetObjectProxy. A subsequent call
|
| + // to GetObjectProxy will return a new object.
|
| + //
|
| + // All the object proxies are detached from remote objects at the
|
| + // shutdown time of the bus, but they can be detached early to reduce
|
| + // memory footprint and used match rules for the bus connection.
|
| + //
|
| + // |service_name| looks like "org.freedesktop.NetworkManager", and
|
| + // |object_path| looks like "/org/freedesktop/NetworkManager/Devices/0".
|
| + // |callback| is called when the object proxy is successfully removed and
|
| + // detached.
|
| + //
|
| + // The function returns true when there is an object proxy matching the
|
| + // |service_name| and |object_path| to remove, and calls |callback| when it
|
| + // is removed. Otherwise, it returns false and the |callback| function is
|
| + // never called. The |callback| argument must not be null.
|
| + //
|
| + // Must be called in the origin thread.
|
| + virtual bool RemoveObjectProxy(const std::string& service_name,
|
| + const ObjectPath& object_path,
|
| + const base::Closure& callback);
|
| +
|
| + // Same as above, but also takes a bitfield of ObjectProxy::Options.
|
| + // See object_proxy.h for available options.
|
| + virtual bool RemoveObjectProxyWithOptions(
|
| + const std::string& service_name,
|
| + const ObjectPath& object_path,
|
| + int options,
|
| + const base::Closure& callback);
|
| +
|
| // Gets the exported object for the given object path.
|
| // The caller must not delete the returned object.
|
| //
|
| @@ -449,6 +487,10 @@ class CHROME_DBUS_EXPORT Bus : public base::RefCountedThreadSafe<Bus> {
|
| private:
|
| friend class base::RefCountedThreadSafe<Bus>;
|
|
|
| + // Helper function used for RemoveObjectProxy().
|
| + void RemoveObjectProxyInternal(scoped_refptr<dbus::ObjectProxy> object_proxy,
|
| + const base::Closure& callback);
|
| +
|
| // Helper function used for UnregisterExportedObject().
|
| void UnregisterExportedObjectInternal(
|
| scoped_refptr<dbus::ExportedObject> exported_object);
|
| @@ -460,11 +502,6 @@ class CHROME_DBUS_EXPORT Bus : public base::RefCountedThreadSafe<Bus> {
|
| 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.
|
|
|