Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4509)

Unified Diff: chrome/browser/chromeos/cros/native_network_parser.h

Issue 7453051: This factors out all of the parsing code from the network library (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Reducing friends to minimal set. Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/cros/native_network_parser.h
diff --git a/chrome/browser/chromeos/cros/native_network_parser.h b/chrome/browser/chromeos/cros/native_network_parser.h
new file mode 100644
index 0000000000000000000000000000000000000000..eee13843a2be7722d7053112d65fb1dc2fd48cd3
--- /dev/null
+++ b/chrome/browser/chromeos/cros/native_network_parser.h
@@ -0,0 +1,141 @@
+// Copyright (c) 2011 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.
+
+#ifndef CHROME_BROWSER_CHROMEOS_CROS_NATIVE_NETWORK_PARSER_H_
+#define CHROME_BROWSER_CHROMEOS_CROS_NATIVE_NETWORK_PARSER_H_
+#pragma once
+
+#include "chrome/browser/chromeos/cros/network_parser.h"
+#include "base/compiler_specific.h" // for OVERRIDE
+
+namespace chromeos {
+
+// This is the network device parser that parses the data from the
+// network stack on the native platform. Currently it parses
+// FlimFlam-provided information.
+class NativeNetworkDeviceParser : public NetworkDeviceParser {
+ public:
+ NativeNetworkDeviceParser();
+ virtual ~NativeNetworkDeviceParser();
+ virtual bool ParseValue(PropertyIndex index,
+ const Value& value,
+ NetworkDevice* device) OVERRIDE;
+ protected:
+ virtual ConnectionType ParseType(const std::string& type) OVERRIDE;
+
+ // Parsing helper routines specific to native network devices.
+ virtual bool ParseApnList(const ListValue& list, CellularApnList* apn_list);
+ virtual bool ParseFoundNetworksFromList(const ListValue& list,
+ CellularNetworkList* found_networks);
+ virtual SimLockState ParseSimLockState(const std::string& state);
+ virtual bool ParseSimLockStateFromDictionary(const DictionaryValue& info,
+ SimLockState* out_state,
+ int* out_retries);
+ virtual TechnologyFamily ParseTechnologyFamily(
+ const std::string& technology_family);
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(NativeNetworkDeviceParser);
+};
+
+// This is the network parser that parses the data from the network
+// stack on the native platform. Currently it parses
+// FlimFlam-provided information.
+class NativeNetworkParser : public NetworkParser {
+ public:
+ NativeNetworkParser();
+ virtual ~NativeNetworkParser();
+ static const EnumMapper<PropertyIndex>* property_mapper();
+ static const ConnectionType ParseConnectionType(const std::string& type);
+ protected:
+ virtual bool ParseValue(PropertyIndex index,
+ const Value& value,
+ Network* network) OVERRIDE;
+ virtual ConnectionType ParseType(const std::string& type) OVERRIDE;
+ virtual ConnectionType ParseTypeFromDictionary(
+ const DictionaryValue& info) OVERRIDE;
+ virtual ConnectionMode ParseMode(const std::string& mode) OVERRIDE;
+ virtual ConnectionState ParseState(const std::string& state) OVERRIDE;
+ virtual ConnectionError ParseError(const std::string& error) OVERRIDE;
+ private:
+ DISALLOW_COPY_AND_ASSIGN(NativeNetworkParser);
+};
+
+// Below are specific types of network parsers.
+class NativeEthernetNetworkParser : public NativeNetworkParser {
+ public:
+ NativeEthernetNetworkParser();
+ virtual ~NativeEthernetNetworkParser();
+ private:
+ // NOTE: Uses base class ParseValue, etc.
+
+ DISALLOW_COPY_AND_ASSIGN(NativeEthernetNetworkParser);
+};
+
+// Base for wireless networks.
+class NativeWirelessNetworkParser : public NativeNetworkParser {
+ public:
+ NativeWirelessNetworkParser();
+ virtual ~NativeWirelessNetworkParser();
+ virtual bool ParseValue(PropertyIndex index,
+ const Value& value,
+ Network* network) OVERRIDE;
+ private:
+ DISALLOW_COPY_AND_ASSIGN(NativeWirelessNetworkParser);
+};
+
+class NativeWifiNetworkParser : public NativeWirelessNetworkParser {
+ public:
+ NativeWifiNetworkParser();
+ virtual ~NativeWifiNetworkParser();
+ virtual bool ParseValue(PropertyIndex index,
+ const Value& value,
+ Network* network) OVERRIDE;
+ protected:
+ ConnectionSecurity ParseSecurity(const std::string& security);
+ EAPMethod ParseEAPMethod(const std::string& method);
+ EAPPhase2Auth ParseEAPPhase2Auth(const std::string& auth);
+ private:
+ DISALLOW_COPY_AND_ASSIGN(NativeWifiNetworkParser);
+};
+
+class NativeCellularNetworkParser : public NativeWirelessNetworkParser {
+ public:
+ NativeCellularNetworkParser();
+ virtual ~NativeCellularNetworkParser();
+ virtual bool ParseValue(PropertyIndex index,
+ const Value& value,
+ Network* network) OVERRIDE;
+ protected:
+ ActivationState ParseActivationState(const std::string& state);
+ NetworkTechnology ParseNetworkTechnology(
+ const std::string& technology);
+ NetworkRoamingState ParseRoamingState(
+ const std::string& roaming_state);
+ private:
+ DISALLOW_COPY_AND_ASSIGN(NativeCellularNetworkParser);
+};
+
+class NativeVirtualNetworkParser : public NativeNetworkParser {
+ public:
+ NativeVirtualNetworkParser();
+ virtual ~NativeVirtualNetworkParser();
+ virtual bool ParseValue(PropertyIndex index,
+ const Value& value,
+ Network* network) OVERRIDE;
+ virtual bool UpdateNetworkFromInfo(const DictionaryValue& info,
+ Network* network) OVERRIDE;
+ protected:
+ bool ParseProviderValue(PropertyIndex index,
+ const Value& value,
+ VirtualNetwork* network);
+ ProviderType ParseProviderType(const std::string& type);
+ private:
+ DISALLOW_COPY_AND_ASSIGN(NativeVirtualNetworkParser);
+};
+
+
+} // namespace chromeos
+
+#endif // CHROME_BROWSER_CHROMEOS_CROS_NATIVE_NETWORK_PARSER_H_
« no previous file with comments | « chrome/browser/chromeos/cros/native_network_constants.cc ('k') | chrome/browser/chromeos/cros/native_network_parser.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698