X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FUtils%2FConsole%2FParsedCommand.ih;h=391c7dba6fd621af758346bbd9260cfbe7bef033;hb=57daeae6f2e924ce3f16f9677c3474f531cba9e5;hp=3fbb1b5e8a33088b61166fb602a5c133ccc12fcf;hpb=21be434729b552e31b856b2f42fc978062d0dd55;p=senf.git diff --git a/senf/Utils/Console/ParsedCommand.ih b/senf/Utils/Console/ParsedCommand.ih index 3fbb1b5..391c7db 100644 --- a/senf/Utils/Console/ParsedCommand.ih +++ b/senf/Utils/Console/ParsedCommand.ih @@ -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,26 +31,26 @@ #include #include "Parse.hh" -///////////////////////////////ih.p//////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// namespace senf { namespace console { - template < class FunctionTraits, - class ReturnType=typename FunctionTraits::result_type, + template < class FunctionTraits, + class ReturnType=typename FunctionTraits::result_type, unsigned arity=FunctionTraits::arity > class ParsedCommandOverload; - template < class Overload, - unsigned index=0, + template < class Overload, + unsigned index=0, bool flag=(index < unsigned(Overload::traits::arity)) > class ParsedArgumentAttributor; namespace detail { /** \brief Internal: Argument information structure - - This class is used to hold argument information for automatically parsed commands. + + This class is used to hold argument information for automatically parsed commands. \see ParsedCommandOverloadBase */ @@ -58,32 +58,32 @@ namespace detail { : public intrusive_refcount { typedef boost::intrusive_ptr ptr; - + std::string type; std::string name; std::string defaultDoc; bool hasDefault; std::string doc; bool singleToken; - + explicit ArgumentInfoBase(std::string const & type, bool singleToken=false); virtual ~ArgumentInfoBase(); virtual std::string defaultValueStr() const = 0; }; - + /** \brief Internal: Argument information structure - - This class is used to hold argument information for automatically parsed commands. + + This class is used to hold argument information for automatically parsed commands. \see ParsedCommandOverloadBase */ template - struct ArgumentInfo + struct ArgumentInfo : public ArgumentInfoBase { typedef boost::intrusive_ptr ptr; - typedef boost::function Parser; static ptr create(); @@ -94,7 +94,7 @@ namespace detail { virtual std::string defaultValueStr() const; }; - + #ifndef DOXYGEN // FirstArgType returns void, if the function has no arguments, otherwise it returns arg1_type @@ -130,8 +130,8 @@ namespace detail { static const bool has_ostream_arg = boost::is_same::value; typedef typename boost::mpl::if_c< - has_ostream_arg, - typename function_traits_remove_arg::type, + has_ostream_arg, + typename function_traits_remove_arg::type, base_traits> ::type traits; @@ -140,7 +140,7 @@ namespace detail { static const bool is_callable = true; static const bool is_member = boost::is_member_pointer::value; static const bool is_simple = false; - + typedef typename senf::member_class::type class_type; typedef ParsedCommandOverload Overload; @@ -156,7 +156,7 @@ namespace detail { template struct ParsedCommandTraits - : public ParsedCommandTraits_i< FunctionP, + : public ParsedCommandTraits_i< FunctionP, typename senf::remove_any_pointer::type > {}; @@ -175,9 +175,9 @@ namespace detail { // // If however, it does NOT take an std::ostream first argument, 'ignoreOneArg' will be true and // the create member will use boost::bind to DROP the first argument. - - template struct CreateParsedCommandOverload {}; @@ -186,9 +186,9 @@ namespace detail { struct CreateParsedCommandOverload { typedef typename Traits::traits traits; - + template - static typename senf::console::ParsedCommandOverload::ptr create(Function fn) + static typename senf::console::ParsedCommandOverload::ptr create(Function fn) { return senf::console::ParsedCommandOverload::create(fn); }; }; @@ -201,7 +201,7 @@ namespace detail { }}} -///////////////////////////////ih.e//////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// #endif