00001 /****************************************************************************** 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 00008 00009 #ifndef lgrAppCommandLine_H_ 00010 #define lgrAppCommandLine_H_ 00011 00012 #include "lgrApp.h" 00013 #include "virtualConstructor.h" 00014 #include <map> 00015 00016 namespace DtCmdLine 00017 { 00018 class CmdLine; 00019 class Arg; 00020 } 00021 00022 namespace MAKLogger 00023 { 00024 class DtLgrArg; 00025 class DtLoggerAppConfigLoader; 00026 class DtLgrCmdLine; 00027 00029 class DT_DLL_LGRAPP DtLgrAppCommandLine 00030 { 00031 public: 00032 DT_VIRTUAL_CTR(DtLgrAppCommandLine,(DtLoggerAppConfigLoader& loader)) 00033 virtual ~DtLgrAppCommandLine(); 00034 00035 private: 00037 DtLgrAppCommandLine(const DtLgrAppCommandLine&); 00039 DtLgrAppCommandLine& operator=(const DtLgrAppCommandLine&); 00040 public: 00041 00044 virtual void processCommandLine(int argc,char** argv); 00045 00046 protected: 00047 00049 virtual void initializeArguments(DtLgrCmdLine& cmdLine); 00050 00055 virtual void addArgument(DtLgrCmdLine& cmdLine,DtLgrArg* arg, bool isUnlabeled=false); 00056 00057 DtLoggerAppConfigLoader* myLoader; 00058 00059 typedef std::map<DtString,DtLgrArg*> ArgumentMap; 00060 ArgumentMap myArguments; 00061 00062 }; 00063 } 00064 00065 #endif