Index: chromeos/network/onc/onc_utils.h |
diff --git a/chromeos/network/onc/onc_utils.h b/chromeos/network/onc/onc_utils.h |
index 13263a826ae442efaa4470b3f31f212b904b4820..61ab3a4f30f76a3373021d0e3a78f432ab9402b7 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_ |