00001 // Copyright CERN 2012 - Developed in collaboration with GSI 00002 00003 #ifndef FESA_PROCESS_CONFIGURATION_IMPL_H_ 00004 #define FESA_PROCESS_CONFIGURATION_IMPL_H_ 00005 00006 #include <fesa-core/Utilities/ProcessConfigurationDefs.h> 00007 00008 #include <cmw-util/CmdOptions.h> 00009 #include <cmw-util/Properties.h> 00010 00011 #include <map> 00012 #include <string> 00013 #include <vector> 00014 00015 namespace fesa 00016 { 00017 00018 class ProcessConfigurationImpl 00019 { 00020 public: 00021 ProcessConfigurationImpl(int argc, char* argv[]); 00022 virtual ~ProcessConfigurationImpl(); 00023 00024 bool isHelpNeeded() const; 00025 void printHelp() const; 00026 void load(const ConfigDirs& configDirs); 00027 const std::string& getLogConfigFile() const; 00028 const std::string& getCMWConfigFile() const; 00029 const std::string& getMsgConfigFile() const; 00030 const std::string& getLabMsgConfigFile() const; 00031 const std::string& getCMWServerName() const; 00032 void setCMWServerName(const std::string& name); 00033 bool isInTimingSimulationMode() const; 00034 LoggingMode::LoggingMode getLoggingMode() const; 00035 bool isDefined(const std::string& tag) const; 00036 std::string getStringValue(const std::string& tag) const; 00037 int getIntValue(const std::string& tag) const; 00038 bool getBoolValue(const std::string& tag) const; 00039 00040 private: 00041 CMW::Util::CmdOptions cmdOptions_; 00042 CMW::Util::Properties properties_; 00043 std::string fesaCfgFile_; 00044 std::string logCfgFile_; 00045 std::string msgCfgFile_; 00046 std::string msgLabCfgFile_; 00047 std::string cmwCfgFile_; 00048 std::string cmwServerName_; 00049 bool timingSimulationMode_; 00050 std::string timingSimulationCfgFile_; 00051 LoggingMode::LoggingMode loggingMode_; 00052 }; 00053 00054 } // fesa 00055 00056 #endif // FESA_PROCESS_CONFIGURATION_IMPL_H_