blob: 74aee9a2e651793812b8b2ea20cd2840e8fe9f2c [file] [log] [blame]
Darin Petkova9b1fed2012-02-29 11:49:05 +01001// 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/rpc_task_dbus_adaptor.h"
6
Darin Petkova9b1fed2012-02-29 11:49:05 +01007#include "shill/error.h"
Christopher Wileyb691efd2012-08-09 13:51:51 -07008#include "shill/logging.h"
Darin Petkova9b1fed2012-02-29 11:49:05 +01009#include "shill/rpc_task.h"
10
11using std::map;
12using std::string;
13
14namespace shill {
15
Rebecca Silbersteinc9c31d82014-10-21 15:01:00 -070016namespace Logging {
17static auto kModuleLogScope = ScopeLogger::kDBus;
Paul Stewart1a212a62015-06-16 13:13:10 -070018static string ObjectID(RPCTaskDBusAdaptor* r) { return r->GetRpcIdentifier(); }
Rebecca Silbersteinc9c31d82014-10-21 15:01:00 -070019}
20
Darin Petkova9b1fed2012-02-29 11:49:05 +010021// static
Darin Petkova9b1fed2012-02-29 11:49:05 +010022const char RPCTaskDBusAdaptor::kPath[] = "/task/";
23
Paul Stewart1a212a62015-06-16 13:13:10 -070024RPCTaskDBusAdaptor::RPCTaskDBusAdaptor(DBus::Connection* conn, RPCTask* task)
Darin Petkova9b1fed2012-02-29 11:49:05 +010025 : DBusAdaptor(conn, kPath + task->UniqueName()),
26 task_(task),
mukesh agrawald1511fe2012-03-14 17:12:27 -070027 interface_name_(SHILL_INTERFACE ".Task"),
Darin Petkova9b1fed2012-02-29 11:49:05 +010028 connection_name_(conn->unique_name()) {}
29
30RPCTaskDBusAdaptor::~RPCTaskDBusAdaptor() {
Ben Chancc225ef2014-09-30 13:26:51 -070031 task_ = nullptr;
Darin Petkova9b1fed2012-02-29 11:49:05 +010032}
33
Paul Stewart1a212a62015-06-16 13:13:10 -070034const string& RPCTaskDBusAdaptor::GetRpcIdentifier() {
Darin Petkova9b1fed2012-02-29 11:49:05 +010035 return DBus::Object::path();
36}
37
Paul Stewart1a212a62015-06-16 13:13:10 -070038const string& RPCTaskDBusAdaptor::GetRpcInterfaceIdentifier() {
Darin Petkova9b1fed2012-02-29 11:49:05 +010039 // TODO(petkov): We should be able to return DBus::Interface::name() or simply
40 // name() and avoid the need for the |interface_name_| data member. However,
Paul Stewartee6b3d72013-07-12 16:07:51 -070041 // that's non-trivial due to multiple inheritance (crbug.com/209869).
Darin Petkova9b1fed2012-02-29 11:49:05 +010042 return interface_name_;
43}
44
Paul Stewart1a212a62015-06-16 13:13:10 -070045const string& RPCTaskDBusAdaptor::GetRpcConnectionIdentifier() {
Darin Petkova9b1fed2012-02-29 11:49:05 +010046 return connection_name_;
47}
48
Darin Petkov209e6292012-04-20 11:33:32 +020049void RPCTaskDBusAdaptor::getsec(
Paul Stewart1a212a62015-06-16 13:13:10 -070050 string& user, string& password, DBus::Error& error) { // NOLINT
Rebecca Silbersteinc9c31d82014-10-21 15:01:00 -070051 SLOG(this, 2) << __func__ << ": " << user;
Darin Petkov209e6292012-04-20 11:33:32 +020052 task_->GetLogin(&user, &password);
53}
54
Paul Stewart1a212a62015-06-16 13:13:10 -070055void RPCTaskDBusAdaptor::notify(const string& reason,
56 const map<string, string>& dict,
57 DBus::Error& /*error*/) { // NOLINT
Rebecca Silbersteinc9c31d82014-10-21 15:01:00 -070058 SLOG(this, 2) << __func__ << ": " << reason;
Darin Petkova9b1fed2012-02-29 11:49:05 +010059 task_->Notify(reason, dict);
60}
61
62} // namespace shill