#ifndef TNet_UserInterface_h #define TNet_UserInterface_h #include #include #include #include namespace TNet { /** ************************************************************************** ** ************************************************************************** */ class UserInterface { public: struct ValueRecord { std::string mValue; char mOption; bool mRead; }; void InsertConfigParam( const char *param_name, const char *value, int optionChar); void ReadConfig(const char *pFileName); void CheckCommandLineParamUse(); /** * @brief Retreives the content of a parameter * @param pParamName Name of the parameter to look for * @return Returns the pointer to the ValueRecord structure if success, * otherwise return NULL * * We iteratively try to find the param name in the map. If an attempt * fails, we strip off all characters until the first occurance of ':' * and we search again */ ValueRecord* GetParam(const char* pParamName); /** * @brief Returns the parameter's value as string * * @param param_name Parameter name * @param default_value Value, which is returned in case the parameter * was not found * * @return Pointer to the begining of the string if success, default_value * otherwise */ const char* GetStr( const char *param_name, const char *default_value); /** * @brief Returns the parameter's value as int * * @param param_name Parameter name * @param default_value Value, which is returned in case the parameter * was not found * * @return Returns the integer value if success, default_value * otherwise */ long GetInt( const char *param_name, long default_value); /** * @brief Returns the parameter's value as float * * @param param_name Parameter name * @param default_value Value, which is returned in case the parameter * was not found * * @return Returns the float value if success, default_value * otherwise */ float GetFlt( const char *param_name, float default_value); /** * @brief Returns the parameter's value as bool * * @param param_name Parameter name * @param default_value Value, which is returned in case the parameter * was not found * * @return Returns the bool value if success, default_value * otherwise * * Note that true is returned if the value is 'TRUE' or 'T', false is * returned if the value is 'FALSE' or 'F'. Otherwise exception is thrown */ bool GetBool(const char *param_name, bool default_value); /** * @brief Returns the parameter's value as enum integer * * @param param_name Parameter name * @param default_value Value, which is returned in case the parameter * was not found * * @return Returns the index value if success, default_value * otherwise * * Variable arguments specify the possible values of this parameter. If the * value does not match any of these, exception is thrown. */ int GetEnum( const char *param_name, int default_value, ...); int GetFeatureParams( int *derivOrder, int **derivWinLens, int *startFrmExt, int *endFrmExt, char **CMNPath, char **CMNFile, const char **CMNMask, char **CVNPath, char **CVNFile, const char **CVNMask, const char **CVGFile, const char *toolName, int pseudoModeule); int ParseOptions( int argc, char* argv[], const char* optionMapping, const char* toolName); /** * @brief Send the defined paramaters to a stream * * @param rStream stream to use */ void PrintConfig(std::ostream& rStream); public: typedef std::map MapType; MapType mMap; }; } #endif