network_handler.cc revision eb525c5499e34cc9c4b825d6d9e75bb07cc06ace
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. 4 5#include "chromeos/network/network_handler.h" 6 7#include "chromeos/dbus/dbus_thread_manager.h" 8#include "chromeos/network/cert_loader.h" 9#include "chromeos/network/geolocation_handler.h" 10#include "chromeos/network/managed_network_configuration_handler.h" 11#include "chromeos/network/network_configuration_handler.h" 12#include "chromeos/network/network_connection_handler.h" 13#include "chromeos/network/network_event_log.h" 14#include "chromeos/network/network_profile_handler.h" 15#include "chromeos/network/network_profile_observer.h" 16#include "chromeos/network/network_state_handler.h" 17#include "chromeos/network/network_state_handler_observer.h" 18 19namespace chromeos { 20 21static NetworkHandler* g_network_handler = NULL; 22 23NetworkHandler::NetworkHandler() { 24 CHECK(DBusThreadManager::IsInitialized()); 25 26 network_event_log::Initialize(); 27 28 cert_loader_.reset(new CertLoader); 29 network_state_handler_.reset(new NetworkStateHandler()); 30 network_profile_handler_.reset(new NetworkProfileHandler()); 31 network_configuration_handler_.reset(new NetworkConfigurationHandler()); 32 managed_network_configuration_handler_.reset( 33 new ManagedNetworkConfigurationHandler()); 34 network_connection_handler_.reset(new NetworkConnectionHandler()); 35 geolocation_handler_.reset(new GeolocationHandler()); 36} 37 38NetworkHandler::~NetworkHandler() { 39 network_event_log::Shutdown(); 40} 41 42void NetworkHandler::Init() { 43 network_state_handler_->InitShillPropertyHandler(); 44 network_profile_handler_->Init(network_state_handler_.get()); 45 network_configuration_handler_->Init(network_state_handler_.get()); 46 managed_network_configuration_handler_->Init( 47 network_state_handler_.get(), 48 network_profile_handler_.get(), 49 network_configuration_handler_.get()); 50 network_connection_handler_->Init(cert_loader_.get(), 51 network_state_handler_.get(), 52 network_configuration_handler_.get()); 53 geolocation_handler_->Init(); 54} 55 56// static 57void NetworkHandler::Initialize() { 58 CHECK(!g_network_handler); 59 g_network_handler = new NetworkHandler(); 60 g_network_handler->Init(); 61} 62 63// static 64void NetworkHandler::Shutdown() { 65 CHECK(g_network_handler); 66 delete g_network_handler; 67 g_network_handler = NULL; 68} 69 70// static 71NetworkHandler* NetworkHandler::Get() { 72 CHECK(g_network_handler) 73 << "NetworkHandler::Get() called before Initialize()"; 74 return g_network_handler; 75} 76 77// static 78bool NetworkHandler::IsInitialized() { 79 return g_network_handler; 80} 81 82CertLoader* NetworkHandler::cert_loader() { 83 return cert_loader_.get(); 84} 85 86NetworkStateHandler* NetworkHandler::network_state_handler() { 87 return network_state_handler_.get(); 88} 89 90NetworkProfileHandler* NetworkHandler::network_profile_handler() { 91 return network_profile_handler_.get(); 92} 93 94NetworkConfigurationHandler* NetworkHandler::network_configuration_handler() { 95 return network_configuration_handler_.get(); 96} 97 98ManagedNetworkConfigurationHandler* 99NetworkHandler::managed_network_configuration_handler() { 100 return managed_network_configuration_handler_.get(); 101} 102 103NetworkConnectionHandler* NetworkHandler::network_connection_handler() { 104 return network_connection_handler_.get(); 105} 106 107GeolocationHandler* NetworkHandler::geolocation_handler() { 108 return geolocation_handler_.get(); 109} 110 111} // namespace chromeos 112