@ -195,13 +195,20 @@ inline bool IsSwitchChar(char c)
class ArgsManager
class ArgsManager
{
{
protected :
protected :
CCriticalSection cs_args ;
mutable CCriticalSection cs_args ;
std : : map < std : : string , std : : string > mapArgs ;
std : : map < std : : string , std : : string > mapArgs ;
std : : map < std : : string , std : : vector < std : : string > > mapMultiArgs ;
std : : map < std : : string , std : : vector < std : : string > > mapMultiArgs ;
public :
public :
void ParseParameters ( int argc , const char * const argv [ ] ) ;
void ParseParameters ( int argc , const char * const argv [ ] ) ;
void ReadConfigFile ( const std : : string & confPath ) ;
void ReadConfigFile ( const std : : string & confPath ) ;
std : : vector < std : : string > GetArgs ( const std : : string & strArg ) ;
/**
* Return a vector of strings of the given argument
*
* @ param strArg Argument to get ( e . g . " -foo " )
* @ return command - line arguments
*/
std : : vector < std : : string > GetArgs ( const std : : string & strArg ) const ;
/**
/**
* Return true if the given argument has been manually set
* Return true if the given argument has been manually set
@ -209,7 +216,7 @@ public:
* @ param strArg Argument to get ( e . g . " -foo " )
* @ param strArg Argument to get ( e . g . " -foo " )
* @ return true if the argument has been set
* @ return true if the argument has been set
*/
*/
bool IsArgSet ( const std : : string & strArg ) ;
bool IsArgSet ( const std : : string & strArg ) const ;
/**
/**
* Return string argument or default value
* Return string argument or default value
@ -218,7 +225,7 @@ public:
* @ param strDefault ( e . g . " 1 " )
* @ param strDefault ( e . g . " 1 " )
* @ return command - line argument or default value
* @ return command - line argument or default value
*/
*/
std : : string GetArg ( const std : : string & strArg , const std : : string & strDefault ) ;
std : : string GetArg ( const std : : string & strArg , const std : : string & strDefault ) const ;
/**
/**
* Return integer argument or default value
* Return integer argument or default value
@ -227,7 +234,7 @@ public:
* @ param nDefault ( e . g . 1 )
* @ param nDefault ( e . g . 1 )
* @ return command - line argument ( 0 if invalid number ) or default value
* @ return command - line argument ( 0 if invalid number ) or default value
*/
*/
int64_t GetArg ( const std : : string & strArg , int64_t nDefault ) ;
int64_t GetArg ( const std : : string & strArg , int64_t nDefault ) const ;
/**
/**
* Return boolean argument or default value
* Return boolean argument or default value
@ -236,7 +243,7 @@ public:
* @ param fDefault ( true or false )
* @ param fDefault ( true or false )
* @ return command - line argument or default value
* @ return command - line argument or default value
*/
*/
bool GetBoolArg ( const std : : string & strArg , bool fDefault ) ;
bool GetBoolArg ( const std : : string & strArg , bool fDefault ) const ;
/**
/**
* Set an argument if it doesn ' t already have a value
* Set an argument if it doesn ' t already have a value