Scheduler/Console: Add optional file support to FileConfig
[senf.git] / Scheduler / Console / Variables.hh
index 1afc654..2ce1dd2 100644 (file)
@@ -23,8 +23,8 @@
 /** \file
     \brief Variables public header */
 
-#ifndef HH_Variables_
-#define HH_Variables_ 1
+#ifndef HH_SENF_Scheduler_Console_Variables_
+#define HH_SENF_Scheduler_Console_Variables_ 1
 
 // Custom includes
 #include <boost/utility.hpp>
@@ -47,13 +47,25 @@ namespace console {
     template <class Variable>
     VariableAttributor<Variable> senf_console_add_node(
         DirectoryNode & node, std::string const & name, Variable & var, int,
-        typename boost::disable_if< boost::is_convertible<Variable*, ScopedDirectoryBase*> >::type * = 0);
+        typename boost::disable_if< boost::is_convertible<Variable*, ScopedDirectoryBase*> >::type * = 0,
+        typename boost::disable_if_c<detail::ParsedCommandTraits<Variable>::is_callable>::type * = 0);
 
     template <class Variable>
     typename detail::VariableNodeCreator<Variable>::result_type
     senf_console_add_node(DirectoryNode & node, std::string const & name, 
                           boost::reference_wrapper<Variable> var, int);
 
+    template <class Variable, class Owner>
+    VariableAttributor<Variable> senf_console_add_node(
+        DirectoryNode & node, Owner & owner, std::string const & name, Variable & var, int,
+        typename boost::disable_if< boost::is_convertible<Variable*, ScopedDirectoryBase*> >::type * = 0,
+        typename boost::disable_if_c<detail::ParsedCommandTraits<Variable>::is_callable>::type * = 0);
+
+    template <class Variable, class Owner>
+    typename detail::VariableNodeCreator<Variable>::result_type
+    senf_console_add_node(DirectoryNode & node, Owner & owner, std::string const & name, 
+                          boost::reference_wrapper<Variable> var, int);
+
 #endif
 
     /** \brief Variable command attributes (const)