00001 /****************************************************************************** 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 00010 00011 00012 #ifndef lgrValueArg_H_ 00013 #define lgrValueArg_H_ 00014 00015 #include "lgrArg.h" 00016 #include "runtimeValue.h" 00017 #include <cmdLine/cmdValueArg.h> 00018 #include <string> 00019 #include <vlutil/vlString.h> 00020 00021 namespace MAKLogger 00022 { 00023 00026 template <typename ValueType> 00027 class DtLgrValueArg : public DtCmdLine::ValueArg<ValueType> , public DtLgrArg 00028 { 00029 public: 00030 00031 DtLgrValueArg(const std::string& flag, const std::string& name, 00032 const std::string& desc, bool req, ValueType value, const std::string& typeDesc); 00033 virtual ~DtLgrValueArg(); 00034 00035 private: 00037 DtLgrValueArg(const DtLgrValueArg&); 00039 DtLgrValueArg& operator=(const DtLgrValueArg&); 00040 public: 00041 00043 virtual operator DtCmdLine::Arg*(); 00044 00046 virtual DtString toDebugString() const; 00047 00049 virtual bool isArgSet() const; 00050 00052 virtual const DtString& type() const; 00053 00055 virtual DtString valueAsString() const; 00056 00058 virtual std::vector<DtString> valueAsStringList() const; 00059 00061 virtual void setValueString(const DtString& value); 00062 }; 00063 00064 #define lgrValueArg_INC_ 00065 #include "lgrValueArg.inl" 00066 #undef lgrValueArg_INC_ 00067 00068 } 00069 00070 #endif