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