onc_translation_tables.h revision cedac228d2dd51db4b79ea1e72c7f249408ee061
1// Copyright (c) 2012 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#ifndef CHROMEOS_NETWORK_ONC_ONC_TRANSLATION_TABLES_H_ 6#define CHROMEOS_NETWORK_ONC_ONC_TRANSLATION_TABLES_H_ 7 8#include <string> 9#include <vector> 10 11#include "chromeos/network/onc/onc_signature.h" 12 13namespace chromeos { 14namespace onc { 15 16struct FieldTranslationEntry { 17 const char* onc_field_name; 18 const char* shill_property_name; 19}; 20 21struct StringTranslationEntry { 22 const char* onc_value; 23 const char* shill_value; 24}; 25 26// These tables contain the mapping from ONC strings to Shill strings. 27// These are NULL-terminated arrays. 28extern const StringTranslationEntry kNetworkTypeTable[]; 29extern const StringTranslationEntry kVPNTypeTable[]; 30extern const StringTranslationEntry kWiFiSecurityTable[]; 31extern const StringTranslationEntry kEAPOuterTable[]; 32extern const StringTranslationEntry kEAP_PEAP_InnerTable[]; 33extern const StringTranslationEntry kEAP_TTLS_InnerTable[]; 34 35// A separate translation table for cellular properties that are stored in a 36// Shill Device instead of a Service. The |shill_property_name| entries 37// reference Device properties, not Service properties. 38extern const FieldTranslationEntry kCellularDeviceTable[]; 39 40const FieldTranslationEntry* GetFieldTranslationTable( 41 const OncValueSignature& onc_signature); 42 43std::vector<std::string> GetPathToNestedShillDictionary( 44 const OncValueSignature& onc_signature); 45 46bool GetShillPropertyName(const std::string& onc_field_name, 47 const FieldTranslationEntry table[], 48 std::string* shill_property_name); 49 50// Translate individual strings to Shill using the above tables. 51bool TranslateStringToShill(const StringTranslationEntry table[], 52 const std::string& onc_value, 53 std::string* shill_value); 54 55// Translate individual strings to ONC using the above tables. 56bool TranslateStringToONC(const StringTranslationEntry table[], 57 const std::string& shill_value, 58 std::string* onc_value); 59 60} // namespace onc 61} // namespace chromeos 62 63#endif // CHROMEOS_NETWORK_ONC_ONC_TRANSLATION_TABLES_H_ 64