blob: 9ca58c1fdf5b94703e2b38858b8b8e64f17c0736 [file] [log] [blame]
Arman Uguray618af2b2012-12-11 19:20:42 -08001// Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
2// 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/mm1_modem_time_proxy.h"
6
7#include "shill/cellular_error.h"
8#include "shill/logging.h"
9
10using std::string;
11
12namespace shill {
13namespace mm1 {
14
15ModemTimeProxy::ModemTimeProxy(DBus::Connection *connection,
16 const string &path,
17 const string &service)
18 : proxy_(connection, path, service) {}
19
20ModemTimeProxy::~ModemTimeProxy() {}
21
22void ModemTimeProxy::set_network_time_changed_callback(
23 const NetworkTimeChangedSignalCallback &callback) {
24 proxy_.set_network_time_changed_callback(callback);
25}
26
27void ModemTimeProxy::GetNetworkTime(Error *error,
28 const StringCallback &callback,
29 int timeout) {
30 SLOG(Modem, 2) << __func__;
31 scoped_ptr<StringCallback> cb(new StringCallback(callback));
32 try {
33 SLOG(DBus, 2) << __func__;
34 proxy_.GetNetworkTime(cb.get(), timeout);
35 cb.release();
36 } catch (const DBus::Error &e) {
37 if (error)
Arman Uguray763df862013-07-02 12:49:10 -070038 CellularError::FromMM1DBusError(e, error);
Arman Uguray618af2b2012-12-11 19:20:42 -080039 }
40}
41
Arman Uguray618af2b2012-12-11 19:20:42 -080042ModemTimeProxy::Proxy::Proxy(DBus::Connection *connection,
43 const string &path,
44 const string &service)
45 : DBus::ObjectProxy(*connection, path, service.c_str()) {}
46
47ModemTimeProxy::Proxy::~Proxy() {}
48
49void ModemTimeProxy::Proxy::set_network_time_changed_callback(
50 const NetworkTimeChangedSignalCallback &callback) {
51 network_time_changed_callback_ = callback;
52}
53
54// Signal callbacks inherited from Proxy
55void ModemTimeProxy::Proxy::NetworkTimeChanged(const string &time) {
56 SLOG(DBus, 2) << __func__;
57 if (!network_time_changed_callback_.is_null())
58 network_time_changed_callback_.Run(time);
59}
60
61// Method callbacks inherited from
62// org::freedesktop::ModemManager1::Modem::TimeProxy
63void ModemTimeProxy::Proxy::GetNetworkTimeCallback(const string &time,
64 const ::DBus::Error &dberror,
65 void *data) {
66 SLOG(DBus, 2) << __func__;
67 scoped_ptr<StringCallback> callback(reinterpret_cast<StringCallback *>(data));
68 Error error;
Arman Uguray763df862013-07-02 12:49:10 -070069 CellularError::FromMM1DBusError(dberror, &error);
Arman Uguray618af2b2012-12-11 19:20:42 -080070 callback->Run(time, error);
71}
72
73} // namespace mm1
74} // namespace shill