// senf::console::detail::SetVariable<Variable>
template <class Variable>
-prefix_ senf::console::detail::SetVariable<Variable>::SetVariable(Variable & var)
- : var_ (var)
+prefix_ senf::console::detail::SetVariable<Variable>::SetVariable(Variable & var,
+ OnChangeHandler handler)
+ : var_ (var), handler_ (handler)
{}
template <class Variable>
var_ = value;
}
-template <class Variable>
-prefix_ void senf::console::detail::SetVariable<Variable>::onChange(OnChangeHandler handler)
-{
- handler_ = handler;
-}
-
///////////////////////////////////////////////////////////////////////////
// senf::console::ConstVariableAttributor<Variable>
template <class Variable>
prefix_ typename senf::console::VariableAttributor<Variable>
+senf::console::VariableAttributor<Variable>::onChange(OnChangeHandler handler)
+{
+ setOverload_.function(
+ boost::bind(detail::SetVariable<Variable>(var_, handler),_2));
+ return *this;
+}
+
+template <class Variable>
+prefix_ typename senf::console::VariableAttributor<Variable>
senf::console::VariableAttributor<Variable>::doc(std::string const & doc)
{
ConstVariableAttributor<Variable>::doc(doc);
template <class Variable>
prefix_
senf::console::VariableAttributor<Variable>::VariableAttributor(QueryOverload & queryOverload,
- SetOverload & setOverload)
- : ConstVariableAttributor<Variable> (queryOverload), setOverload_ (setOverload)
+ SetOverload & setOverload,
+ Variable & var)
+ : ConstVariableAttributor<Variable> (queryOverload), setOverload_ (setOverload), var_ (var)
{}
///////////////////////////////////////////////////////////////////////////
node.add(name, typename detail::QueryVariable<Variable>::Function(
detail::QueryVariable<Variable>(var))).overload() );
- return VariableAttributor<Variable>(queryOverload, setOverload);
+ return VariableAttributor<Variable>(queryOverload, setOverload, var);
}
template <class Variable>
return ConstVariableAttributor<Variable>(queryOverload);
}
+#ifndef DOXYGEN
+
template <class Variable>
prefix_ senf::console::VariableAttributor<Variable> senf::console::
senf_console_add_node(DirectoryNode & node, std::string const & name, Variable & var, int,
return detail::VariableNodeCreator<Variable>::add(node, name, var.get());
}
+#endif
+
///////////////////////////////cti.e///////////////////////////////////////
#undef prefix_