A simple wrapper around bool so that it can be read as a word: true/false, on/off, yes/no, any/none. Also accepts 0/1 as a string and shortcuts t/f, y/n. More...
Public Types | |
enum | switchType : unsigned char { FALSE = 0, TRUE = 1, NO = 2, YES = 3, OFF = 4, ON = 5, NONE = 6, ANY = 7, INVALID = 8 } |
Switch enumerations corresponding to common text representations. More... | |
Public Member Functions | |
Switch (const Switch &) noexcept=default | |
Copy construct. More... | |
Switch & | operator= (const Switch &) noexcept=default |
Copy assignment. More... | |
constexpr | Switch () noexcept |
Default construct as false. More... | |
constexpr | Switch (const switchType sw) noexcept |
Implicit construct from enumerated value. More... | |
constexpr | Switch (const bool b) noexcept |
Implicit construct from bool. More... | |
constexpr | Switch (const int i) noexcept |
Implicit construct from int (treat integer as bool value) More... | |
Switch (const std::string &str) | |
Construct from string - catches bad input. More... | |
Switch (const char *str) | |
Construct from character array - catches bad input. More... | |
Switch (const float val, const float tol=0.5) | |
Construct from float with rounding to zero given by the tolerance (default: 0.5) More... | |
Switch (const double val, const double tol=0.5) | |
Construct from double with rounding to zero given by the tolerance (default: 0.5) More... | |
Switch (const token &tok) | |
Construct from token. Handles bool/label/word types. More... | |
Switch (const word &key, const dictionary &dict) | |
Construct from dictionary lookup. More... | |
Switch (const word &key, const dictionary &dict, const Switch deflt, const bool warnOnly=false) | |
Find the key in the dictionary and use the corresponding switch value or the default if not found in dictionary. More... | |
Switch (Istream &is) | |
Construct from Istream by reading a token. More... | |
bool | good () const noexcept |
True if the Switch represents a valid enumeration. More... | |
bool | bad () const noexcept |
True if the Switch does not represent a valid enumeration. More... | |
switchType | type () const noexcept |
The underlying enumeration value. More... | |
void | negate () noexcept |
Flip the type, so OFF becomes ON, etc. More... | |
const char * | c_str () const noexcept |
A C-string representation of the Switch value. More... | |
std::string | str () const |
A string representation of the Switch value. More... | |
bool | readIfPresent (const word &key, const dictionary &dict) |
Update the value of the Switch if it is found in the dictionary. More... | |
operator bool () const noexcept | |
Conversion to bool. More... | |
Switch & | operator= (const switchType sw) noexcept |
Assignment from enumerated value. More... | |
Switch & | operator= (const bool b) noexcept |
Assignment from bool. More... | |
Switch (const std::string &str, bool allowBad) | |
Deprecated(2020-01) From string with/without bad input test. More... | |
Switch (const char *str, bool allowBad) | |
Deprecated(2020-01) From string with/without bad input test. More... | |
FOAM_DEPRECATED_FOR (2019-02, "good() or static contains() method") bool valid() const noexcept | |
Deprecated(2020-01) Use good() method, or static contains() method. More... | |
Static Public Member Functions | |
static Switch | getOrDefault (const word &key, const dictionary &dict, const Switch deflt=switchType::FALSE) |
Construct Switch from dictionary, with default value. More... | |
static Switch | getOrAddToDict (const word &key, dictionary &dict, const Switch deflt=switchType::FALSE) |
Construct from dictionary, supplying default value so that if the value is not found, it is added into the dictionary. More... | |
static const char * | name (const bool b) noexcept |
A string representation of bool as "false" / "true". More... | |
static bool | contains (const std::string &str) |
True if there is a switch type corresponding to the given string. More... | |
static Switch | find (const std::string &str) |
Find switchType for the given string, returning as a Switch that can be tested for good() or bad(). More... | |
static bool | found (const std::string &str) |
Same as contains() More... | |
static Switch | lookupOrAddToDict (const word &name, dictionary &dict, const Switch deflt=switchType::FALSE) |
Same as getOrAddToDict() More... | |
A simple wrapper around bool so that it can be read as a word: true/false, on/off, yes/no, any/none. Also accepts 0/1 as a string and shortcuts t/f, y/n.
enum switchType : unsigned char |
Switch enumerations corresponding to common text representations.
Enumerator | |
---|---|
FALSE | "false" |
TRUE | "true" |
NO | "no" |
YES | "yes" |
OFF | "off" |
ON | "on" |
NONE | "none" |
ANY | "any" |
INVALID | "invalid" (output only) |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
explicit |
|
explicit |
|
explicit |
|
explicit |
Construct from token. Handles bool/label/word types.
Definition at line 219 of file Switch.C.
References token::boolToken(), token::good(), token::isBool(), token::isLabel(), token::isWord(), token::labelToken(), and token::wordToken().
Switch | ( | const word & | key, |
const dictionary & | dict | ||
) |
Construct from dictionary lookup.
FatalError if anything is incorrect.
key | Lookup key. Uses LITERAL (not REGEX) |
dict | dictionary |
Definition at line 242 of file Switch.C.
References dict, Foam::exit(), Foam::FatalIOError, FatalIOErrorInFunction, dictionary::get(), Switch::good(), Foam::glTF::key(), keyType::LITERAL, and Foam::printTokenError().
Switch | ( | const word & | key, |
const dictionary & | dict, | ||
const Switch | deflt, | ||
const bool | warnOnly = false |
||
) |
Find the key in the dictionary and use the corresponding switch value or the default if not found in dictionary.
FatalIOError if the switch name is incorrect. Specifying warnOnly downgrades the FatalIOError to an IOWarning.
key | Lookup key. Uses LITERAL (not REGEX) |
dict | dictionary |
deflt | fallback if not found |
warnOnly | Warn (not fail) on bad input |
Definition at line 266 of file Switch.C.
References Switch::c_str(), dict, Foam::endl(), Foam::exit(), Foam::FatalIOError, FatalIOErrorInFunction, Switch::good(), IOWarningInFunction, Foam::glTF::key(), keyType::LITERAL, Foam::printTokenError(), and dictionary::readIfPresent().
Switch | ( | const std::string & | str, |
bool | allowBad | ||
) |
Deprecated(2020-01) From string with/without bad input test.
Switch | ( | const char * | str, |
bool | allowBad | ||
) |
Deprecated(2020-01) From string with/without bad input test.
|
static |
Construct Switch from dictionary, with default value.
key | Lookup key. Uses LITERAL (not REGEX) |
dict | dictionary |
deflt | fallback if not found |
Definition at line 160 of file Switch.C.
References dict, dictionary::getOrDefault(), Foam::glTF::key(), and keyType::LITERAL.
Referenced by velocityGroup::velocityGroup().
|
static |
Construct from dictionary, supplying default value so that if the value is not found, it is added into the dictionary.
key | Lookup key. Uses LITERAL (not REGEX) |
dict | dictionary |
deflt | default value to add |
Definition at line 171 of file Switch.C.
References dict, dictionary::getOrAdd(), Foam::glTF::key(), and keyType::LITERAL.
Referenced by Switch::lookupOrAddToDict().
|
staticnoexcept |
A string representation of bool as "false" / "true".
Definition at line 141 of file Switch.C.
References Foam::constant::physicoChemical::b, and Foam::PtrListOps::names().
Referenced by surfaceNoise::calculate(), debugWriter::debugWriter(), boolEntry::evaluate(), Switch::lookupOrAddToDict(), Foam::functionObjects::operator<<(), Foam::operator<<(), argList::parse(), ensightMesh::options::print(), profilingInformation::write(), mappedPatchBase::write(), and attachDetach::writeDict().
|
static |
True if there is a switch type corresponding to the given string.
Definition at line 153 of file Switch.C.
Referenced by Switch::found().
|
static |
Find switchType for the given string, returning as a Switch that can be tested for good() or bad().
Definition at line 147 of file Switch.C.
Referenced by isTrue(), scalarRange::parse(), and error::useAbort().
|
noexcept |
True if the Switch represents a valid enumeration.
Definition at line 307 of file Switch.C.
Referenced by Switch::bad(), IOstreamOption::compressionEnum(), Switch::FOAM_DEPRECATED_FOR(), isoSurfaceParams::getFilterType(), isTrue(), Foam::operator>>(), scalarRange::parse(), exprValue::peekType(), and Switch::Switch().
|
inlinenoexcept |
True if the Switch does not represent a valid enumeration.
Definition at line 287 of file Switch.H.
References Switch::good().
|
noexcept |
|
noexcept |
|
noexcept |
A C-string representation of the Switch value.
Definition at line 329 of file Switch.C.
References Foam::PtrListOps::names().
Referenced by Foam::operator<<(), and Switch::Switch().
std::string str | ( | ) | const |
A string representation of the Switch value.
Definition at line 335 of file Switch.C.
References Foam::PtrListOps::names().
Referenced by Switch::found().
bool readIfPresent | ( | const word & | key, |
const dictionary & | dict | ||
) |
Update the value of the Switch if it is found in the dictionary.
key | Lookup key. Uses LITERAL (not REGEX) |
dict | dictionary |
Definition at line 342 of file Switch.C.
References dict, Foam::glTF::key(), keyType::LITERAL, and dictionary::readIfPresent().
Referenced by qZeta::read(), and adjointkOmegaSST::read().
|
inlinenoexcept |
|
inlinenoexcept |
Assignment from bool.
Definition at line 343 of file Switch.H.
References Foam::constant::physicoChemical::b, Switch::FALSE, and Switch::TRUE.
|
inlinestatic |
Same as contains()
Definition at line 355 of file Switch.H.
References Switch::contains(), and Switch::str().
|
inlinenoexcept |
Deprecated(2020-01) Use good() method, or static contains() method.
Definition at line 378 of file Switch.H.
References Switch::good().
|
inlinestatic |
Same as getOrAddToDict()
Definition at line 386 of file Switch.H.
References dict, Switch::getOrAddToDict(), and Switch::name().