NFD: Extending ConfigFile to support passing of a parsed ConfigSection instead of raw config file
diff --git a/NFD/core/config-file.cpp b/NFD/core/config-file.cpp
index 5887c2b..1079666 100644
--- a/NFD/core/config-file.cpp
+++ b/NFD/core/config-file.cpp
@@ -109,6 +109,13 @@
 }
 
 void
+ConfigFile::parse(const ConfigSection& config, bool isDryRun, const std::string& filename)
+{
+  m_global = config;
+  process(isDryRun, filename);
+}
+
+void
 ConfigFile::process(bool isDryRun, const std::string& filename)
 {
   BOOST_ASSERT(!filename.empty());
diff --git a/NFD/core/config-file.hpp b/NFD/core/config-file.hpp
index b7dd886..6e974dd 100644
--- a/NFD/core/config-file.hpp
+++ b/NFD/core/config-file.hpp
@@ -107,6 +107,15 @@
   void
   parse(std::istream& input, bool isDryRun, const std::string& filename);
 
+  /**
+   * \param config ConfigSection that needs to be processed
+   * \param isDryRun true if performing a dry run of configuration, false otherwise
+   * \param filename optional convenience argument to provide more detailed error messages
+   * \throws ConfigFile::Error if parse error
+   */
+  void
+  parse(const ConfigSection& config, bool isDryRun, const std::string& filename);
+
 private:
 
   void