chromeos_dbus_control.cc revision 484261aa33319098fca2fc44d523648f8ec97da8
172e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiu// Copyright 2015 The Chromium OS Authors. All rights reserved.
272e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiu// Use of this source code is governed by a BSD-style license that can be
372e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiu// found in the LICENSE file.
472e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiu
572e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiu#include "shill/dbus/chromeos_dbus_control.h"
672e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiu
772e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiu#include "shill/dbus/chromeos_device_dbus_adaptor.h"
8484261aa33319098fca2fc44d523648f8ec97da8Peter Qiu#include "shill/dbus/chromeos_ipconfig_dbus_adaptor.h"
9484261aa33319098fca2fc44d523648f8ec97da8Peter Qiu#include "shill/dbus/chromeos_manager_dbus_adaptor.h"
10484261aa33319098fca2fc44d523648f8ec97da8Peter Qiu#include "shill/dbus/chromeos_profile_dbus_adaptor.h"
11484261aa33319098fca2fc44d523648f8ec97da8Peter Qiu#include "shill/dbus/chromeos_rpc_task_dbus_adaptor.h"
12484261aa33319098fca2fc44d523648f8ec97da8Peter Qiu#include "shill/dbus/chromeos_service_dbus_adaptor.h"
13484261aa33319098fca2fc44d523648f8ec97da8Peter Qiu#include "shill/dbus/chromeos_third_party_vpn_dbus_adaptor.h"
1472e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiu
1572e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiuusing chromeos::dbus_utils::ExportedObjectManager;
1672e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiu
1772e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiunamespace shill {
1872e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiu
1972e7e252c0594c2d58d2d8d64e4eede24608240ePeter QiuChromeosDBusControl::ChromeosDBusControl(
2072e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiu    const base::WeakPtr<ExportedObjectManager>& object_manager,
2172e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiu    const scoped_refptr<dbus::Bus>& bus)
2272e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiu    : object_manager_(object_manager),
2372e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiu      bus_(bus) {}
2472e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiu
2572e7e252c0594c2d58d2d8d64e4eede24608240ePeter QiuChromeosDBusControl::~ChromeosDBusControl() {}
2672e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiu
2772e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiutemplate <typename Object, typename AdaptorInterface, typename Adaptor>
2872e7e252c0594c2d58d2d8d64e4eede24608240ePeter QiuAdaptorInterface* ChromeosDBusControl::CreateAdaptor(Object* object) {
2972e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiu  return new Adaptor(object_manager_, bus_, object);
3072e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiu}
3172e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiu
3272e7e252c0594c2d58d2d8d64e4eede24608240ePeter QiuDeviceAdaptorInterface* ChromeosDBusControl::CreateDeviceAdaptor(
3372e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiu    Device* device) {
3472e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiu  return
3572e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiu      CreateAdaptor<Device, DeviceAdaptorInterface, ChromeosDeviceDBusAdaptor>(
3672e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiu          device);
3772e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiu}
3872e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiu
3924b34a0263ade24d39dfe41a7422bfcd0148fda6Peter QiuIPConfigAdaptorInterface* ChromeosDBusControl::CreateIPConfigAdaptor(
4024b34a0263ade24d39dfe41a7422bfcd0148fda6Peter Qiu    IPConfig* config) {
41484261aa33319098fca2fc44d523648f8ec97da8Peter Qiu  return
42484261aa33319098fca2fc44d523648f8ec97da8Peter Qiu      CreateAdaptor<IPConfig, IPConfigAdaptorInterface,
43484261aa33319098fca2fc44d523648f8ec97da8Peter Qiu                    ChromeosIPConfigDBusAdaptor>(config);
4424b34a0263ade24d39dfe41a7422bfcd0148fda6Peter Qiu}
4524b34a0263ade24d39dfe41a7422bfcd0148fda6Peter Qiu
4624b34a0263ade24d39dfe41a7422bfcd0148fda6Peter QiuManagerAdaptorInterface* ChromeosDBusControl::CreateManagerAdaptor(
4724b34a0263ade24d39dfe41a7422bfcd0148fda6Peter Qiu    Manager* manager) {
48484261aa33319098fca2fc44d523648f8ec97da8Peter Qiu  return
49484261aa33319098fca2fc44d523648f8ec97da8Peter Qiu      CreateAdaptor<Manager, ManagerAdaptorInterface,
50484261aa33319098fca2fc44d523648f8ec97da8Peter Qiu                    ChromeosManagerDBusAdaptor>(manager);
5124b34a0263ade24d39dfe41a7422bfcd0148fda6Peter Qiu}
5224b34a0263ade24d39dfe41a7422bfcd0148fda6Peter Qiu
5324b34a0263ade24d39dfe41a7422bfcd0148fda6Peter QiuProfileAdaptorInterface* ChromeosDBusControl::CreateProfileAdaptor(
5424b34a0263ade24d39dfe41a7422bfcd0148fda6Peter Qiu    Profile* profile) {
55484261aa33319098fca2fc44d523648f8ec97da8Peter Qiu  return
56484261aa33319098fca2fc44d523648f8ec97da8Peter Qiu      CreateAdaptor<Profile, ProfileAdaptorInterface,
57484261aa33319098fca2fc44d523648f8ec97da8Peter Qiu                    ChromeosProfileDBusAdaptor>(profile);
5824b34a0263ade24d39dfe41a7422bfcd0148fda6Peter Qiu}
5924b34a0263ade24d39dfe41a7422bfcd0148fda6Peter Qiu
6024b34a0263ade24d39dfe41a7422bfcd0148fda6Peter QiuRPCTaskAdaptorInterface* ChromeosDBusControl::CreateRPCTaskAdaptor(
6124b34a0263ade24d39dfe41a7422bfcd0148fda6Peter Qiu    RPCTask* task) {
62484261aa33319098fca2fc44d523648f8ec97da8Peter Qiu  return
63484261aa33319098fca2fc44d523648f8ec97da8Peter Qiu      CreateAdaptor<RPCTask, RPCTaskAdaptorInterface,
64484261aa33319098fca2fc44d523648f8ec97da8Peter Qiu                    ChromeosRPCTaskDBusAdaptor>(task);
6524b34a0263ade24d39dfe41a7422bfcd0148fda6Peter Qiu}
6624b34a0263ade24d39dfe41a7422bfcd0148fda6Peter Qiu
6724b34a0263ade24d39dfe41a7422bfcd0148fda6Peter QiuServiceAdaptorInterface* ChromeosDBusControl::CreateServiceAdaptor(
6824b34a0263ade24d39dfe41a7422bfcd0148fda6Peter Qiu    Service* service) {
69484261aa33319098fca2fc44d523648f8ec97da8Peter Qiu  return
70484261aa33319098fca2fc44d523648f8ec97da8Peter Qiu      CreateAdaptor<Service, ServiceAdaptorInterface,
71484261aa33319098fca2fc44d523648f8ec97da8Peter Qiu                    ChromeosServiceDBusAdaptor>(service);
7224b34a0263ade24d39dfe41a7422bfcd0148fda6Peter Qiu}
7324b34a0263ade24d39dfe41a7422bfcd0148fda6Peter Qiu
7424b34a0263ade24d39dfe41a7422bfcd0148fda6Peter Qiu#ifndef DISABLE_VPN
7524b34a0263ade24d39dfe41a7422bfcd0148fda6Peter QiuThirdPartyVpnAdaptorInterface* ChromeosDBusControl::CreateThirdPartyVpnAdaptor(
7624b34a0263ade24d39dfe41a7422bfcd0148fda6Peter Qiu    ThirdPartyVpnDriver* driver) {
77484261aa33319098fca2fc44d523648f8ec97da8Peter Qiu  return
78484261aa33319098fca2fc44d523648f8ec97da8Peter Qiu      CreateAdaptor<ThirdPartyVpnDriver, ThirdPartyVpnAdaptorInterface,
79484261aa33319098fca2fc44d523648f8ec97da8Peter Qiu                    ChromeosThirdPartyVpnDBusAdaptor>(driver);
8024b34a0263ade24d39dfe41a7422bfcd0148fda6Peter Qiu}
8124b34a0263ade24d39dfe41a7422bfcd0148fda6Peter Qiu#endif
8224b34a0263ade24d39dfe41a7422bfcd0148fda6Peter Qiu
8372e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiu}  // namespace shill
84