Index: dbus/object_proxy.cc |
diff --git a/dbus/object_proxy.cc b/dbus/object_proxy.cc |
index c8f00d7cbc35bd200900fb8b93f55b2a96eae115..b6d2bf1e2cd5a018db970ff88f296b43add96b28 100644 |
--- a/dbus/object_proxy.cc |
+++ b/dbus/object_proxy.cc |
@@ -408,6 +408,12 @@ void ObjectProxy::OnConnected(OnConnectedCallback on_connected_callback, |
on_connected_callback.Run(interface_name, signal_name, success); |
} |
+void ObjectProxy::SetNameOwnerChangedCallback(SignalCallback callback) { |
+ bus_->AssertOnOriginThread(); |
+ |
+ name_owner_changed_callback_ = callback; |
+} |
+ |
DBusHandlerResult ObjectProxy::HandleMessage( |
DBusConnection* connection, |
DBusMessage* raw_message) { |
@@ -634,6 +640,8 @@ DBusHandlerResult ObjectProxy::HandleNameOwnerChanged(Signal* signal) { |
reader.PopString(&new_owner) && |
name == service_name_) { |
service_name_owner_ = new_owner; |
+ if (!name_owner_changed_callback_.is_null()) |
+ name_owner_changed_callback_.Run(signal); |
satorux1
2012/11/13 07:00:39
Let's not call this here as we are now on the D-Bu
|
return DBUS_HANDLER_RESULT_HANDLED; |
} |
} |