Chromium Code Reviews| Index: chrome/browser/chromeos/dbus/power_manager_client.cc |
| diff --git a/chrome/browser/chromeos/dbus/power_manager_client.cc b/chrome/browser/chromeos/dbus/power_manager_client.cc |
| index dc9761d64cc6623ba667637f98eaf099ba5efada..f8a5bc46712f0d7e5a7e75b8a0e7584f0baa3970 100644 |
| --- a/chrome/browser/chromeos/dbus/power_manager_client.cc |
| +++ b/chrome/browser/chromeos/dbus/power_manager_client.cc |
| @@ -153,6 +153,16 @@ class PowerManagerClientImpl : public PowerManagerClient { |
| dbus::ObjectProxy::EmptyResponseCallback()); |
| } |
| + virtual void CalculateIdleTime(const CalculateIdleTimeCallback& callback) |
| + OVERRIDE { |
| + dbus::MethodCall method_call(power_manager::kPowerManagerInterface, |
| + power_manager::kGetIdleTime); |
| + power_manager_proxy_->CallMethod( |
| + &method_call, |
| + dbus::ObjectProxy::TIMEOUT_USE_DEFAULT, |
| + base::Bind(&PowerManagerClientImpl::OnGetIdleTime, |
| + weak_ptr_factory_.GetWeakPtr(), callback)); |
| + } |
| private: |
| // Called when a dbus signal is initially connected. |
| @@ -233,6 +243,23 @@ class PowerManagerClientImpl : public PowerManagerClient { |
| FOR_EACH_OBSERVER(Observer, observers_, PowerChanged(status)); |
| } |
| + void OnGetIdleTime(const CalculateIdleTimeCallback& callback, |
| + dbus::Response* response) { |
|
satorux1
2011/11/15 02:07:12
Please add something like:
if (!response) {
LOG
Simon Que
2011/11/15 02:47:44
Done.
|
| + dbus::MessageReader reader(response); |
| + int64 idle_time_ms = 0; |
| + if (!reader.PopInt64(&idle_time_ms)) { |
| + LOG(ERROR) << "Error reading response from powerd: " |
| + << response->ToString(); |
| + return; |
| + } |
| + if (idle_time_ms >= 0) { |
| + callback.Run(idle_time_ms/1000); |
| + } else { |
| + LOG(ERROR) << "Power manager failed to calculate idle time."; |
| + callback.Run(-1); |
| + } |
| + } |
| + |
| dbus::ObjectProxy* power_manager_proxy_; |
| ObserverList<Observer> observers_; |
| base::WeakPtrFactory<PowerManagerClientImpl> weak_ptr_factory_; |
| @@ -288,6 +315,10 @@ class PowerManagerClientStubImpl : public PowerManagerClient { |
| virtual void RequestShutdown() OVERRIDE {} |
| + virtual void CalculateIdleTime(const CalculateIdleTimeCallback& callback) |
| + OVERRIDE { |
|
satorux1
2011/11/15 02:07:12
Please call callback.Run(0) to keep compatibility
Simon Que
2011/11/15 02:47:44
Done.
|
| + } |
| + |
| private: |
| void Update() { |
| // We pause at 0 and 100% so that it's easier to check those conditions. |