1 // Copyright 2013 The Chromium 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.
5 #include "chromeos/network/network_handler.h"
7 #include "base/threading/worker_pool.h"
8 #include "chromeos/dbus/dbus_thread_manager.h"
9 #include "chromeos/network/auto_connect_handler.h"
10 #include "chromeos/network/client_cert_resolver.h"
11 #include "chromeos/network/geolocation_handler.h"
12 #include "chromeos/network/managed_network_configuration_handler_impl.h"
13 #include "chromeos/network/network_activation_handler.h"
14 #include "chromeos/network/network_cert_migrator.h"
15 #include "chromeos/network/network_configuration_handler.h"
16 #include "chromeos/network/network_connection_handler.h"
17 #include "chromeos/network/network_device_handler_impl.h"
18 #include "chromeos/network/network_event_log.h"
19 #include "chromeos/network/network_profile_handler.h"
20 #include "chromeos/network/network_profile_observer.h"
21 #include "chromeos/network/network_sms_handler.h"
22 #include "chromeos/network/network_state_handler.h"
23 #include "chromeos/network/network_state_handler_observer.h"
27 static NetworkHandler
* g_network_handler
= NULL
;
29 NetworkHandler::NetworkHandler()
30 : message_loop_(base::MessageLoopProxy::current()) {
31 CHECK(DBusThreadManager::IsInitialized());
33 network_event_log::Initialize();
35 network_state_handler_
.reset(new NetworkStateHandler());
36 network_device_handler_
.reset(new NetworkDeviceHandlerImpl());
37 network_profile_handler_
.reset(new NetworkProfileHandler());
38 network_configuration_handler_
.reset(new NetworkConfigurationHandler());
39 managed_network_configuration_handler_
.reset(
40 new ManagedNetworkConfigurationHandlerImpl());
41 if (CertLoader::IsInitialized()) {
42 auto_connect_handler_
.reset(new AutoConnectHandler());
43 network_cert_migrator_
.reset(new NetworkCertMigrator());
44 client_cert_resolver_
.reset(new ClientCertResolver());
46 network_activation_handler_
.reset(new NetworkActivationHandler());
47 network_connection_handler_
.reset(new NetworkConnectionHandler());
48 network_sms_handler_
.reset(new NetworkSmsHandler());
49 geolocation_handler_
.reset(new GeolocationHandler());
52 NetworkHandler::~NetworkHandler() {
53 network_event_log::Shutdown();
56 void NetworkHandler::Init() {
57 network_state_handler_
->InitShillPropertyHandler();
58 network_device_handler_
->Init(network_state_handler_
.get());
59 network_profile_handler_
->Init();
60 network_configuration_handler_
->Init(network_state_handler_
.get());
61 managed_network_configuration_handler_
->Init(
62 network_state_handler_
.get(),
63 network_profile_handler_
.get(),
64 network_configuration_handler_
.get(),
65 network_device_handler_
.get());
66 network_connection_handler_
->Init(
67 network_state_handler_
.get(),
68 network_configuration_handler_
.get(),
69 managed_network_configuration_handler_
.get());
70 if (network_cert_migrator_
)
71 network_cert_migrator_
->Init(network_state_handler_
.get());
72 if (client_cert_resolver_
) {
73 client_cert_resolver_
->Init(network_state_handler_
.get(),
74 managed_network_configuration_handler_
.get());
76 if (auto_connect_handler_
) {
77 auto_connect_handler_
->Init(client_cert_resolver_
.get(),
78 network_connection_handler_
.get(),
79 network_state_handler_
.get(),
80 managed_network_configuration_handler_
.get());
82 network_sms_handler_
->Init();
83 geolocation_handler_
->Init();
87 void NetworkHandler::Initialize() {
88 CHECK(!g_network_handler
);
89 g_network_handler
= new NetworkHandler();
90 g_network_handler
->Init();
94 void NetworkHandler::Shutdown() {
95 CHECK(g_network_handler
);
96 delete g_network_handler
;
97 g_network_handler
= NULL
;
101 NetworkHandler
* NetworkHandler::Get() {
102 CHECK(g_network_handler
)
103 << "NetworkHandler::Get() called before Initialize()";
104 return g_network_handler
;
108 bool NetworkHandler::IsInitialized() {
109 return g_network_handler
;
112 NetworkStateHandler
* NetworkHandler::network_state_handler() {
113 return network_state_handler_
.get();
116 NetworkDeviceHandler
* NetworkHandler::network_device_handler() {
117 return network_device_handler_
.get();
120 NetworkProfileHandler
* NetworkHandler::network_profile_handler() {
121 return network_profile_handler_
.get();
124 NetworkConfigurationHandler
* NetworkHandler::network_configuration_handler() {
125 return network_configuration_handler_
.get();
128 ManagedNetworkConfigurationHandler
*
129 NetworkHandler::managed_network_configuration_handler() {
130 return managed_network_configuration_handler_
.get();
133 NetworkActivationHandler
* NetworkHandler::network_activation_handler() {
134 return network_activation_handler_
.get();
137 NetworkConnectionHandler
* NetworkHandler::network_connection_handler() {
138 return network_connection_handler_
.get();
141 NetworkSmsHandler
* NetworkHandler::network_sms_handler() {
142 return network_sms_handler_
.get();
145 GeolocationHandler
* NetworkHandler::geolocation_handler() {
146 return geolocation_handler_
.get();
149 } // namespace chromeos