00001 // -*- C++ -*- 00020 #ifndef RTC_MANAGERCONFIG_H 00021 #define RTC_MANAGERCONFIG_H 00022 00023 #include <coil/Properties.h> 00024 00025 00026 namespace RTC 00027 { 00084 class ManagerConfig 00085 { 00086 public: 00087 // The list of default configuration file path. 00095 static const char* config_file_path[]; 00096 00097 // Environment value to specify configuration file 00107 static const char* config_file_env; 00108 00124 ManagerConfig(); 00125 00147 ManagerConfig(int argc, char** argv); 00148 00160 virtual ~ManagerConfig(void); 00161 00195 void init(int argc, char** argv); 00196 00214 void configure(coil::Properties& prop); 00215 00245 coil::Properties getConfig() const; 00246 00247 protected: 00275 void parseArgs(int argc, char** argv); 00276 00312 bool findConfigFile(); 00313 00344 void setSystemInformation(coil::Properties& prop); 00345 00367 bool fileExist(const std::string& filename); 00368 00376 coil::Properties m_argprop; 00377 00385 std::string m_configFile; 00386 00400 bool m_isMaster; 00401 }; 00402 }; // namespace RTC 00403 #endif // RTC_MANAGERCONFIG_H