ewmscp
..
|
generic option class with any type that can be used with std::istream and std::ostream More...
#include <Options.h>
Public Types | |
typedef std::conditional< std::is_fundamental< T >::value||std::is_same< T, const char * >::value, fundamental_wrapper< T >, T >::type | deriveFromType |
![]() | |
typedef T | valueType |
typedef std::conditional< std::is_same< T, const char * >::value||false, std::string, T >::type | rangeValueType |
typedef std::conditional< false, std::string, T >::type | compareValueType |
Public Member Functions | |
single (char aShortName, const std::string &aLongName, const std::string &aExplanation, T aDefault, const std::vector< T > &aRange={}) | |
construct an object of single<T> More... | |
single (char aShortName, const std::string &aLongName, const std::string &aExplanation) | |
single (const single &)=delete | |
T | operator= (const T &aValue) |
void | fAddDefaultFromStream (std::istream &aStream) override |
special for use in the shellScriptOptionParser More... | |
void | fWriteValue (std::ostream &aStream) const override |
write textual representation of value to a std::ostream More... | |
void | fCheckRange () const override |
void | fSetMe (std::istream &aStream, const internal::sourceItem &aSource) override |
function to set the value from a string, remembering the source More... | |
const T & | fGetValue () const |
![]() | |
typed_base (Types ... args) | |
virtual void | fAddToRange (rangeValueType aValue) |
add a value to the range of allowed values More... | |
std::enable_if<(!std::is_same< rangeValueType, std::string >::value) &&std::is_same< TT, std::string >::value, void >::type | fAddToRange (const TT &aString) |
void | fAddToRange (InputIt aBegin, InputIt aEnd) |
add values from the iterator range [aBegin,aEnd) to the range of allowed values More... | |
void | fAddToRange (const std::vector< TT > &aRange) |
add values from a vector (may be given as initializer list) to the range of allowed values More... | |
void | fAddToRangeFromStream (std::istream &aStream) override |
void | fWriteRange (std::ostream &aStream) const override |
virtual void | fCheckValueForRange (const compareValueType &aValue) const |
![]() | |
base (char aShortName, const std::string &aLongName, const std::string &aExplanation, short aNargs) | |
construct an object of type base More... | |
virtual | ~base () |
virtual void | fRequire (const base *aOtherOption) |
require aOtherOption when this option is set More... | |
virtual void | fRequire (std::vector< const base * > aOtherOptions) |
add vector of other options, particlularly nice for use with initializer list More... | |
template<typename InputIt > | |
void | fRequire (InputIt aBegin, InputIt aEnd) |
add all options from the pair of iterators [aBegin,aEnd) to the list of required options More... | |
virtual void | fForbid (const base *aOtherOption) |
forbid aOtherOption when this option is set More... | |
virtual void | fForbid (std::vector< const base * > aOtherOptions) |
add vector of other options, particlularly nice for use with initializer list More... | |
template<typename InputIt > | |
void | fForbid (InputIt aBegin, InputIt aEnd) |
add all options from the pair of iterators [aBegin,aEnd) to the list of forbidden options More... | |
virtual bool | fIsSet () const |
check if this option was set, regardless of from command line or config file More... | |
virtual bool | fIsContainer () const |
const std::string & | fGetLongName () const |
returns long name of option, usually only for internal use. More... | |
Additional Inherited Members | |
![]() | |
virtual void | fSetMeNoarg (const internal::sourceItem &) |
virtual void | fSetSource (const internal::sourceItem &aSource) |
remember the source that provided the value, e.g. commandline or a config file More... | |
virtual void | fWriteCfgLines (std::ostream &aStream, const char *aPrefix) const |
void | fSetPreserveWorthyStuff (std::vector< std::string > *aStuff) |
void | fHide () |
hide option, will be respected by help More... | |
bool | fIsHidden () const |
void | fDisable () |
disable option by removing it from the maps More... | |
![]() | |
static std::map< std::string, base * > & | fGetOptionMap () |
static std::map< char, base * > & | fGetShortOptionMap () |
![]() | |
std::multiset< rangeValueType > | lRange |
![]() | |
char | lShortName |
const std::string | lLongName |
const std::string | lExplanation |
internal::sourceItem | lSource |
short | lNargs |
bool | lHidden |
std::vector< std::string > * | lPreserveWorthyStuff |
std::vector< const base * > | lRequiredOptions |
std::vector< const base * > | lForbiddenOptions |
generic option class with any type that can be used with std::istream and std::ostream
It is called 'single' because it's meant for single values as opposed to containers as it may contain strings (via specialisations) it's not limited to scalar tyes.
typedef std::conditional< std::is_fundamental<T>::value || std::is_same<T, const char*>::value, fundamental_wrapper<T>, T >::type options::single< T >::deriveFromType |
|
inline |
construct an object of single<T>
The newly created object is inserted into the maps sorted by long name and by short name, (short name only if it is not '\0') If a clash wopuld occur, i.e. either long or short name is already taken an exception is thrown.
[in] | aShortName | short option without the -, use '\0' to have only a long form |
[in] | aLongName | long option without the –, must always be given |
[in] | aExplanation | explanation for help output |
[in] | aNargs | number of arguments/parameters. May be 0 ot 1. This generic case always demands one parameter for the option! |
[in] | aDefault | default value that the option has if not set otherwise |
[in] | aRange | range of allowes values, can be given as initializer list. If only two values are given then [first,last] is the allowd interval. |
Definition at line 546 of file Options.h.
|
inline |
|
delete |
|
inlineoverridevirtual |
special for use in the shellScriptOptionParser
read a value from aStram and set that as default
Implements options::base.
|
inlineoverridevirtual |
Implements options::base.
|
inline |
Definition at line 589 of file Options.h.
Referenced by copyRequest::base::hashCalculator::hashCalculator(), and main().
|
inlineoverridevirtual |
function to set the value from a string, remembering the source
Implements options::base.
Reimplemented in options::withAction< options::single< std::string > >.
Definition at line 578 of file Options.h.
Referenced by options::internal::OptionReadCfgFile< mayBeMissing >::fSetMe().
|
inlineoverridevirtual |
write textual representation of value to a std::ostream
Implements options::base.
Definition at line 569 of file Options.h.
Referenced by main().
|
inline |