X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FUtils%2FConsole%2FSTLSupport.hh;h=8f95a12146195c30b09598b0837fb2f6f2e8190f;hb=4101c2b818ec67e7469ebb44f030eed2185c4ab0;hp=d4594888fa6cee6e328b63b033bc3c40b8a726d9;hpb=601d1f509f5bb24df167a4dd5a20da67a0af9af8;p=senf.git diff --git a/senf/Utils/Console/STLSupport.hh b/senf/Utils/Console/STLSupport.hh index d459488..8f95a12 100644 --- a/senf/Utils/Console/STLSupport.hh +++ b/senf/Utils/Console/STLSupport.hh @@ -1,6 +1,6 @@ // $Id$ // -// Copyright (C) 2009 +// Copyright (C) 2009 // Fraunhofer Institute for Open Communication Systems (FOKUS) // Competence Center NETwork research (NET), St. Augustin, GERMANY // Stefan Bund @@ -32,50 +32,76 @@ #include "Traits.hh" //#include "STLSupport.mpp" -///////////////////////////////hh.p//////////////////////////////////////// +#include "STLSupport.ih" +//-///////////////////////////////////////////////////////////////////////////////////////////////// namespace senf { namespace console { #ifndef DOXYGEN - template - struct SequenceArgumentTraits - { - typedef Sequence type; - static bool const singleToken = false; - - static void parse(ParseCommandInfo::TokensRange const & tokens, type & out); - static std::string description(); - static std::string str(type const & value); - }; - - template - struct SequenceReturnValueTraits - { - typedef Sequence type; - - static void format(type const & value, std::ostream & os); - }; - template struct ArgumentTraits< std::vector > - : public SequenceArgumentTraits< std::vector > + : public detail::CollectionArgumentTraits< std::vector, + detail::PushBackFunctor > {}; template struct ReturnValueTraits< std::vector > - : public SequenceReturnValueTraits< std::vector > + : public detail::CollectionReturnValueTraits< std::vector > {}; template struct ArgumentTraits< std::list > - : public SequenceArgumentTraits< std::list > + : public detail::CollectionArgumentTraits< std::list, + detail::PushBackFunctor > {}; template struct ReturnValueTraits< std::list > - : public SequenceReturnValueTraits< std::list > + : public detail::CollectionReturnValueTraits< std::list > + {}; + + template + struct ArgumentTraits< std::set > + : public detail::CollectionArgumentTraits< std::set, + detail::InsertFunctor > + {}; + + template + struct ReturnValueTraits< std::set > + : public detail::CollectionReturnValueTraits< std::set > + {}; + + template + struct ArgumentTraits< std::multiset > + : public detail::CollectionArgumentTraits< std::multiset, + detail::InsertFunctor > + {}; + + template + struct ReturnValueTraits< std::multiset > + : public detail::CollectionReturnValueTraits< std::multiset > + {}; + + template + struct ArgumentTraits< std::map > + : public detail::MapArgumentTraits< std::map > + {}; + + template + struct ReturnValueTraits< std::map > + : public detail::MapReturnValueTraits< std::map > + {}; + + template + struct ArgumentTraits< std::multimap > + : public detail::MapArgumentTraits< std::multimap > + {}; + + template + struct ReturnValueTraits< std::multimap > + : public detail::MapReturnValueTraits< std::multimap > {}; template @@ -101,10 +127,10 @@ namespace console { }} -///////////////////////////////hh.e//////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// //#include "STLSupport.cci" #include "STLSupport.ct" -//#include "STLSupport.cti" +#include "STLSupport.cti" #endif