Created BaseException that can act as a stringstream. You can do the following:
throw BaseException() << "some error " << variable << " foo";
Changed InvalidSettings to use BaseException, using this new syntax in Settings.
we'll soon have two runs of the option parser. The whole process will look like this:
* call register callbacks (may update options_description)
* first run of parser
* call intermediate callbacks (may check variable_map and update options_description)
* second run of parser (with new options_description)
* call checker callbacks (may check variable_map)
it is possible to register callbacks that add custom options to the settings module.
it is also possible to register callbacks that perform checks on the variable assignment afterwards.
The registering is done during the static initialization phase, i.e. before main() does anything.
Using the Register class, one can register callbacks to manipulate options or check options afterwards.
These callbacks are stored in the Callbacks class (being a singleton) and should be called by the Settings class when appropriate.
The Settings class does not call them yet.
the former folder.
Also, changed those templates to use references instead of pointers for
easier code.
Renamer "utility.h" and .cpp to "ioUtility.h/cpp", as utility code
providing functionality not linked with IO has been put into other
files.
"check" which calls the correct check function in the model checker.
- The dot output was modified to work with the refactored names
- Also, it uses now filestreams instead of C style output
- and the iterators from the matrix class
- Included new (stub) test case for output (and general parsing)
Changed a lot in the class structure of Settings:
* Settings is now a Singleton. Obtain a new instance by Settings::instance().
* options_description objects are now static, thus a help message can be printed even if the constructor of Settings failes
* As Settings has static members, a .cpp file became necessary, hence cmake should probably be run...
* Help messages can be printed with new help and helpConfigfile routines
adding new exception that is thrown whenever loading the settings fails.
this exception is caught in mrmc-cpp.cpp. If this happens, the program is terminated.