ARGoS
3
A parallel, multi-engine simulator for swarm robotics
|
00001 00007 #ifndef ARGOS_COMMAND_LINE_ARG_PARSER_H 00008 #define ARGOS_COMMAND_LINE_ARG_PARSER_H 00009 00010 namespace argos { 00011 class CARGoSCommandLineArgParser; 00012 } 00013 00014 #include <argos3/core/utility/configuration/command_line_arg_parser.h> 00015 #include <fstream> 00016 00017 namespace argos { 00018 00025 class CARGoSCommandLineArgParser : public CCommandLineArgParser { 00026 00027 public: 00028 00032 enum EAction { 00033 ACTION_UNKNOWN = 0, 00034 ACTION_SHOW_HELP, 00035 ACTION_SHOW_VERSION, 00036 ACTION_RUN_EXPERIMENT, 00037 ACTION_QUERY 00038 }; 00039 00040 public: 00041 00045 CARGoSCommandLineArgParser(); 00046 00050 virtual ~CARGoSCommandLineArgParser(); 00051 00059 virtual void PrintUsage(CARGoSLog& c_log); 00060 00064 virtual void PrintVersion(); 00065 00079 virtual void Parse(SInt32 n_argc, 00080 char** ppch_argv); 00081 00087 inline EAction GetAction() { 00088 return m_eAction; 00089 } 00090 00097 inline const std::string& GetExperimentConfigFile() { 00098 return m_strExperimentConfigFile; 00099 } 00100 00107 inline const std::string& GetQuery() { 00108 return m_strQuery; 00109 } 00110 00118 inline bool IsLogColored() { 00119 return ! m_bNonColoredLog; 00120 } 00121 00128 inline bool IsHelpWanted() { 00129 return m_bHelpWanted; 00130 } 00131 00132 private: 00133 00134 EAction m_eAction; 00135 std::string m_strExperimentConfigFile; 00136 std::string m_strQuery; 00137 std::string m_strLogFileName; 00138 std::ofstream m_cLogFile; 00139 std::streambuf* m_pcInitLogStream; 00140 std::string m_strLogErrFileName; 00141 std::ofstream m_cLogErrFile; 00142 std::streambuf* m_pcInitLogErrStream; 00143 bool m_bNonColoredLog; 00144 bool m_bHelpWanted; 00145 bool m_bVersionWanted; 00146 00147 }; 00148 00149 } 00150 00151 #endif