Index: dbus/property.cc |
diff --git a/dbus/property.cc b/dbus/property.cc |
index dde061118bb8dc376f8818e188862c12a000dd31..b7a0c8be458bef4c5c0e35a4e2a3337e98658fab 100644 |
--- a/dbus/property.cc |
+++ b/dbus/property.cc |
@@ -174,6 +174,22 @@ void PropertySet::Set(PropertyBase* property, SetCallback callback) { |
callback)); |
} |
+bool PropertySet::SetAndBlock(PropertyBase* property) { |
+ MethodCall method_call(kPropertiesInterface, kPropertiesSet); |
+ MessageWriter writer(&method_call); |
+ writer.AppendString(interface()); |
+ writer.AppendString(property->name()); |
+ property->AppendSetValueToWriter(&writer); |
+ |
+ DCHECK(object_proxy_); |
+ scoped_ptr<dbus::Response> response( |
+ object_proxy_->CallMethodAndBlock(&method_call, |
+ ObjectProxy::TIMEOUT_USE_DEFAULT)); |
+ if (response.get()) |
+ return true; |
+ return false; |
+} |
+ |
void PropertySet::OnSet(PropertyBase* property, |
SetCallback callback, |
Response* response) { |