[icinga-checkins] icinga.org: icinga2/master: Use ConfigWriter class in repositoryutility.cpp

git at icinga.org git at icinga.org
Tue Feb 9 15:59:22 CET 2016


Module: icinga2
Branch: master
Commit: 58a31e8166f604c61b1580d90753754c9e7f6ce0
URL:    https://git.icinga.org/?p=icinga2.git;a=commit;h=58a31e8166f604c61b1580d90753754c9e7f6ce0

Author: Jean Flach <jean-marcel.flach at netways.de>
Date:   Tue Feb  9 15:55:39 2016 +0100

Use ConfigWriter class in repositoryutility.cpp

refs #10989

---

 lib/base/configwriter.hpp     |    2 +-
 lib/cli/repositoryutility.cpp |   55 +++++++++--------------------------------
 2 files changed, 12 insertions(+), 45 deletions(-)

diff --git a/lib/base/configwriter.hpp b/lib/base/configwriter.hpp
index bc7862a..f7d5356 100644
--- a/lib/base/configwriter.hpp
+++ b/lib/base/configwriter.hpp
@@ -73,8 +73,8 @@ public:
 	static void EmitFunctionCall(std::ostream& fp, const String& name, const Array::Ptr& arguments);
 
 	static const std::vector<String>& GetKeywords(void);
-	static String EscapeIcingaString(const String& str);
 private:
+	static String EscapeIcingaString(const String& str);
 	ConfigWriter(void);
 };
 
diff --git a/lib/cli/repositoryutility.cpp b/lib/cli/repositoryutility.cpp
index 3c9e49e..e8c49a0 100644
--- a/lib/cli/repositoryutility.cpp
+++ b/lib/cli/repositoryutility.cpp
@@ -670,7 +670,7 @@ void RepositoryUtility::FormatChangelogEntry(std::ostream& fp, const Dictionary:
 			continue;
 
 		fp << std::setw(4) << " " << ConsoleColorTag(Console_ForegroundGreen) << kv.first << ConsoleColorTag(Console_Normal) << " = ";
-		FormatValue(fp, kv.second);
+		ConfigWriter::EmitValue(fp, 0, kv.second);
 		fp << "\n";
 	}
 }
@@ -681,7 +681,9 @@ void RepositoryUtility::FormatChangelogEntry(std::ostream& fp, const Dictionary:
  */
 void RepositoryUtility::SerializeObject(std::ostream& fp, const String& name, const String& type, const Dictionary::Ptr& object)
 {
-	fp << "object " << type << " \"" << ConfigWriter::EscapeIcingaString(name) << "\" {\n";
+	fp << "object " << type << " ";
+	ConfigWriter::EmitString(fp, name);
+ 	fp << " {\n";
 
 	if (!object) {
 		fp << "}\n";
@@ -693,7 +695,9 @@ void RepositoryUtility::SerializeObject(std::ostream& fp, const String& name, co
 
 		ObjectLock olock(imports);
 		BOOST_FOREACH(const String& import, imports) {
-			fp << "\t" << "import \"" << import << "\"\n";
+			fp << "\t" << "import ";
+			ConfigWriter::EmitString(fp, import);
+			fp << '\n';
 		}
 	}
 
@@ -702,49 +706,12 @@ void RepositoryUtility::SerializeObject(std::ostream& fp, const String& name, co
 		if (kv.first == "import" || kv.first == "name" || kv.first == "__name") {
 			continue;
 		} else {
-			fp << "\t" << kv.first << " = ";
-			FormatValue(fp, kv.second);
+			fp << "\t";
+			ConfigWriter::EmitIdentifier(fp, kv.first, true);
+			fp << " = ";
+			ConfigWriter::EmitValue(fp, 1, kv.second);
 		}
 		fp << "\n";
 	}
 	fp << "}\n";
 }
-
-void RepositoryUtility::FormatValue(std::ostream& fp, const Value& val)
-{
-	if (val.IsObjectType<Array>()) {
-		FormatArray(fp, val);
-		return;
-	}
-
-	if (val.IsString()) {
-		fp << "\"" << ConfigWriter::EscapeIcingaString(val) << "\"";
-		return;
-	}
-
-	fp << ConfigWriter::EscapeIcingaString(val);
-}
-
-void RepositoryUtility::FormatArray(std::ostream& fp, const Array::Ptr& arr)
-{
-	bool first = true;
-
-	fp << "[ ";
-
-	if (arr) {
-		ObjectLock olock(arr);
-		BOOST_FOREACH(const Value& value, arr) {
-			if (first)
-				first = false;
-			else
-				fp << ", ";
-
-			FormatValue(fp, value);
-		}
-	}
-
-	if (!first)
-		fp << " ";
-
-	fp << "]";
-}



More information about the icinga-checkins mailing list