Add recursive ls

Change-Id: Ifab8c9577c01cf7a96cda8d79fe232b12b5538bd
diff --git a/src/schema.hpp b/src/schema.hpp
index 96176ab..e5827de 100644
--- a/src/schema.hpp
+++ b/src/schema.hpp
@@ -45,6 +45,10 @@
 };
 }
 
+enum class Recursion {
+    NonRecursive,
+    Recursive
+};
 
 using NodeType = boost::variant<yang::container, yang::list, yang::leaf, yang::module>;
 
@@ -75,7 +79,7 @@
     virtual bool nodeExists(const std::string& location, const std::string& node) const = 0;
     virtual const std::set<std::string> listKeys(const path_& location, const ModuleNodePair& node) const = 0;
     virtual yang::LeafDataTypes leafType(const path_& location, const ModuleNodePair& node) const = 0;
-    virtual std::set<std::string> childNodes(const path_& path) const = 0;
+    virtual std::set<std::string> childNodes(const path_& path, const Recursion recursion) const = 0;
 
 private:
     const std::unordered_map<std::string, NodeType>& children(const std::string& name) const;