Index: dbus/object_proxy.cc |
diff --git a/dbus/object_proxy.cc b/dbus/object_proxy.cc |
index c8f00d7cbc35bd200900fb8b93f55b2a96eae115..4d49a8b6f70d6cf1a81a70c4fc2e89fef7b727a1 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,7 @@ DBusHandlerResult ObjectProxy::HandleNameOwnerChanged(Signal* signal) { |
reader.PopString(&new_owner) && |
name == service_name_) { |
service_name_owner_ = new_owner; |
+ name_owner_changed_callback_.Run(signal); |
satorux1
2012/11/12 07:56:43
This will crash if name_owner_changed_callback_ is
Haruki Sato
2012/11/13 06:23:28
Done. Thanks.
|
return DBUS_HANDLER_RESULT_HANDLED; |
} |
} |