00001 /****************************************************************************** 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 00009 00010 #ifndef lgrMultiArg_H_ 00011 #define lgrMultiArg_H_ 00012 00013 #include "lgrArg.h" 00014 #include "runtimeValue.h" 00015 00016 #include <cmdLine/cmdMultiArg.h> 00017 #include <string> 00018 #include <vlutil/vlString.h> 00019 00020 namespace MAKLogger 00021 { 00022 00024 template <typename ValueType> 00025 class DtLgrMultiArg : public DtCmdLine::MultiArg<ValueType> , public DtLgrArg 00026 { 00027 public: 00028 00029 DtLgrMultiArg(const std::string& flag, const std::string& name, 00030 const std::string& desc, bool req, const std::string& typeDesc); 00031 virtual ~DtLgrMultiArg(); 00032 00033 private: 00035 DtLgrMultiArg(const DtLgrMultiArg&); 00037 DtLgrMultiArg& operator=(const DtLgrMultiArg&); 00038 public: 00039 00041 virtual operator DtCmdLine::Arg*(); 00042 00044 virtual DtString toDebugString() const; 00045 00047 virtual bool isArgSet() const; 00048 00050 virtual const DtString& type() const; 00051 00053 virtual DtString valueAsString() const; 00054 00056 virtual std::vector<DtString> valueAsStringList() const; 00057 00059 virtual void setValueString(const DtString& value); 00060 }; 00061 00062 #define lgrMultiArg_INC_ 00063 #include "lgrMultiArg.inl" 00064 #undef lgrMultiArg_INC_ 00065 00066 } 00067 00068 #endif