chromeos_dbus_control.cc revision f576f1b61ac8514adffd5ef6d44f8b0aa00ab979
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
15c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu#include "shill/dbus/chromeos_dhcpcd_listener.h"
16c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu#include "shill/dbus/chromeos_dhcpcd_proxy.h"
17c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu#include "shill/dbus/chromeos_permission_broker_proxy.h"
18c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu#include "shill/dbus/chromeos_power_manager_proxy.h"
19c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu#include "shill/dbus/chromeos_supplicant_bss_proxy.h"
20c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu#include "shill/dbus/chromeos_supplicant_interface_proxy.h"
21c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu#include "shill/dbus/chromeos_supplicant_network_proxy.h"
22c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu#include "shill/dbus/chromeos_supplicant_process_proxy.h"
23c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu#include "shill/dbus/chromeos_upstart_proxy.h"
24c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu
25c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu#include "shill/dbus/chromeos_dbus_service_watcher.h"
26c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu
27da6745bdee7e21b3d9476d80febcc9e743e9ca90Peter Qiu#if !defined(DISABLE_CELLULAR)
28da6745bdee7e21b3d9476d80febcc9e743e9ca90Peter Qiu#include "shill/dbus/chromeos_dbus_objectmanager_proxy.h"
29da6745bdee7e21b3d9476d80febcc9e743e9ca90Peter Qiu#include "shill/dbus/chromeos_dbus_properties_proxy.h"
30f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu#include "shill/dbus/chromeos_modem_cdma_proxy.h"
31f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu#include "shill/dbus/chromeos_modem_gobi_proxy.h"
32f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu#include "shill/dbus/chromeos_modem_gsm_card_proxy.h"
33f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu#include "shill/dbus/chromeos_modem_gsm_network_proxy.h"
34f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu#include "shill/dbus/chromeos_modem_manager_proxy.h"
35f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu#include "shill/dbus/chromeos_modem_proxy.h"
36f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu#include "shill/dbus/chromeos_modem_simple_proxy.h"
37da6745bdee7e21b3d9476d80febcc9e743e9ca90Peter Qiu#endif  // DISABLE_CELLULAR
38da6745bdee7e21b3d9476d80febcc9e743e9ca90Peter Qiu
39c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu#if !defined(DISABLE_WIMAX)
40c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu#include "shill/dbus/chromeos_wimax_device_proxy.h"
41c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu#include "shill/dbus/chromeos_wimax_manager_proxy.h"
42c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu#include "shill/dbus/chromeos_wimax_network_proxy.h"
43c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu#endif  // DISABLE_WIMAX
44c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu
4572e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiuusing chromeos::dbus_utils::ExportedObjectManager;
460d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiuusing std::string;
4772e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiu
4872e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiunamespace shill {
4972e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiu
50c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu// static.
51c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiuconst char ChromeosDBusControl::kNullPath[] = "/";
52c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu
5372e7e252c0594c2d58d2d8d64e4eede24608240ePeter QiuChromeosDBusControl::ChromeosDBusControl(
54c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu    const scoped_refptr<dbus::Bus>& bus,
55c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu    EventDispatcher* dispatcher)
56c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu    : bus_(bus),
57c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu      dispatcher_(dispatcher),
58c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu      null_identifier_(kNullPath) {}
5972e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiu
6072e7e252c0594c2d58d2d8d64e4eede24608240ePeter QiuChromeosDBusControl::~ChromeosDBusControl() {}
6172e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiu
62c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiuconst string& ChromeosDBusControl::NullRPCIdentifier() {
63c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu  return null_identifier_;
64c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu}
65c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu
6672e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiutemplate <typename Object, typename AdaptorInterface, typename Adaptor>
6772e7e252c0594c2d58d2d8d64e4eede24608240ePeter QiuAdaptorInterface* ChromeosDBusControl::CreateAdaptor(Object* object) {
68c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu  return new Adaptor(bus_, object);
6972e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiu}
7072e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiu
7172e7e252c0594c2d58d2d8d64e4eede24608240ePeter QiuDeviceAdaptorInterface* ChromeosDBusControl::CreateDeviceAdaptor(
7272e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiu    Device* device) {
7372e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiu  return
7472e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiu      CreateAdaptor<Device, DeviceAdaptorInterface, ChromeosDeviceDBusAdaptor>(
7572e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiu          device);
7672e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiu}
7772e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiu
7824b34a0263ade24d39dfe41a7422bfcd0148fda6Peter QiuIPConfigAdaptorInterface* ChromeosDBusControl::CreateIPConfigAdaptor(
7924b34a0263ade24d39dfe41a7422bfcd0148fda6Peter Qiu    IPConfig* config) {
80484261aa33319098fca2fc44d523648f8ec97da8Peter Qiu  return
81484261aa33319098fca2fc44d523648f8ec97da8Peter Qiu      CreateAdaptor<IPConfig, IPConfigAdaptorInterface,
82484261aa33319098fca2fc44d523648f8ec97da8Peter Qiu                    ChromeosIPConfigDBusAdaptor>(config);
8324b34a0263ade24d39dfe41a7422bfcd0148fda6Peter Qiu}
8424b34a0263ade24d39dfe41a7422bfcd0148fda6Peter Qiu
8524b34a0263ade24d39dfe41a7422bfcd0148fda6Peter QiuManagerAdaptorInterface* ChromeosDBusControl::CreateManagerAdaptor(
8624b34a0263ade24d39dfe41a7422bfcd0148fda6Peter Qiu    Manager* manager) {
87484261aa33319098fca2fc44d523648f8ec97da8Peter Qiu  return
88484261aa33319098fca2fc44d523648f8ec97da8Peter Qiu      CreateAdaptor<Manager, ManagerAdaptorInterface,
89484261aa33319098fca2fc44d523648f8ec97da8Peter Qiu                    ChromeosManagerDBusAdaptor>(manager);
9024b34a0263ade24d39dfe41a7422bfcd0148fda6Peter Qiu}
9124b34a0263ade24d39dfe41a7422bfcd0148fda6Peter Qiu
9224b34a0263ade24d39dfe41a7422bfcd0148fda6Peter QiuProfileAdaptorInterface* ChromeosDBusControl::CreateProfileAdaptor(
9324b34a0263ade24d39dfe41a7422bfcd0148fda6Peter Qiu    Profile* profile) {
94484261aa33319098fca2fc44d523648f8ec97da8Peter Qiu  return
95484261aa33319098fca2fc44d523648f8ec97da8Peter Qiu      CreateAdaptor<Profile, ProfileAdaptorInterface,
96484261aa33319098fca2fc44d523648f8ec97da8Peter Qiu                    ChromeosProfileDBusAdaptor>(profile);
9724b34a0263ade24d39dfe41a7422bfcd0148fda6Peter Qiu}
9824b34a0263ade24d39dfe41a7422bfcd0148fda6Peter Qiu
9924b34a0263ade24d39dfe41a7422bfcd0148fda6Peter QiuRPCTaskAdaptorInterface* ChromeosDBusControl::CreateRPCTaskAdaptor(
10024b34a0263ade24d39dfe41a7422bfcd0148fda6Peter Qiu    RPCTask* task) {
101484261aa33319098fca2fc44d523648f8ec97da8Peter Qiu  return
102484261aa33319098fca2fc44d523648f8ec97da8Peter Qiu      CreateAdaptor<RPCTask, RPCTaskAdaptorInterface,
103484261aa33319098fca2fc44d523648f8ec97da8Peter Qiu                    ChromeosRPCTaskDBusAdaptor>(task);
10424b34a0263ade24d39dfe41a7422bfcd0148fda6Peter Qiu}
10524b34a0263ade24d39dfe41a7422bfcd0148fda6Peter Qiu
10624b34a0263ade24d39dfe41a7422bfcd0148fda6Peter QiuServiceAdaptorInterface* ChromeosDBusControl::CreateServiceAdaptor(
10724b34a0263ade24d39dfe41a7422bfcd0148fda6Peter Qiu    Service* service) {
108484261aa33319098fca2fc44d523648f8ec97da8Peter Qiu  return
109484261aa33319098fca2fc44d523648f8ec97da8Peter Qiu      CreateAdaptor<Service, ServiceAdaptorInterface,
110484261aa33319098fca2fc44d523648f8ec97da8Peter Qiu                    ChromeosServiceDBusAdaptor>(service);
11124b34a0263ade24d39dfe41a7422bfcd0148fda6Peter Qiu}
11224b34a0263ade24d39dfe41a7422bfcd0148fda6Peter Qiu
11324b34a0263ade24d39dfe41a7422bfcd0148fda6Peter Qiu#ifndef DISABLE_VPN
11424b34a0263ade24d39dfe41a7422bfcd0148fda6Peter QiuThirdPartyVpnAdaptorInterface* ChromeosDBusControl::CreateThirdPartyVpnAdaptor(
11524b34a0263ade24d39dfe41a7422bfcd0148fda6Peter Qiu    ThirdPartyVpnDriver* driver) {
116484261aa33319098fca2fc44d523648f8ec97da8Peter Qiu  return
117484261aa33319098fca2fc44d523648f8ec97da8Peter Qiu      CreateAdaptor<ThirdPartyVpnDriver, ThirdPartyVpnAdaptorInterface,
118484261aa33319098fca2fc44d523648f8ec97da8Peter Qiu                    ChromeosThirdPartyVpnDBusAdaptor>(driver);
11924b34a0263ade24d39dfe41a7422bfcd0148fda6Peter Qiu}
12024b34a0263ade24d39dfe41a7422bfcd0148fda6Peter Qiu#endif
12124b34a0263ade24d39dfe41a7422bfcd0148fda6Peter Qiu
122c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter QiuRPCServiceWatcherInterface* ChromeosDBusControl::CreateRPCServiceWatcher(
123c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu    const std::string& connection_name,
124c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu    const base::Closure& on_connection_vanished) {
125c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu  return new ChromeosDBusServiceWatcher(bus_,
126c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu                                        connection_name,
127c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu                                        on_connection_vanished);
128c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu}
129c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu
1300d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter QiuDBusPropertiesProxyInterface* ChromeosDBusControl::CreateDBusPropertiesProxy(
1310d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu    const string& path,
1320d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu    const string& service) {
133da6745bdee7e21b3d9476d80febcc9e743e9ca90Peter Qiu  return new ChromeosDBusPropertiesProxy(bus_, path, service);
1340d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu}
1350d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu
1360d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter QiuDBusServiceProxyInterface* ChromeosDBusControl::CreateDBusServiceProxy() {
1370d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu  return nullptr;
1380d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu}
1390d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu
1400d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter QiuPowerManagerProxyInterface* ChromeosDBusControl::CreatePowerManagerProxy(
141c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu    PowerManagerProxyDelegate* delegate,
142c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu    const base::Closure& service_appeared_callback,
143c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu    const base::Closure& service_vanished_callback) {
144c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu  return new ChromeosPowerManagerProxy(dispatcher_,
145c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu                                       bus_,
146c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu                                       delegate,
147c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu                                       service_appeared_callback,
148c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu                                       service_vanished_callback);
1490d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu}
1500d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu
1510d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu#if !defined(DISABLE_WIFI) || !defined(DISABLE_WIRED_8021X)
1520d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter QiuSupplicantProcessProxyInterface*
1530d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu    ChromeosDBusControl::CreateSupplicantProcessProxy(
154c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu        const base::Closure& service_appeared_callback,
155c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu        const base::Closure& service_vanished_callback) {
156c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu  return new ChromeosSupplicantProcessProxy(
157c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu      dispatcher_, bus_, service_appeared_callback, service_vanished_callback);
1580d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu}
1590d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu
1600d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter QiuSupplicantInterfaceProxyInterface*
1610d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu    ChromeosDBusControl::CreateSupplicantInterfaceProxy(
1620d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu        SupplicantEventDelegateInterface* delegate,
163c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu        const string& object_path) {
164c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu  return new ChromeosSupplicantInterfaceProxy(bus_, object_path, delegate);
1650d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu}
1660d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu
1670d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter QiuSupplicantNetworkProxyInterface*
1680d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu    ChromeosDBusControl::CreateSupplicantNetworkProxy(
169c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu        const string& object_path) {
170c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu  return new ChromeosSupplicantNetworkProxy(bus_, object_path);
1710d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu}
1720d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu#endif  // DISABLE_WIFI || DISABLE_WIRED_8021X
1730d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu
1740d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu#if !defined(DISABLE_WIFI)
1750d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter QiuSupplicantBSSProxyInterface* ChromeosDBusControl::CreateSupplicantBSSProxy(
1760d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu    WiFiEndpoint* wifi_endpoint,
177c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu    const string& object_path) {
178c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu  return new ChromeosSupplicantBSSProxy(bus_, object_path, wifi_endpoint);
1790d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu}
1800d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu#endif  // DISABLE_WIFI
1810d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu
182820012496f8c171a7c5da4a4904a6ee93bfea2e9Peter QiuDHCPCDListenerInterface* ChromeosDBusControl::CreateDHCPCDListener(
183820012496f8c171a7c5da4a4904a6ee93bfea2e9Peter Qiu    DHCPProvider* provider) {
184c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu  return new ChromeosDHCPCDListener(bus_, dispatcher_, provider);
185820012496f8c171a7c5da4a4904a6ee93bfea2e9Peter Qiu}
186820012496f8c171a7c5da4a4904a6ee93bfea2e9Peter Qiu
1870d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter QiuDHCPProxyInterface* ChromeosDBusControl::CreateDHCPProxy(
1880d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu    const string& service) {
189c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu  return new ChromeosDHCPCDProxy(bus_, service);
1900d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu}
1910d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu
1920d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter QiuUpstartProxyInterface* ChromeosDBusControl::CreateUpstartProxy() {
193c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu  return new ChromeosUpstartProxy(bus_);
1940d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu}
1950d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu
1960d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter QiuPermissionBrokerProxyInterface*
1970d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu    ChromeosDBusControl::CreatePermissionBrokerProxy() {
198c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu  return new ChromeosPermissionBrokerProxy(bus_);
1990d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu}
2000d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu
2010d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu#if !defined(DISABLE_CELLULAR)
2020d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter QiuDBusObjectManagerProxyInterface*
2030d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu    ChromeosDBusControl::CreateDBusObjectManagerProxy(
2040d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu        const string& path,
20505d87e34869f44473edc1eec25d2fe1110d777a7Peter Qiu        const string& service,
20605d87e34869f44473edc1eec25d2fe1110d777a7Peter Qiu        const base::Closure& service_appeared_callback,
20705d87e34869f44473edc1eec25d2fe1110d777a7Peter Qiu        const base::Closure& service_vanished_callback) {
208da6745bdee7e21b3d9476d80febcc9e743e9ca90Peter Qiu  return new ChromeosDBusObjectManagerProxy(dispatcher_,
209da6745bdee7e21b3d9476d80febcc9e743e9ca90Peter Qiu                                            bus_,
210da6745bdee7e21b3d9476d80febcc9e743e9ca90Peter Qiu                                            path,
211da6745bdee7e21b3d9476d80febcc9e743e9ca90Peter Qiu                                            service,
212da6745bdee7e21b3d9476d80febcc9e743e9ca90Peter Qiu                                            service_appeared_callback,
213da6745bdee7e21b3d9476d80febcc9e743e9ca90Peter Qiu                                            service_vanished_callback);
2140d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu}
2150d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu
2160d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter QiuModemManagerProxyInterface*
2170d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu    ChromeosDBusControl::CreateModemManagerProxy(
2180d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu        ModemManagerClassic* manager,
2190d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu        const string& path,
22005d87e34869f44473edc1eec25d2fe1110d777a7Peter Qiu        const string& service,
221f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu        const base::Closure& service_appeared_callback,
222f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu        const base::Closure& service_vanished_callback) {
223f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu  return new ChromeosModemManagerProxy(dispatcher_,
224f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu                                       bus_,
225f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu                                       manager,
226f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu                                       path,
227f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu                                       service,
228f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu                                       service_appeared_callback,
229f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu                                       service_vanished_callback);
2300d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu}
2310d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu
2320d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter QiuModemProxyInterface* ChromeosDBusControl::CreateModemProxy(
2330d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu    const string& path,
2340d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu    const string& service) {
235f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu  return new ChromeosModemProxy(bus_, path, service);
2360d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu}
2370d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu
2380d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter QiuModemSimpleProxyInterface* ChromeosDBusControl::CreateModemSimpleProxy(
2390d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu    const string& path,
2400d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu    const string& service) {
241f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu  return new ChromeosModemSimpleProxy(bus_, path, service);
2420d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu}
2430d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu
2440d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter QiuModemCDMAProxyInterface* ChromeosDBusControl::CreateModemCDMAProxy(
2450d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu    const string& path,
2460d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu    const string& service) {
247f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu  return new ChromeosModemCDMAProxy(bus_, path, service);
2480d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu}
2490d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu
2500d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter QiuModemGSMCardProxyInterface* ChromeosDBusControl::CreateModemGSMCardProxy(
2510d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu    const string& path,
2520d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu    const string& service) {
253f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu  return new ChromeosModemGSMCardProxy(bus_, path, service);
2540d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu}
2550d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu
2560d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter QiuModemGSMNetworkProxyInterface* ChromeosDBusControl::CreateModemGSMNetworkProxy(
2570d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu    const string& path,
2580d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu    const string& service) {
259f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu  return new ChromeosModemGSMNetworkProxy(bus_, path, service);
2600d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu}
2610d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu
2620d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter QiuModemGobiProxyInterface* ChromeosDBusControl::CreateModemGobiProxy(
2630d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu    const string& path,
2640d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu    const string& service) {
265f576f1b61ac8514adffd5ef6d44f8b0aa00ab979Peter Qiu  return new ChromeosModemGobiProxy(bus_, path, service);
2660d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu}
2670d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu
2680d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu// Proxies for ModemManager1 interfaces
2690d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiumm1::ModemModem3gppProxyInterface*
2700d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu    ChromeosDBusControl::CreateMM1ModemModem3gppProxy(
2710d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu        const string& path,
2720d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu        const string& service) {
2730d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu  return nullptr;
2740d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu}
2750d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu
2760d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiumm1::ModemModemCdmaProxyInterface*
2770d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu    ChromeosDBusControl::CreateMM1ModemModemCdmaProxy(
2780d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu        const string& path,
2790d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu        const string& service) {
2800d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu  return nullptr;
2810d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu}
2820d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu
2830d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiumm1::ModemProxyInterface* ChromeosDBusControl::CreateMM1ModemProxy(
2840d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu    const string& path,
2850d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu    const string& service) {
2860d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu  return nullptr;
2870d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu}
2880d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu
2890d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiumm1::ModemSimpleProxyInterface* ChromeosDBusControl::CreateMM1ModemSimpleProxy(
2900d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu    const string& path,
2910d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu    const string& service) {
2920d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu  return nullptr;
2930d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu}
2940d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu
2950d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiumm1::SimProxyInterface* ChromeosDBusControl::CreateSimProxy(
2960d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu    const string& path,
2970d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu    const string& service) {
2980d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu  return nullptr;
2990d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu}
3000d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu#endif  // DISABLE_CELLULAR
3010d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu
3020d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu#if !defined(DISABLE_WIMAX)
3030d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter QiuWiMaxDeviceProxyInterface* ChromeosDBusControl::CreateWiMaxDeviceProxy(
3040d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu    const string& path) {
305c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu  return new ChromeosWiMaxDeviceProxy(bus_, path);
3060d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu}
3070d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu
308c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter QiuWiMaxManagerProxyInterface* ChromeosDBusControl::CreateWiMaxManagerProxy(
309c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu    const base::Closure& service_appeared_callback,
310c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu    const base::Closure& service_vanished_callback) {
311c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu  return new ChromeosWiMaxManagerProxy(dispatcher_,
312c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu                                       bus_,
313c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu                                       service_appeared_callback,
314c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu                                       service_vanished_callback);
3150d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu}
3160d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu
3170d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter QiuWiMaxNetworkProxyInterface* ChromeosDBusControl::CreateWiMaxNetworkProxy(
3180d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu    const string& path) {
319c00d1fa87127a33bd1e1a7cf049a54a9cca49d68Peter Qiu  return new ChromeosWiMaxNetworkProxy(bus_, path);
3200d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu}
3210d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu#endif  // DISABLE_WIMAX
3220d8b91f88c68ae95840ce2eae1f058a4a53684f7Peter Qiu
32372e7e252c0594c2d58d2d8d64e4eede24608240ePeter Qiu}  // namespace shill
324