Chromium Code Reviews| Index: dbus/bus.h |
| diff --git a/dbus/bus.h b/dbus/bus.h |
| index 75de9a3d1e240d51b81ba208ff910df2a5df3942..7d00756529cbc19dbecdf9cf3bc756c326fd0bd1 100644 |
| --- a/dbus/bus.h |
| +++ b/dbus/bus.h |
| @@ -202,6 +202,14 @@ class CHROME_DBUS_EXPORT Bus : public base::RefCountedThreadSafe<Bus> { |
| // - whether ownership has been obtained or not. |
| typedef base::Callback<void (const std::string&, bool)> OnOwnershipCallback; |
|
satorux1
2013/01/25 01:46:06
For the same reason mentioned below, we don't need
deymo
2013/01/25 20:50:55
Done.
|
| + // Called when an object proxy removal is complete. |
| + // Parameters identify the removed object proxy: |
| + // - the service name. |
| + // - the object path. |
| + // - options |
| + typedef base::Callback<void (const std::string&, const ObjectPath&, int)> |
|
satorux1
2013/01/25 01:46:06
I think these parameters are unnecessary, as the c
deymo
2013/01/25 20:50:55
Done.
|
| + OnRemoveObjectProxyCallback; |
| + |
| // Gets the object proxy for the given service name and the object path. |
| // The caller must not delete the returned object. |
| // |
| @@ -230,6 +238,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. |
|
satorux1
2013/01/25 01:46:06
Please also mention that |callback| must not be nu
deymo
2013/01/25 20:50:55
Done.
|
| + // |
| + // Must be called in the origin thread. |
| + virtual bool RemoveObjectProxy(const std::string& service_name, |
| + const ObjectPath& object_path, |
| + OnRemoveObjectProxyCallback 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, |
| + OnRemoveObjectProxyCallback callback); |
| + |
| // Gets the exported object for the given object path. |
| // The caller must not delete the returned object. |
| // |
| @@ -449,6 +493,19 @@ 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 std::string& service_name, |
| + const dbus::ObjectPath& object_path, |
| + int options, |
| + OnRemoveObjectProxyCallback callback); |
| + |
| + // Called when the object proxy removal is completed. |
| + void OnRemoveObjectProxy(OnRemoveObjectProxyCallback callback, |
| + const std::string& service_name, |
| + const dbus::ObjectPath& object_path, |
| + int options); |
| + |
| // Helper function used for UnregisterExportedObject(). |
| void UnregisterExportedObjectInternal( |
| scoped_refptr<dbus::ExportedObject> exported_object); |