blob: 5c2b4c716a9cdbcd14fb4b6c20daea22d99abd5a [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
Darin Petkov394b7d42011-11-03 15:48:02 +01007#include <chromeos/dbus/service_constants.h>
8
Christopher Wileyb691efd2012-08-09 13:51:51 -07009#include "shill/logging.h"
Ben Chanfad4a0b2012-04-18 15:49:59 -070010
mukesh agrawal7c1fece2012-01-13 11:31:27 -080011using std::string;
12
Darin Petkov394b7d42011-11-03 15:48:02 +010013namespace shill {
14
15PowerManagerProxy::PowerManagerProxy(PowerManagerProxyDelegate *delegate,
16 DBus::Connection *connection)
17 : proxy_(delegate, connection) {}
18
19PowerManagerProxy::~PowerManagerProxy() {}
20
21void PowerManagerProxy::RegisterSuspendDelay(uint32 delay_ms) {
mukesh agrawal06175d72012-04-23 16:46:01 -070022 SLOG(DBus, 2) << __func__;
Gary Morain610977f2012-05-04 16:03:52 -070023 try {
24 proxy_.RegisterSuspendDelay(delay_ms);
25 } catch (const DBus::Error &e) {
26 LOG(FATAL) << "DBus exception: " << e.name() << ": " << e.what()
27 << "delay ms: " << delay_ms;
28 }
Darin Petkov394b7d42011-11-03 15:48:02 +010029}
30
31PowerManagerProxy::Proxy::Proxy(PowerManagerProxyDelegate *delegate,
32 DBus::Connection *connection)
33 : DBus::ObjectProxy(*connection,
mukesh agrawal5c05b292012-03-07 10:12:52 -080034 power_manager::kPowerManagerServicePath,
Darin Petkov394b7d42011-11-03 15:48:02 +010035 power_manager::kPowerManagerServiceName),
36 delegate_(delegate) {}
37
38PowerManagerProxy::Proxy::~Proxy() {}
39
mukesh agrawal5c05b292012-03-07 10:12:52 -080040// TODO(quiche): make this signal work again. crosbug.com/27475
Darin Petkov394b7d42011-11-03 15:48:02 +010041void PowerManagerProxy::Proxy::SuspendDelay(const uint32_t &sequence_number) {
mukesh agrawal06175d72012-04-23 16:46:01 -070042 SLOG(DBus, 2) << __func__ << "(" << sequence_number << ")";
Darin Petkov394b7d42011-11-03 15:48:02 +010043 delegate_->OnSuspendDelay(sequence_number);
44}
45
mukesh agrawal7c1fece2012-01-13 11:31:27 -080046void PowerManagerProxy::Proxy::PowerStateChanged(
47 const string &new_power_state) {
mukesh agrawal06175d72012-04-23 16:46:01 -070048 SLOG(DBus, 2) << __func__ << "(" << new_power_state << ")";
mukesh agrawal7c1fece2012-01-13 11:31:27 -080049
50 PowerManagerProxyDelegate::SuspendState suspend_state;
51 if (new_power_state == "on") {
52 suspend_state = PowerManagerProxyDelegate::kOn;
53 } else if (new_power_state == "standby") {
54 suspend_state = PowerManagerProxyDelegate::kStandby;
55 } else if (new_power_state == "mem") {
56 suspend_state = PowerManagerProxyDelegate::kMem;
57 } else if (new_power_state == "disk") {
58 suspend_state = PowerManagerProxyDelegate::kDisk;
59 } else {
60 suspend_state = PowerManagerProxyDelegate::kUnknown;
61 }
62 delegate_->OnPowerStateChanged(suspend_state);
63}
64
Darin Petkov394b7d42011-11-03 15:48:02 +010065} // namespace shill