diff options
Diffstat (limited to 'chromeos/network/onc/onc_utils.h')
-rw-r--r-- | chromeos/network/onc/onc_utils.h | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/chromeos/network/onc/onc_utils.h b/chromeos/network/onc/onc_utils.h index 13263a8..61ab3a4 100644 --- a/chromeos/network/onc/onc_utils.h +++ b/chromeos/network/onc/onc_utils.h @@ -7,9 +7,11 @@ #include <string> +#include "base/basictypes.h" #include "base/memory/scoped_ptr.h" #include "chromeos/chromeos_export.h" #include "chromeos/network/onc/onc_constants.h" +#include "chromeos/network/onc/onc_signature.h" namespace base { class DictionaryValue; @@ -28,7 +30,7 @@ CHROMEOS_EXPORT extern const char kEmptyUnencryptedConfiguration[]; CHROMEOS_EXPORT scoped_ptr<base::DictionaryValue> ReadDictionaryFromJson( const std::string& json); -// Decrypt the given EncryptedConfiguration |onc| (see the ONC specification) +// Decrypts the given EncryptedConfiguration |onc| (see the ONC specification) // using |passphrase|. The resulting UnencryptedConfiguration is returned. If an // error occurs, returns NULL. CHROMEOS_EXPORT scoped_ptr<base::DictionaryValue> Decrypt( @@ -38,7 +40,31 @@ CHROMEOS_EXPORT scoped_ptr<base::DictionaryValue> Decrypt( // For logging only: strings not user facing. CHROMEOS_EXPORT std::string GetSourceAsString(ONCSource source); -} // chromeos -} // onc +// Used for string expansion with function ExpandStringInOncObject(...). +class CHROMEOS_EXPORT StringSubstitution { + public: + StringSubstitution() {} + virtual ~StringSubstitution() {} + + // Returns the replacement string for |placeholder| in + // |substitute|. Currently, onc::substitutes::kLoginIDField and + // onc::substitutes::kEmailField are supported. + virtual bool GetSubstitute(std::string placeholder, + std::string* substitute) const = 0; + private: + DISALLOW_COPY_AND_ASSIGN(StringSubstitution); +}; + +// Replaces all expandable fields that are mentioned in the ONC +// specification. The object of |onc_object| is modified in place. Currently +// onc::substitutes::kLoginIDField and onc::substitutes::kEmailField are +// expanded. The replacement strings are obtained from |substitution|. +CHROMEOS_EXPORT void ExpandStringsInOncObject( + const OncValueSignature& signature, + const StringSubstitution& substitution, + base::DictionaryValue* onc_object); + +} // namespace onc +} // namespace chromeos #endif // CHROMEOS_NETWORK_ONC_ONC_UTILS_H_ |