X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FUtils%2FConsole%2FParsedCommand.cti;h=a7d7acf80de45a57577690f96a225311d0d0fe16;hb=4101c2b818ec67e7469ebb44f030eed2185c4ab0;hp=43a2cffbe880f0fae46585b559092877f621bc6f;hpb=f13780e9e4da7df981d6f6542fbdc714beb34765;p=senf.git diff --git a/senf/Utils/Console/ParsedCommand.cti b/senf/Utils/Console/ParsedCommand.cti index 43a2cff..a7d7acf 100644 --- a/senf/Utils/Console/ParsedCommand.cti +++ b/senf/Utils/Console/ParsedCommand.cti @@ -1,6 +1,6 @@ // $Id$ // -// Copyright (C) 2008 +// Copyright (C) 2008 // Fraunhofer Institute for Open Communication Systems (FOKUS) // Competence Center NETwork research (NET), St. Augustin, GERMANY // Stefan Bund @@ -31,9 +31,9 @@ #include #define prefix_ inline -///////////////////////////////cti.p/////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// // senf::console::detail::ArgumentInfo template @@ -45,7 +45,7 @@ senf::console::detail::ArgumentInfo::create() template prefix_ senf::console::detail::ArgumentInfo::ArgumentInfo() - : ArgumentInfoBase ( ArgumentTraits::description(), + : ArgumentInfoBase ( ArgumentTraits::description(), ArgumentTraits::singleToken ), defaultValue () {} @@ -57,7 +57,7 @@ prefix_ std::string senf::console::detail::ArgumentInfo::defaultV return hasDefault ? ArgumentTraits::str(defaultValue) : ""; } -/////////////////////////////////////////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// // senf::console::ParsedCommandOverloadBase template @@ -66,7 +66,7 @@ prefix_ void senf::console::ParsedCommandOverloadBase::addParameter() parameters_.push_back(detail::ArgumentInfo::create()); } -/////////////////////////////////////////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// // senf::console::ParsedCommandOverload #define BOOST_PP_ITERATION_PARAMS_1 (4, (0, SENF_CONSOLE_MAX_COMMAND_ARITY, \ @@ -74,7 +74,7 @@ prefix_ void senf::console::ParsedCommandOverloadBase::addParameter() 2)) #include BOOST_PP_ITERATE() -/////////////////////////////////////////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// // senf::console::ParsedCommandAttributor template @@ -96,7 +96,7 @@ ParsedCommandAttributor(ParsedCommandAttributorBase const & other, unsigned inde : ParsedCommandAttributorBase (other, index) {} -/////////////////////////////////////////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// // senf::console::ParsedArgumentAttributorBase template @@ -183,7 +183,7 @@ ParsedArgumentAttributorBase(ParsedCommandAttributorBase const & other, unsigned : ParsedCommandAttributor (other, index) {} -/////////////////////////////////////////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// // senf::console::ParsedArgumentAttributor template @@ -311,14 +311,14 @@ prefix_ void senf::console::ParsedArgumentAttributor::parse this->overload().arg().parser = fn; } -/////////////////////////////////////////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// // senf::console::ParsedArgumentAttributor template prefix_ senf::console::ParsedArgumentAttributor:: ParsedArgumentAttributor(typename Overload::ptr overload) - : ParsedArgumentAttributorBase< + : ParsedArgumentAttributorBase< Overload, ParsedArgumentAttributor > (overload, index) {} @@ -329,7 +329,7 @@ ParsedArgumentAttributor(ParsedCommandAttributorBase const & other) : ParsedArgumentAttributorBase (other, index) {} -/////////////////////////////////////////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// // namespace members namespace senf { @@ -361,9 +361,50 @@ namespace detail { }}} +//-///////////////////////////////////////////////////////////////////////////////////////////////// + +template +prefix_ senf::console::SimpleOverloadAttributor +senf::console::factory:: +Command(boost::function fn, + typename boost::enable_if_c::is_simple>::type *) +{ + return SimpleOverloadAttributor(fn); +} + +template +prefix_ senf::console::SimpleOverloadAttributor +senf::console::factory:: +Command(Function fn, + typename boost::enable_if_c::is_simple>::type *) +{ + return SimpleOverloadAttributor(fn); +} + +template +prefix_ senf::console::SimpleOverloadAttributor +senf::console::factory:: +Command(Member memfn, Owner * owner, + typename boost::enable_if >::type *, + typename boost::enable_if_c::is_simple>::type *) +{ + return SimpleOverloadAttributor(senf::membind(memfn,owner)); +} + +template +prefix_ senf::console::SimpleOverloadAttributor +senf::console::factory:: +Command(Member memfn, Owner const * owner, + typename boost::enable_if >::type *, + typename boost::enable_if_c::is_simple>::type *) +{ + return SimpleOverloadAttributor(senf::membind(memfn,owner)); +} + template prefix_ typename senf::console::detail::ParsedCommandTraits::Attributor -senf::console::factory::Command(boost::function fn) +senf::console::factory:: +Command(boost::function fn) { return detail::addOverloadedCommandNode(fn); } @@ -372,14 +413,16 @@ template prefix_ typename senf::console::detail::ParsedCommandTraits::Attributor senf::console::factory:: Command(Function fn, - typename boost::enable_if_c::is_callable>::type *) + typename boost::enable_if_c::is_callable>::type *, + typename boost::disable_if >::type *) { return detail::addOverloadedCommandNode(fn); } template prefix_ typename senf::console::detail::ParsedCommandTraits::Attributor -senf::console::factory::Command(boost::function fn) +senf::console::factory:: +Command(boost::function fn) { return detail::addOverloadedCommandNode(fn); } @@ -388,40 +431,49 @@ template prefix_ typename senf::console::detail::ParsedCommandTraits::Attributor senf::console::factory:: Command(Function fn, - typename boost::enable_if_c::is_callable>::type *) + typename boost::enable_if_c::is_callable>::type *, + typename boost::disable_if >::type *) { return detail::addOverloadedCommandNode(fn); } template prefix_ typename senf::console::detail::ParsedCommandTraits::Attributor -senf::console::factory::BoundCommand(Owner * owner, Member memfn) +senf::console::factory:: +Command(Member memfn, Owner * owner, + typename boost::enable_if >::type *) { return detail::addOverloadedCommandNode(senf::membind(memfn,owner)); } template prefix_ typename senf::console::detail::ParsedCommandTraits::Attributor -senf::console::factory::BoundCommand(Owner const * owner, Member memfn) +senf::console::factory:: +Command(Member memfn, Owner const * owner, + typename boost::enable_if >::type *) { return detail::addOverloadedCommandNode(senf::membind(memfn,owner)); } template prefix_ typename senf::console::detail::ParsedCommandTraits::Attributor -senf::console::factory::BoundCommand(Owner * owner, Member memfn) +senf::console::factory:: +Command(Member memfn, Owner * owner, + typename boost::enable_if >::type *) { return detail::addOverloadedCommandNode(senf::membind(memfn,owner)); } template prefix_ typename senf::console::detail::ParsedCommandTraits::Attributor -senf::console::factory::BoundCommand(Owner const * owner, Member memfn) +senf::console::factory:: +Command(Member memfn, Owner const * owner, + typename boost::enable_if >::type *) { return detail::addOverloadedCommandNode(senf::membind(memfn,owner)); } -///////////////////////////////cti.e/////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// #undef prefix_