multovl
1.3
Multiple overlaps of genomic regions
|
Base class for option handling in the multovl family of tools. More...
#include "multovlopts.hh"
Public Member Functions | |
unsigned int | minmult () const |
unsigned int | maxmult () const |
bool | solitary () const |
bool | nointrack () const |
unsigned int | ovlen () const |
bool | uniregion () const |
bool | timing () const |
virtual std::string | param_str () const |
virtual std::ostream & | print_version (std::ostream &out) const |
![]() | |
void | process_commandline (int argc, char *argv[]) |
bool | parse_check (int argc, char *argv[]) |
std::vector< std::string > | pos_opts () const |
bool | error_status () const |
std::string | error_messages () const |
bool | version_needed () const |
bool | help_needed () const |
virtual std::ostream & | print_help (std::ostream &out) const |
Protected Member Functions | |
virtual bool | check_variables () |
virtual std::ostream & | version_info (std::ostream &out) const |
![]() | |
Polite (const std::string &descr="Options") | |
template<typename Opttype > | |
void | add_option (const std::string &name, Opttype *optvarp, const Opttype &defval, const std::string &descr, const char nm= '\0') |
void | add_bool_switch (const std::string &name, bool *varp, const std::string &descr, const char nm= '\0') |
template<typename Opttype > | |
void | add_mandatory_option (const std::string &name, const std::string &descr, const char nm= '\0') |
bool | perform_parsing (int argc, char *argv[]) |
bool | option_seen (const std::string &optnm) const |
template<typename Opttype > | |
Opttype | fetch_value (const std::string &optnm) const |
void | add_error (const std::string &msg) |
void | error_reset () |
Reset the error status to "no error". | |
Base class for option handling in the multovl family of tools.
|
protectedvirtual |
Derived classes must override this method so that first an appropriate base class version is invoked to process the base class' commandline variables and then additional processing must be done on the derived class' variables if /true/ was returned, like this:-
bool DerivedOpts::check_variables() { bool ok = BaseOpts::check_variables(); // don't invoke Polite::check_variables() ! if (ok) { // e.g. check some variables here if (option_seen("opt") > 0) { int opt = fetch_value<int>("opt"); if (opt < 1) opt = 1; // ... ok = true; } else { add_error("opt must be present"); ok = false; } } return ok; }
Implements multovl::Polite.
Reimplemented in multovl::prob::ProbOpts, multovl::ClassicOpts, and multovl::prob::ParProbOpts.
|
virtual |
Prints the version information
out | this is the stream the version text is printed to. |
Reimplemented from multovl::Polite.
|
protectedvirtual |
This method prints version information relevant to the current class. It is invoked by the print_version() method by default. Do not invoke the base class version(s) here, just specify what is relevant to your current class, and override print_version() so that the base class infos are combined correctly (important when doing diamond-style inheritance).
out | the stream the version information is printed to |
Reimplemented from multovl::Polite.