diff options
Diffstat (limited to 'contrib/otshell_utils/runoptions.hpp')
-rw-r--r-- | contrib/otshell_utils/runoptions.hpp | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/contrib/otshell_utils/runoptions.hpp b/contrib/otshell_utils/runoptions.hpp new file mode 100644 index 000000000..219d3b509 --- /dev/null +++ b/contrib/otshell_utils/runoptions.hpp @@ -0,0 +1,58 @@ +/* See other files here for the LICENCE that applies here. */ +/* +Template for new files, replace word "template" and later delete this line here. +*/ + +#ifndef INCLUDE_OT_NEWCLI_runoptions_hpp +#define INCLUDE_OT_NEWCLI_runoptions_hpp + +#include "lib_common1.hpp" + +namespace nOT { + +INJECT_OT_COMMON_USING_NAMESPACE_COMMON_1 // <=== namespaces + +/** Global options to run this program main() Eg used for developer's special options like +setdemo +setdebug. +This is NOT for all the other options that are parsed and executed by program. */ +class cRunOptions { + public: + enum tRunMode { ///< Type of run mode - is this normal, or demonstration etc. + eRunModeCurrent=1, ///< currently developed version + eRunModeDemo, ///< best currently available Demo of something nice + eRunModeNormal, ///< do the normal things that the program should do + }; + + private: + tRunMode mRunMode; ///< selected run mode + + bool mDebug; // turn debug on, Eg: +debug without it probably nothing will be written to debug (maybe just error etc) + bool mDebugSendToFile; // send to file, Eg: for +debugfile ; also turns on debug + bool mDebugSendToCerr; // send to cerr, Eg: for +debugcerr ; also turns on debug + // if debug is set but not any other DebugSend* then we will default to sending to debugcerr + + bool mDoRunDebugshow; + + public: + tRunMode getTRunMode() const { return mRunMode; } + bool getDebug() const { return mDebug; } + bool getDebugSendToFile() const { return mDebugSendToFile; } + bool getDebugSendToCerr() const { return mDebugSendToCerr; } + bool getDoRunDebugshow() const { return mDoRunDebugshow; } + + cRunOptions(); + + vector<string> ExecuteRunoptionsAndRemoveThem(const vector<string> & args); + void Exec(const string & runoption); // eg: Exec("+debug"); + + void Normalize(); +}; + +extern cRunOptions gRunOptions; + + +} // namespace nOT + + + +#endif + |