| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chromeos/dbus/power_manager_client.h" | 5 #include "chromeos/dbus/power_manager_client.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/callback.h" | 10 #include "base/callback.h" |
| (...skipping 420 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 431 } | 431 } |
| 432 dbus::MessageReader reader(response); | 432 dbus::MessageReader reader(response); |
| 433 double percent = 0.0; | 433 double percent = 0.0; |
| 434 if (!reader.PopDouble(&percent)) | 434 if (!reader.PopDouble(&percent)) |
| 435 LOG(ERROR) << "Error reading response from powerd: " | 435 LOG(ERROR) << "Error reading response from powerd: " |
| 436 << response->ToString(); | 436 << response->ToString(); |
| 437 callback.Run(percent); | 437 callback.Run(percent); |
| 438 } | 438 } |
| 439 | 439 |
| 440 void HandleRegisterSuspendDelayReply(bool dark_suspend, | 440 void HandleRegisterSuspendDelayReply(bool dark_suspend, |
| 441 const std::string& method_name, |
| 441 dbus::Response* response) { | 442 dbus::Response* response) { |
| 442 if (!response) { | 443 if (!response) { |
| 443 LOG(ERROR) << "Error calling " << response->GetMember(); | 444 LOG(ERROR) << "Error calling " << method_name; |
| 444 return; | 445 return; |
| 445 } | 446 } |
| 446 | 447 |
| 447 dbus::MessageReader reader(response); | 448 dbus::MessageReader reader(response); |
| 448 power_manager::RegisterSuspendDelayReply protobuf; | 449 power_manager::RegisterSuspendDelayReply protobuf; |
| 449 if (!reader.PopArrayOfBytesAsProto(&protobuf)) { | 450 if (!reader.PopArrayOfBytesAsProto(&protobuf)) { |
| 450 LOG(ERROR) << "Unable to parse reply from " << response->GetMember(); | 451 LOG(ERROR) << "Unable to parse reply from " << method_name; |
| 451 return; | 452 return; |
| 452 } | 453 } |
| 453 | 454 |
| 454 if (dark_suspend) { | 455 if (dark_suspend) { |
| 455 dark_suspend_delay_id_ = protobuf.delay_id(); | 456 dark_suspend_delay_id_ = protobuf.delay_id(); |
| 456 has_dark_suspend_delay_id_ = true; | 457 has_dark_suspend_delay_id_ = true; |
| 457 VLOG(1) << "Registered dark suspend delay " << dark_suspend_delay_id_; | 458 VLOG(1) << "Registered dark suspend delay " << dark_suspend_delay_id_; |
| 458 } else { | 459 } else { |
| 459 suspend_delay_id_ = protobuf.delay_id(); | 460 suspend_delay_id_ = protobuf.delay_id(); |
| 460 has_suspend_delay_id_ = true; | 461 has_suspend_delay_id_ = true; |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 612 | 613 |
| 613 power_manager::RegisterSuspendDelayRequest protobuf_request; | 614 power_manager::RegisterSuspendDelayRequest protobuf_request; |
| 614 base::TimeDelta timeout = | 615 base::TimeDelta timeout = |
| 615 base::TimeDelta::FromMilliseconds(kSuspendDelayTimeoutMs); | 616 base::TimeDelta::FromMilliseconds(kSuspendDelayTimeoutMs); |
| 616 protobuf_request.set_timeout(timeout.ToInternalValue()); | 617 protobuf_request.set_timeout(timeout.ToInternalValue()); |
| 617 protobuf_request.set_description(kSuspendDelayDescription); | 618 protobuf_request.set_description(kSuspendDelayDescription); |
| 618 | 619 |
| 619 RegisterSuspendDelayImpl( | 620 RegisterSuspendDelayImpl( |
| 620 power_manager::kRegisterSuspendDelayMethod, | 621 power_manager::kRegisterSuspendDelayMethod, |
| 621 protobuf_request, | 622 protobuf_request, |
| 622 base::Bind( | 623 base::Bind(&PowerManagerClientImpl::HandleRegisterSuspendDelayReply, |
| 623 &PowerManagerClientImpl::HandleRegisterSuspendDelayReply, | 624 weak_ptr_factory_.GetWeakPtr(), false, |
| 624 weak_ptr_factory_.GetWeakPtr(), false)); | 625 power_manager::kRegisterSuspendDelayMethod)); |
| 625 RegisterSuspendDelayImpl( | 626 RegisterSuspendDelayImpl( |
| 626 power_manager::kRegisterDarkSuspendDelayMethod, | 627 power_manager::kRegisterDarkSuspendDelayMethod, |
| 627 protobuf_request, | 628 protobuf_request, |
| 628 base::Bind( | 629 base::Bind(&PowerManagerClientImpl::HandleRegisterSuspendDelayReply, |
| 629 &PowerManagerClientImpl::HandleRegisterSuspendDelayReply, | 630 weak_ptr_factory_.GetWeakPtr(), true, |
| 630 weak_ptr_factory_.GetWeakPtr(), true)); | 631 power_manager::kRegisterDarkSuspendDelayMethod)); |
| 631 } | 632 } |
| 632 | 633 |
| 633 // Records the fact that an observer has finished doing asynchronous work | 634 // Records the fact that an observer has finished doing asynchronous work |
| 634 // that was blocking a pending suspend attempt and possibly reports | 635 // that was blocking a pending suspend attempt and possibly reports |
| 635 // suspend readiness to powerd. Called by callbacks returned via | 636 // suspend readiness to powerd. Called by callbacks returned via |
| 636 // GetSuspendReadinessCallback(). | 637 // GetSuspendReadinessCallback(). |
| 637 void HandleObserverSuspendReadiness(int32_t suspend_id, bool in_dark_resume) { | 638 void HandleObserverSuspendReadiness(int32_t suspend_id, bool in_dark_resume) { |
| 638 DCHECK(OnOriginThread()); | 639 DCHECK(OnOriginThread()); |
| 639 if (!suspend_is_pending_ || suspend_id != pending_suspend_id_ || | 640 if (!suspend_is_pending_ || suspend_id != pending_suspend_id_ || |
| 640 in_dark_resume != suspending_from_dark_resume_) | 641 in_dark_resume != suspending_from_dark_resume_) |
| (...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 950 // static | 951 // static |
| 951 PowerManagerClient* PowerManagerClient::Create( | 952 PowerManagerClient* PowerManagerClient::Create( |
| 952 DBusClientImplementationType type) { | 953 DBusClientImplementationType type) { |
| 953 if (type == REAL_DBUS_CLIENT_IMPLEMENTATION) | 954 if (type == REAL_DBUS_CLIENT_IMPLEMENTATION) |
| 954 return new PowerManagerClientImpl(); | 955 return new PowerManagerClientImpl(); |
| 955 DCHECK_EQ(STUB_DBUS_CLIENT_IMPLEMENTATION, type); | 956 DCHECK_EQ(STUB_DBUS_CLIENT_IMPLEMENTATION, type); |
| 956 return new PowerManagerClientStubImpl(); | 957 return new PowerManagerClientStubImpl(); |
| 957 } | 958 } |
| 958 | 959 |
| 959 } // namespace chromeos | 960 } // namespace chromeos |
| OLD | NEW |