/** \file
\brief Config inline non-template implementation */
-//#include "Config.ih"
+#include "Config.ih"
// Custom includes
#include "../Utils/membind.hh"
///////////////////////////////cci.p///////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
-// senf::console::ConfigFile
+// senf::console::detail::RestrictedExecutor
-prefix_ senf::console::ConfigFile::ConfigFile(std::string const & filename,
- DirectoryNode & root)
- : filename_ (filename)
+prefix_ bool senf::console::detail::RestrictedExecutor::complete()
+ const
{
- executor_.chroot(root);
+ return parsedNodes_.size() == 1
+ && ! parsedNodes_[0].expired()
+ && *parsedNodes_[0].lock() == executor_.chroot();
}
-prefix_ void senf::console::ConfigFile::parse()
+prefix_ void senf::console::detail::RestrictedExecutor::reset()
{
- parse(executor_.chroot());
+ parsedNodes_.clear();
}
-prefix_ bool senf::console::ConfigFile::complete()
+prefix_ senf::console::DirectoryNode & senf::console::detail::RestrictedExecutor::root()
const
{
- return parsedNodes_.size() == 1
- && ! parsedNodes_[0].expired()
- && *parsedNodes_[0].lock() == executor_.chroot();
+ return executor_.chroot();
+}
+
+///////////////////////////////////////////////////////////////////////////
+// senf::console::ConfigBundle
+
+prefix_ senf::console::ConfigBundle::ConfigBundle()
+{}
+
+prefix_ senf::console::ConfigBundle::ConfigBundle(DirectoryNode & root)
+ : executor_ (root)
+{}
+
+prefix_ bool senf::console::ConfigBundle::complete()
+ const
+{
+ return executor_.complete();
}
-prefix_ void senf::console::ConfigFile::reset()
+prefix_ bool senf::console::ConfigBundle::parsed(GenericNode & node)
+ const
{
- parsedNodes_.clear();
+ return executor_.parsed(node);
+}
+
+prefix_ void senf::console::ConfigBundle::reset()
+{
+ executor_.reset();
+}
+
+///////////////////////////////////////////////////////////////////////////
+// senf::console::detail::ConfigSource
+
+prefix_ void senf::console::detail::ConfigSource::parse(RestrictedExecutor & executor)
+{
+ v_parse(executor);
+}
+
+///////////////////////////////////////////////////////////////////////////
+// senf::console::detail::BundleMixin
+
+prefix_ senf::console::detail::BundleMixin::BundleMixin()
+{}
+
+prefix_ senf::console::detail::BundleMixin::BundleMixin(DirectoryNode & root)
+ : bundle_ (root)
+{}
+
+prefix_ void senf::console::detail::BundleMixin::parse()
+{
+ bundle_.parse();
+}
+
+prefix_ void senf::console::detail::BundleMixin::parse(DirectoryNode & restrict)
+{
+ bundle_.parse(restrict);
+}
+
+prefix_ bool senf::console::detail::BundleMixin::complete()
+ const
+{
+ return bundle_.complete();
+}
+
+prefix_ bool senf::console::detail::BundleMixin::parsed(GenericNode & node)
+ const
+{
+ return bundle_.parsed(node);
+}
+
+prefix_ void senf::console::detail::BundleMixin::reset()
+{
+ bundle_.reset();
}
///////////////////////////////cci.e///////////////////////////////////////