| Index: chrome/browser/chromeos/cros/network_parser.cc
|
| diff --git a/chrome/browser/chromeos/cros/network_parser.cc b/chrome/browser/chromeos/cros/network_parser.cc
|
| deleted file mode 100644
|
| index e769a82943924816753c1b24f65a927a74f076a4..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/chromeos/cros/network_parser.cc
|
| +++ /dev/null
|
| @@ -1,218 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "chrome/browser/chromeos/cros/network_parser.h"
|
| -
|
| -#include "base/json/json_reader.h"
|
| -#include "base/json/json_writer.h" // for debug output only.
|
| -#include "base/strings/stringprintf.h"
|
| -#include "base/values.h"
|
| -// Needed only for debug output (ConnectionTypeToString).
|
| -#include "chrome/browser/chromeos/cros/native_network_constants.h"
|
| -
|
| -namespace chromeos {
|
| -
|
| -NetworkDeviceParser::NetworkDeviceParser(
|
| - const EnumMapper<PropertyIndex>* mapper) : mapper_(mapper) {
|
| - CHECK(mapper);
|
| -}
|
| -
|
| -NetworkDeviceParser::~NetworkDeviceParser() {
|
| -}
|
| -
|
| -NetworkDevice* NetworkDeviceParser::CreateDeviceFromInfo(
|
| - const std::string& device_path,
|
| - const DictionaryValue& info) {
|
| - scoped_ptr<NetworkDevice> device(CreateNewNetworkDevice(device_path));
|
| - if (!UpdateDeviceFromInfo(info, device.get())) {
|
| - NOTREACHED() << "Unable to create new device";
|
| - return NULL;
|
| - }
|
| - VLOG(2) << "Created device for path " << device_path;
|
| - return device.release();
|
| -}
|
| -
|
| -bool NetworkDeviceParser::UpdateDeviceFromInfo(const DictionaryValue& info,
|
| - NetworkDevice* device) {
|
| - for (DictionaryValue::Iterator iter(info); !iter.IsAtEnd(); iter.Advance())
|
| - UpdateStatus(iter.key(), iter.value(), device, NULL);
|
| -
|
| - if (VLOG_IS_ON(2)) {
|
| - std::string json;
|
| - base::JSONWriter::WriteWithOptions(&info,
|
| - base::JSONWriter::OPTIONS_PRETTY_PRINT,
|
| - &json);
|
| - VLOG(2) << "Updated device for path "
|
| - << device->device_path() << ": " << json;
|
| - }
|
| - return true;
|
| -}
|
| -
|
| -bool NetworkDeviceParser::UpdateStatus(const std::string& key,
|
| - const base::Value& value,
|
| - NetworkDevice* device,
|
| - PropertyIndex* index) {
|
| - PropertyIndex found_index = mapper().Get(key);
|
| - if (index)
|
| - *index = found_index;
|
| - if (!ParseValue(found_index, value, device)) {
|
| - VLOG(3) << "NetworkDeviceParser: Unhandled key: " << key;
|
| - return false;
|
| - }
|
| - if (VLOG_IS_ON(3)) {
|
| - std::string value_json;
|
| - base::JSONWriter::WriteWithOptions(&value,
|
| - base::JSONWriter::OPTIONS_PRETTY_PRINT,
|
| - &value_json);
|
| - VLOG(3) << "Updated value on device: "
|
| - << device->device_path() << "[" << key << "] = " << value_json;
|
| - }
|
| - return true;
|
| -}
|
| -
|
| -NetworkDevice* NetworkDeviceParser::CreateNewNetworkDevice(
|
| - const std::string&device_path) {
|
| - return new NetworkDevice(device_path);
|
| -}
|
| -
|
| -//----------- Network Parser -----------------
|
| -
|
| -NetworkParser::NetworkParser(const EnumMapper<PropertyIndex>* mapper)
|
| - : mapper_(mapper) {
|
| - CHECK(mapper);
|
| -}
|
| -
|
| -NetworkParser::~NetworkParser() {
|
| -}
|
| -
|
| -Network* NetworkParser::CreateNetworkFromInfo(
|
| - const std::string& service_path,
|
| - const DictionaryValue& info) {
|
| - ConnectionType type = ParseTypeFromDictionary(info);
|
| - if (type == TYPE_UNKNOWN) // Return NULL if cannot parse network type.
|
| - return NULL;
|
| - scoped_ptr<Network> network(CreateNewNetwork(type, service_path));
|
| - UpdateNetworkFromInfo(info, network.get());
|
| - VLOG(2) << "Created Network '" << network->name()
|
| - << "' from info. Path:" << service_path
|
| - << " Type:" << ConnectionTypeToString(type);
|
| - return network.release();
|
| -}
|
| -
|
| -bool NetworkParser::UpdateNetworkFromInfo(const DictionaryValue& info,
|
| - Network* network) {
|
| - network->set_unique_id("");
|
| - for (DictionaryValue::Iterator iter(info); !iter.IsAtEnd(); iter.Advance())
|
| - network->UpdateStatus(iter.key(), iter.value(), NULL);
|
| -
|
| - if (network->unique_id().empty())
|
| - network->CalculateUniqueId();
|
| - VLOG(2) << "Updated network '" << network->name()
|
| - << "' Path:" << network->service_path() << " Type:"
|
| - << ConnectionTypeToString(network->type());
|
| - return true;
|
| -}
|
| -
|
| -bool NetworkParser::UpdateStatus(const std::string& key,
|
| - const base::Value& value,
|
| - Network* network,
|
| - PropertyIndex* index) {
|
| - PropertyIndex found_index = mapper().Get(key);
|
| - if (index)
|
| - *index = found_index;
|
| - if (!ParseValue(found_index, value, network)) {
|
| - VLOG(3) << "Unhandled key '" << key << "' in Network: " << network->name()
|
| - << " ID: " << network->unique_id()
|
| - << " Type: " << ConnectionTypeToString(network->type());
|
| - return false;
|
| - }
|
| - if (VLOG_IS_ON(3)) {
|
| - std::string value_json;
|
| - base::JSONWriter::WriteWithOptions(&value,
|
| - base::JSONWriter::OPTIONS_PRETTY_PRINT,
|
| - &value_json);
|
| - VLOG(3) << "Updated value on network: "
|
| - << network->unique_id() << "[" << key << "] = " << value_json;
|
| - }
|
| - return true;
|
| -}
|
| -
|
| -Network* NetworkParser::CreateNewNetwork(
|
| - ConnectionType type, const std::string& service_path) {
|
| - switch (type) {
|
| - case TYPE_ETHERNET: {
|
| - EthernetNetwork* ethernet = new EthernetNetwork(service_path);
|
| - return ethernet;
|
| - }
|
| - case TYPE_WIFI: {
|
| - WifiNetwork* wifi = new WifiNetwork(service_path);
|
| - return wifi;
|
| - }
|
| - case TYPE_WIMAX: {
|
| - WimaxNetwork* wifi = new WimaxNetwork(service_path);
|
| - return wifi;
|
| - }
|
| - case TYPE_CELLULAR: {
|
| - CellularNetwork* cellular = new CellularNetwork(service_path);
|
| - return cellular;
|
| - }
|
| - case TYPE_VPN: {
|
| - VirtualNetwork* vpn = new VirtualNetwork(service_path);
|
| - return vpn;
|
| - }
|
| - default: {
|
| - // If we try and create a service for which we have an unknown
|
| - // type, then that's a bug, and we will crash.
|
| - LOG(FATAL) << "Unknown service type: " << type;
|
| - return NULL;
|
| - }
|
| - }
|
| -}
|
| -
|
| -bool NetworkParser::ParseValue(PropertyIndex index,
|
| - const base::Value& value,
|
| - Network* network) {
|
| - switch (index) {
|
| - case PROPERTY_INDEX_NAME: {
|
| - std::string name;
|
| - if (!value.GetAsString(&name))
|
| - return false;
|
| - network->SetName(name);
|
| - return true;
|
| - }
|
| - case PROPERTY_INDEX_GUID: {
|
| - std::string unique_id;
|
| - if (!value.GetAsString(&unique_id))
|
| - return false;
|
| - network->set_unique_id(unique_id);
|
| - return true;
|
| - }
|
| - case PROPERTY_INDEX_AUTO_CONNECT: {
|
| - bool auto_connect;
|
| - if (!value.GetAsBoolean(&auto_connect))
|
| - return false;
|
| - network->set_auto_connect(auto_connect);
|
| - return true;
|
| - }
|
| - case PROPERTY_INDEX_UI_DATA: {
|
| - network->set_ui_data(NetworkUIData());
|
| - std::string ui_data_json;
|
| - if (!value.GetAsString(&ui_data_json))
|
| - return false;
|
| - scoped_ptr<base::Value> ui_data_value(
|
| - base::JSONReader::Read(ui_data_json));
|
| - base::DictionaryValue* ui_data_dict = NULL;
|
| - if (!ui_data_value.get() ||
|
| - !ui_data_value->GetAsDictionary(&ui_data_dict))
|
| - return false;
|
| - network->set_ui_data(NetworkUIData(*ui_data_dict));
|
| - return true;
|
| - }
|
| - default:
|
| - break;
|
| - }
|
| - return false;
|
| -}
|
| -
|
| -} // namespace chromeos
|
|
|