network_handler.cc revision 558790d6acca3451cf3a6b497803a5f07d0bec58
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/geolocation_handler.h" 9#include "chromeos/network/managed_network_configuration_handler.h" 10#include "chromeos/network/network_configuration_handler.h" 11#include "chromeos/network/network_connection_handler.h" 12#include "chromeos/network/network_device_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 network_state_handler_.reset(new NetworkStateHandler()); 29 network_device_handler_.reset(new NetworkDeviceHandler()); 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(network_state_handler_.get(), 51 network_configuration_handler_.get()); 52 geolocation_handler_->Init(); 53} 54 55// static 56void NetworkHandler::Initialize() { 57 CHECK(!g_network_handler); 58 g_network_handler = new NetworkHandler(); 59 g_network_handler->Init(); 60} 61 62// static 63void NetworkHandler::Shutdown() { 64 CHECK(g_network_handler); 65 delete g_network_handler; 66 g_network_handler = NULL; 67} 68 69// static 70NetworkHandler* NetworkHandler::Get() { 71 CHECK(g_network_handler) 72 << "NetworkHandler::Get() called before Initialize()"; 73 return g_network_handler; 74} 75 76// static 77bool NetworkHandler::IsInitialized() { 78 return g_network_handler; 79} 80 81NetworkStateHandler* NetworkHandler::network_state_handler() { 82 return network_state_handler_.get(); 83} 84 85NetworkDeviceHandler* NetworkHandler::network_device_handler() { 86 return network_device_handler_.get(); 87} 88 89NetworkProfileHandler* NetworkHandler::network_profile_handler() { 90 return network_profile_handler_.get(); 91} 92 93NetworkConfigurationHandler* NetworkHandler::network_configuration_handler() { 94 return network_configuration_handler_.get(); 95} 96 97ManagedNetworkConfigurationHandler* 98NetworkHandler::managed_network_configuration_handler() { 99 return managed_network_configuration_handler_.get(); 100} 101 102NetworkConnectionHandler* NetworkHandler::network_connection_handler() { 103 return network_connection_handler_.get(); 104} 105 106GeolocationHandler* NetworkHandler::geolocation_handler() { 107 return geolocation_handler_.get(); 108} 109 110} // namespace chromeos 111