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