bpp-core3
3.0.0
|
This class provides some common tools for developping applications. More...
#include <Bpp/App/ApplicationTools.h>
Public Member Functions | |
ApplicationTools () | |
virtual | ~ApplicationTools () |
Static Public Member Functions | |
static bool | parameterExists (const std::string ¶meterName, const std::map< std::string, std::string > ¶ms) |
Tells if a parameter have been specified. More... | |
static bool | parameterExists (const std::string ¶meterName, std::vector< std::string > ¶ms) |
static std::vector< std::string > | matchingParameters (const std::string &pattern, const std::map< std::string, std::string > ¶ms) |
Returns a vector of parameter names that match a given pattern. More... | |
static std::vector< std::string > | matchingParameters (const std::string &pattern, std::vector< std::string > ¶ms) |
static double | getDoubleParameter (const std::string ¶meterName, const std::map< std::string, std::string > ¶ms, double defaultValue, const std::string &suffix="", bool suffixIsOptional=true, int warn=0) |
Get a double parameter. More... | |
static int | getIntParameter (const std::string ¶meterName, const std::map< std::string, std::string > ¶ms, int defaultValue, const std::string &suffix="", bool suffixIsOptional=true, int warn=0) |
Get an integer parameter. More... | |
static std::string | getStringParameter (const std::string ¶meterName, const std::map< std::string, std::string > ¶ms, const std::string &defaultValue, const std::string &suffix="", bool suffixIsOptional=true, int warn=0) |
Get a string parameter. More... | |
static bool | getBooleanParameter (const std::string ¶meterName, const std::map< std::string, std::string > ¶ms, bool defaultValue, const std::string &suffix="", bool suffixIsOptional=true, int warn=0) |
Get a boolean parameter. More... | |
template<class T > | |
static T | getParameter (const std::string ¶meterName, const std::map< std::string, std::string > ¶ms, T defaultValue, const std::string &suffix="", bool suffixIsOptional=true, int warn=0) |
Get a parameter. More... | |
static std::string | getAFilePath (const std::string ¶meter, const std::map< std::string, std::string > ¶ms, bool isRequired=true, bool mustExist=true, const std::string &suffix="", bool suffixIsOptional=false, const std::string &defaultPath="none", int warn=0) |
Get a file path. More... | |
template<class T > | |
static std::vector< T > | getVectorParameter (const std::string ¶meterName, const std::map< std::string, std::string > ¶ms, char separator, const std::string &defaultValue, const std::string &suffix="", bool suffixIsOptional=true, int warn=0) |
Get a vector. More... | |
template<class T > | |
static std::vector< std::vector< T > > | getVectorOfVectorsParameter (const std::string ¶meterName, const std::map< std::string, std::string > ¶ms, char separator, const std::string &defaultValue, const std::string &suffix="", bool suffixIsOptional=true, int warn=0) |
Get a vector of vectors. More... | |
template<class T > | |
static std::vector< T > | getVectorParameter (const std::string ¶meterName, const std::map< std::string, std::string > ¶ms, char separator, char rangeOperator, const std::string &defaultValue, const std::string &suffix="", bool suffixIsOptional=true, bool warn=true) |
Get a vector. More... | |
template<class T > | |
static RowMatrix< T > | getMatrixParameter (const std::string ¶meterName, const std::map< std::string, std::string > ¶ms, char separator, const std::string &defaultValue, const std::string &suffix="", bool suffixIsOptional=true, bool warn=true) |
Get a RowMatrix. The input is made of embedded parenthesis, such as ((1,2),(3,4)), where the matrix is filled by lines. Here, the matrix would be:
. More... | |
static void | startTimer () |
Starts the timer. More... | |
static void | displayTime (const std::string &msg) |
Display the current timer value to the 'message' stream. More... | |
static double | getTime () |
Get the current timer value. More... | |
Output methods. | |
static void | displayMessage (const std::string &text) |
Print a message. More... | |
static void | displayError (const std::string &text) |
Print an error message. More... | |
static void | displayWarning (const std::string &text) |
Print a warning message. More... | |
static void | displayTask (const std::string &text, bool eof=false) |
Print a task message. More... | |
static void | displayTaskDone () |
Print a task ended message. More... | |
template<class T > | |
static void | displayResult (const std::string &text, const T &result) |
Print a result message. More... | |
static void | displayBooleanResult (const std::string &text, bool result) |
Print a boolean result message ("yes" or "no"). More... | |
static void | displayGauge (size_t iter, size_t total, char symbol='>', const std::string &mes="") |
Display a gauge. More... | |
static void | displayUnlimitedGauge (size_t iter, const std::string &mes="") |
Display a gauge for unefined amount of iterations. More... | |
Static Public Attributes | |
static std::shared_ptr< OutputStream > | error |
The output stream where errors have to be displayed. More... | |
static std::shared_ptr< OutputStream > | message |
The output stream where messages have to be displayed. More... | |
static std::shared_ptr< OutputStream > | warning |
The output stream where warnings have to be displayed. More... | |
static time_t | startTime |
Timer variable. More... | |
static size_t | terminalWidth = 80 |
The width of the output terminal (in character). More... | |
static float | terminalSplit = 0.5 |
The fraction of terminal width dedicated to messages. More... | |
static bool | interactive = true |
Tell if the program is interactive (typically run in foreground). Default to yes. More... | |
static int | warningLevel = 0 |
Specify the amount of warning to display. More... | |
This class provides some common tools for developping applications.
These functions are designed for helping to parse an option file.
The option files are supposed to follow this simple format:
with one parameter per line.
In files, shell comments:
C comments:
and C++ comments:
are allowed, and ignored while parsing.
Some methods for displaying information (messages, errors, warnings...) are also provided.
Methods dealing with parameters takes as argument a map<string, string> object containing the parameters (names are the keys of the map, and values are... the values of the map!). These map objects may be obtained from the AttributesTools utilitary class.
Definition at line 55 of file ApplicationTools.h.
|
inline |
Definition at line 97 of file ApplicationTools.h.
|
inlinevirtual |
Definition at line 98 of file ApplicationTools.h.
|
inlinestatic |
Print a boolean result message ("yes" or "no").
Result will be aligned to 30 character from the begining of the message.
text | The text of the message. |
result | The result. |
Definition at line 580 of file ApplicationTools.h.
References displayGauge(), displayResult(), and displayUnlimitedGauge().
|
static |
Print an error message.
text | The text of the message. |
Definition at line 239 of file ApplicationTools.cpp.
Referenced by getMatrixParameter().
|
static |
Display a gauge.
Show progress status.
will result in something like:
* [************************************] *
iter | The current iteration number. |
total | The total number of iteration. |
symbol | The character to display in the gauge. |
mes | A message to print before the gauge. |
Definition at line 271 of file ApplicationTools.cpp.
References bpp::TextTools::resizeLeft(), bpp::TextTools::resizeRight(), and bpp::TextTools::toString().
Referenced by bpp::FunctionTools::computeGrid(), and displayBooleanResult().
|
static |
Print a message.
text | The text of the message. |
Definition at line 233 of file ApplicationTools.cpp.
Referenced by bpp::FunctionTools::computeGrid(), displayResult(), getMatrixParameter(), bpp::NumCalcApplicationTools::getParameterGrid(), and bpp::ReparametrizationFunctionWrapper::init_().
|
inlinestatic |
Print a result message.
Result will be aligned to 30 character from the begining of the message. ex: text = "Here is what you get:" and result = "THAT" gives "Here is what you get: THAT".
text | The text of the message. |
result | The result. |
Definition at line 568 of file ApplicationTools.h.
References displayMessage(), bpp::TextTools::resizeRight(), terminalSplit, and terminalWidth.
Referenced by bpp::AbstractParameterAliasable::aliasParameters(), bpp::BppApplication::BppApplication(), displayBooleanResult(), bpp::NumCalcApplicationTools::getParameterGrid(), bpp::BppODiscreteDistributionFormat::initialize_(), and bpp::BppODiscreteDistributionFormat::readDiscreteDistribution().
|
static |
Print a task message.
Display the message and flush the buffer, but do not end the current line.
text | The text of the message. |
eof | Insert a carriage return after displaying the message. |
Definition at line 251 of file ApplicationTools.cpp.
Referenced by getMatrixParameter().
|
static |
Print a task ended message.
Print "Done." and go to next line.
Definition at line 263 of file ApplicationTools.cpp.
Referenced by getMatrixParameter().
|
static |
Display the current timer value to the 'message' stream.
msg | Message to display before time. |
Definition at line 341 of file ApplicationTools.cpp.
Referenced by bpp::BppApplication::done(), and startTimer().
|
static |
Display a gauge for unefined amount of iterations.
Show progress status.
will result in something like:
* - 1 * / 2 * - 3 * \ 4 * - 5 * etc *
iter | The current iteration number. |
mes | A message to print before the gauge. |
Definition at line 317 of file ApplicationTools.cpp.
References bpp::TextTools::toString().
Referenced by displayBooleanResult(), and bpp::AbstractOptimizer::optimize().
|
static |
Print a warning message.
text | The text of the message. |
Definition at line 245 of file ApplicationTools.cpp.
Referenced by bpp::AbstractParameterAliasable::aliasParameters(), bpp::DualityDiagram::compute_(), bpp::ContingencyTableTest::ContingencyTableTest(), getMatrixParameter(), getParameter(), getStringParameter(), and bpp::ReparametrizationFunctionWrapper::init_().
|
static |
Get a file path.
parameter | The name of the corresponding parameter. |
params | The attribute map where options may be found. |
isRequired | Tell if this path is strictly required or is optional (in the first case, if the parameter is not found, the programm will send an error and exit). |
mustExist | Tell if the corresponding file must already exist. |
suffix | A suffix to be applied to the parameter name. |
suffixIsOptional | Tell if the suffix is absolutely required. |
defaultPath | Path to use if no argument is provided. |
warn | Tell if a warning must be sent in case the parameter is not found. |
Exception | If no file path is specified and isRequired is true, or the file does not exist and mustExist is set to true. |
Definition at line 98 of file ApplicationTools.cpp.
References bpp::FileTools::fileExists().
Referenced by getParameter().
|
static |
Get a boolean parameter.
parameterName | The name of the corresponding parameter. |
params | The attribute map where options may be found. |
defaultValue | The default value to use if the parameter is not found. |
suffix | A suffix to be applied to the parameter name. |
suffixIsOptional | Tell if the suffix is absolutely required. |
warn | Tell if a warning must be sent in case the parameter is not found. |
Definition at line 179 of file ApplicationTools.cpp.
References bpp::TextTools::toString().
Referenced by bpp::BppApplication::BppApplication(), and getStringParameter().
|
static |
Get a double parameter.
parameterName | The name of the corresponding parameter. |
params | The attribute map where options may be found. |
defaultValue | The default value to use if the parameter is not found. |
suffix | A suffix to be applied to the parameter name. |
suffixIsOptional | Tell if the suffix is absolutely required. |
warn | Tell if a warning must be sent in case the parameter is not found. |
Definition at line 126 of file ApplicationTools.cpp.
References bpp::TextTools::toDouble(), and bpp::TextTools::toString().
Referenced by bpp::BppODiscreteDistributionFormat::initialize_(), and parameterExists().
|
static |
Get an integer parameter.
parameterName | The name of the corresponding parameter. |
params | The attribute map where options may be found. |
defaultValue | The default value to use if the parameter is not found. |
suffix | A suffix to be applied to the parameter name. |
suffixIsOptional | Tell if the suffix is absolutely required. |
warn | Tell if a warning must be sent in case the parameter is not found. |
Definition at line 152 of file ApplicationTools.cpp.
References bpp::TextTools::toInt(), and bpp::TextTools::toString().
Referenced by bpp::BppApplication::BppApplication(), and parameterExists().
|
inlinestatic |
Get a RowMatrix. The input is made of embedded parenthesis, such as ((1,2),(3,4)), where the matrix is filled by lines. Here, the matrix would be:
.
parameterName | The name of the corresponding parameter. |
params | The attribute map where options may be found. |
separator | The character used to delimit values. |
defaultValue | The default value to use if the parameter is not found. |
suffix | A suffix to be applied to the parameter name. |
suffixIsOptional | Tell if the suffix is absolutely required. |
warn | Tell if a warning must be sent in case the parameter is not found. |
Definition at line 472 of file ApplicationTools.h.
References bpp::RowMatrix< Scalar >::addRow(), displayError(), displayMessage(), displayTask(), displayTaskDone(), displayWarning(), getStringParameter(), bpp::StringTokenizer::hasMoreToken(), bpp::TextTools::isEmpty(), bpp::StringTokenizer::nextToken(), bpp::StringTokenizer::numberOfRemainingTokens(), and bpp::TextTools::toString().
|
inlinestatic |
Get a parameter.
parameterName | The name of the corresponding parameter. |
params | The attribute map where options may be found. |
defaultValue | The default value to use if the parameter is not found. |
suffix | A suffix to be applied to the parameter name. |
suffixIsOptional | Tell if the suffix is absolutely required. |
warn | Tell if a warning must be sent in case the parameter is not found. |
Definition at line 246 of file ApplicationTools.h.
References displayWarning(), getAFilePath(), parameterExists(), bpp::TextTools::toString(), and warningLevel.
|
inlinestatic |
Get a string parameter.
parameterName | The name of the corresponding parameter. |
params | The attribute map where options may be found. |
defaultValue | The default value to use if the parameter is not found. |
suffix | A suffix to be applied to the parameter name. |
suffixIsOptional | Tell if the suffix is absolutely required. |
warn | Tell if a warning must be sent in case the parameter is not found. |
Definition at line 189 of file ApplicationTools.h.
References displayWarning(), getBooleanParameter(), and bpp::TextTools::isEmpty().
Referenced by getMatrixParameter(), bpp::NumCalcApplicationTools::getParameterGrid(), getVectorOfVectorsParameter(), and getVectorParameter().
|
static |
Get the current timer value.
Definition at line 365 of file ApplicationTools.cpp.
Referenced by startTimer().
|
inlinestatic |
Get a vector of vectors.
parameterName | The name of the corresponding parameter. |
params | The attribute map where options may be found. |
separator | The character used to delimit values (cannot be a space character). |
defaultValue | The default value to use if the parameter is not found. |
suffix | A suffix to be applied to the parameter name. |
suffixIsOptional | Tell if the suffix is absolutely required. |
warn | Tell if a warning must be sent in case the parameter is not found. |
Exception | If a space character is used as separator. |
Definition at line 352 of file ApplicationTools.h.
References getStringParameter(), bpp::TextTools::isEmpty(), bpp::NestedStringTokenizer::nextToken(), bpp::StringTokenizer::numberOfRemainingTokens(), and bpp::TextTools::toString().
|
inlinestatic |
Get a vector.
parameterName | The name of the corresponding parameter. |
params | The attribute map where options may be found. |
separator | The character used to delimit values (cannot be a space character). |
defaultValue | The default value to use if the parameter is not found. |
suffix | A suffix to be applied to the parameter name. |
suffixIsOptional | Tell if the suffix is absolutely required. |
warn | Tell if a warning must be sent in case the parameter is not found. |
Exception | If a space character is used as separator. |
Definition at line 311 of file ApplicationTools.h.
References getStringParameter(), bpp::TextTools::isEmpty(), bpp::NestedStringTokenizer::nextToken(), bpp::StringTokenizer::numberOfRemainingTokens(), and bpp::TextTools::toString().
|
inlinestatic |
Get a vector.
Similar to getVectorParameter, but dedicated to numerical values. It allows the possibility to set range of values, which will be incremented by 1 (like the : operator in R).
parameterName | The name of the corresponding parameter. |
params | The attribute map where options may be found. |
separator | The character used to delimit values. |
rangeOperator | The character used to delimit ranges (the + 1 operator must be available for T). |
defaultValue | The default value to use if the parameter is not found. |
suffix | A suffix to be applied to the parameter name. |
suffixIsOptional | Tell if the suffix is absolutely required. |
warn | Tell if a warning must be sent in case the parameter is not found. |
Definition at line 412 of file ApplicationTools.h.
References getStringParameter(), bpp::TextTools::isEmpty(), bpp::StringTokenizer::nextToken(), bpp::StringTokenizer::numberOfRemainingTokens(), and bpp::TextTools::toString().
|
static |
Returns a vector of parameter names that match a given pattern.
Only "*" wildcard is implemented now.
pattern | The pattern. |
params | The parameter list. |
Definition at line 28 of file ApplicationTools.cpp.
References bpp::StringTokenizer::hasMoreToken(), and bpp::StringTokenizer::nextToken().
Referenced by parameterExists().
|
static |
Definition at line 62 of file ApplicationTools.cpp.
References bpp::StringTokenizer::hasMoreToken(), and bpp::StringTokenizer::nextToken().
|
inlinestatic |
Tells if a parameter have been specified.
parameterName | The name of the parameter. |
params | The parameter list. |
Definition at line 108 of file ApplicationTools.h.
References bpp::TextTools::isEmpty().
Referenced by getParameter().
|
inlinestatic |
Definition at line 116 of file ApplicationTools.h.
References getDoubleParameter(), getIntParameter(), and matchingParameters().
|
inlinestatic |
Starts the timer.
Definition at line 640 of file ApplicationTools.h.
References displayTime(), getTime(), and startTime.
Referenced by bpp::BppApplication::startTimer().
|
static |
The output stream where errors have to be displayed.
Definition at line 61 of file ApplicationTools.h.
Referenced by bpp::ReparametrizationFunctionWrapper::fireParameterChanged().
|
static |
Tell if the program is interactive (typically run in foreground). Default to yes.
Definition at line 89 of file ApplicationTools.h.
Referenced by bpp::BppApplication::BppApplication().
|
static |
The output stream where messages have to be displayed.
Definition at line 65 of file ApplicationTools.h.
Referenced by bpp::MetaOptimizer::doStep(), and bpp::BppApplication::help().
|
static |
|
static |
The fraction of terminal width dedicated to messages.
Definition at line 84 of file ApplicationTools.h.
Referenced by displayResult().
|
static |
The width of the output terminal (in character).
Definition at line 79 of file ApplicationTools.h.
Referenced by displayResult().
|
static |
The output stream where warnings have to be displayed.
Definition at line 69 of file ApplicationTools.h.
Referenced by bpp::RescaledHmmLikelihood::computeForward_(), and bpp::BppODiscreteDistributionFormat::initialize_().
|
static |
Specify the amount of warning to display.
Definition at line 94 of file ApplicationTools.h.
Referenced by bpp::BppApplication::BppApplication(), and getParameter().