| Index: dbus/property.cc
|
| diff --git a/dbus/property.cc b/dbus/property.cc
|
| index b7a0c8be458bef4c5c0e35a4e2a3337e98658fab..234036c35db11ddd645a24c920e0a49afb8257c7 100644
|
| --- a/dbus/property.cc
|
| +++ b/dbus/property.cc
|
| @@ -133,6 +133,35 @@ void PropertySet::OnGet(PropertyBase* property, GetCallback callback,
|
| callback.Run(response);
|
| }
|
|
|
| +bool PropertySet::GetAndBlock(PropertyBase* property) {
|
| + MethodCall method_call(kPropertiesInterface, kPropertiesGet);
|
| + MessageWriter writer(&method_call);
|
| + writer.AppendString(interface());
|
| + writer.AppendString(property->name());
|
| +
|
| + DCHECK(object_proxy_);
|
| + scoped_ptr<dbus::Response> response(
|
| + object_proxy_->CallMethodAndBlock(&method_call,
|
| + ObjectProxy::TIMEOUT_USE_DEFAULT));
|
| +
|
| + if (!response.get()) {
|
| + LOG(WARNING) << property->name() << ": GetAndBlock: failed.";
|
| + return false;
|
| + }
|
| +
|
| + MessageReader reader(response.get());
|
| + if (property->PopValueFromReader(&reader)) {
|
| + property->set_valid(true);
|
| + NotifyPropertyChanged(property->name());
|
| + } else {
|
| + if (property->is_valid()) {
|
| + property->set_valid(false);
|
| + NotifyPropertyChanged(property->name());
|
| + }
|
| + }
|
| + return true;
|
| +}
|
| +
|
| void PropertySet::GetAll() {
|
| MethodCall method_call(kPropertiesInterface, kPropertiesGetAll);
|
| MessageWriter writer(&method_call);
|
| @@ -184,7 +213,7 @@ bool PropertySet::SetAndBlock(PropertyBase* property) {
|
| DCHECK(object_proxy_);
|
| scoped_ptr<dbus::Response> response(
|
| object_proxy_->CallMethodAndBlock(&method_call,
|
| - ObjectProxy::TIMEOUT_USE_DEFAULT));
|
| + ObjectProxy::TIMEOUT_USE_DEFAULT));
|
| if (response.get())
|
| return true;
|
| return false;
|
|
|