blob: 6b9b9302f79d36bc3516375caf8ecf605448a82f [file] [log] [blame]
mukesh agrawal7c1fece2012-01-13 11:31:27 -08001// Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
Darin Petkov394b7d42011-11-03 15:48:02 +01002// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "shill/power_manager_proxy.h"
6
7#include <base/logging.h>
8#include <chromeos/dbus/service_constants.h>
9
Ben Chanfad4a0b2012-04-18 15:49:59 -070010#include "shill/scope_logger.h"
11
mukesh agrawal7c1fece2012-01-13 11:31:27 -080012using std::string;
13
Darin Petkov394b7d42011-11-03 15:48:02 +010014namespace shill {
15
16PowerManagerProxy::PowerManagerProxy(PowerManagerProxyDelegate *delegate,
17 DBus::Connection *connection)
18 : proxy_(delegate, connection) {}
19
20PowerManagerProxy::~PowerManagerProxy() {}
21
22void PowerManagerProxy::RegisterSuspendDelay(uint32 delay_ms) {
mukesh agrawal06175d72012-04-23 16:46:01 -070023 SLOG(DBus, 2) << __func__;
Gary Morain610977f2012-05-04 16:03:52 -070024 try {
25 proxy_.RegisterSuspendDelay(delay_ms);
26 } catch (const DBus::Error &e) {
27 LOG(FATAL) << "DBus exception: " << e.name() << ": " << e.what()
28 << "delay ms: " << delay_ms;
29 }
Darin Petkov394b7d42011-11-03 15:48:02 +010030}
31
32PowerManagerProxy::Proxy::Proxy(PowerManagerProxyDelegate *delegate,
33 DBus::Connection *connection)
34 : DBus::ObjectProxy(*connection,
mukesh agrawal5c05b292012-03-07 10:12:52 -080035 power_manager::kPowerManagerServicePath,
Darin Petkov394b7d42011-11-03 15:48:02 +010036 power_manager::kPowerManagerServiceName),
37 delegate_(delegate) {}
38
39PowerManagerProxy::Proxy::~Proxy() {}
40
mukesh agrawal5c05b292012-03-07 10:12:52 -080041// TODO(quiche): make this signal work again. crosbug.com/27475
Darin Petkov394b7d42011-11-03 15:48:02 +010042void PowerManagerProxy::Proxy::SuspendDelay(const uint32_t &sequence_number) {
mukesh agrawal06175d72012-04-23 16:46:01 -070043 SLOG(DBus, 2) << __func__ << "(" << sequence_number << ")";
Darin Petkov394b7d42011-11-03 15:48:02 +010044 delegate_->OnSuspendDelay(sequence_number);
45}
46
mukesh agrawal7c1fece2012-01-13 11:31:27 -080047void PowerManagerProxy::Proxy::PowerStateChanged(
48 const string &new_power_state) {
mukesh agrawal06175d72012-04-23 16:46:01 -070049 SLOG(DBus, 2) << __func__ << "(" << new_power_state << ")";
mukesh agrawal7c1fece2012-01-13 11:31:27 -080050
51 PowerManagerProxyDelegate::SuspendState suspend_state;
52 if (new_power_state == "on") {
53 suspend_state = PowerManagerProxyDelegate::kOn;
54 } else if (new_power_state == "standby") {
55 suspend_state = PowerManagerProxyDelegate::kStandby;
56 } else if (new_power_state == "mem") {
57 suspend_state = PowerManagerProxyDelegate::kMem;
58 } else if (new_power_state == "disk") {
59 suspend_state = PowerManagerProxyDelegate::kDisk;
60 } else {
61 suspend_state = PowerManagerProxyDelegate::kUnknown;
62 }
63 delegate_->OnPowerStateChanged(suspend_state);
64}
65
Darin Petkov394b7d42011-11-03 15:48:02 +010066} // namespace shill