Public Types | Public Member Functions | Static Public Member Functions | List of all members
Switch Class Reference

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
}
 

Public Member Functions

 Switch (const Switch &) noexcept=default
 
Switchoperator= (const Switch &) noexcept=default
 
constexpr Switch () noexcept
 
constexpr Switch (const switchType sw) noexcept
 
constexpr Switch (const bool b) noexcept
 
constexpr Switch (const int i) noexcept
 
 Switch (const std::string &str)
 
 Switch (const char *str)
 
 Switch (const float val, const float tol=0.5)
 
 Switch (const double val, const double tol=0.5)
 
 Switch (const token &tok)
 
 Switch (const word &key, const dictionary &dict)
 
 Switch (const word &key, const dictionary &dict, const Switch deflt, const bool failsafe=false)
 
 Switch (Istream &is)
 
bool good () const noexcept
 
bool bad () const noexcept
 
switchType type () const noexcept
 
void negate () noexcept
 
const char * c_str () const noexcept
 
std::string str () const
 
bool readIfPresent (const word &key, const dictionary &dict)
 
 operator bool () const noexcept
 
Switchoperator= (const switchType sw) noexcept
 
Switchoperator= (const bool b) noexcept
 
 Switch (const std::string &str, bool allowBad)
 
 Switch (const char *str, bool allowBad)
 
 FOAM_DEPRECATED_FOR (2019-02, "good() or static found() method") bool valid() const noexcept
 

Static Public Member Functions

static Switch getOrAddToDict (const word &key, dictionary &dict, const Switch deflt=switchType::FALSE)
 
static const char * name (const bool b) noexcept
 
static Switch find (const std::string &str)
 
static bool found (const std::string &str)
 
static Switch lookupOrAddToDict (const word &name, dictionary &dict, const Switch deflt=switchType::FALSE)
 

Detailed Description

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.

Source files

Definition at line 77 of file Switch.H.

Member Enumeration Documentation

◆ switchType

enum switchType : unsigned char
Enumerator
FALSE 

"false"

TRUE 

"true"

NO 

"no"

YES 

"yes"

OFF 

"off"

ON 

"on"

NONE 

"none"

ANY 

"any"

INVALID 

"invalid" (output only)

Definition at line 88 of file Switch.H.

Constructor & Destructor Documentation

◆ Switch() [1/15]

Switch ( const Switch )
defaultnoexcept

◆ Switch() [2/15]

constexpr Switch ( )
inlineconstexprnoexcept

Definition at line 127 of file Switch.H.

◆ Switch() [3/15]

constexpr Switch ( const switchType  sw)
inlineconstexprnoexcept

Definition at line 133 of file Switch.H.

◆ Switch() [4/15]

constexpr Switch ( const bool  b)
inlineconstexprnoexcept

Definition at line 139 of file Switch.H.

◆ Switch() [5/15]

constexpr Switch ( const int  i)
inlineconstexprnoexcept

Definition at line 145 of file Switch.H.

◆ Switch() [6/15]

Switch ( const std::string &  str)
explicit

Definition at line 172 of file Switch.C.

◆ Switch() [7/15]

Switch ( const char *  str)
explicit

Definition at line 178 of file Switch.C.

◆ Switch() [8/15]

Switch ( const float  val,
const float  tol = 0.5 
)
explicit

Definition at line 196 of file Switch.C.

◆ Switch() [9/15]

Switch ( const double  val,
const double  tol = 0.5 
)
explicit

Definition at line 202 of file Switch.C.

◆ Switch() [10/15]

Switch ( const token tok)
explicit

Definition at line 208 of file Switch.C.

References bool, token::boolToken(), token::good(), token::isBool(), token::isLabel(), token::isWord(), token::labelToken(), and token::wordToken().

Here is the call graph for this function:

◆ Switch() [11/15]

Switch ( const word key,
const dictionary dict 
)
Parameters
keyLookup key. Uses LITERAL (not REGEX)
dictdictionary

Definition at line 231 of file Switch.C.

References dict, Foam::exit(), Foam::FatalIOError, FatalIOErrorInFunction, dictionary::get(), Switch::good(), Foam::glTF::key(), keyType::LITERAL, and Foam::printTokenError().

Here is the call graph for this function:

◆ Switch() [12/15]

Switch ( const word key,
const dictionary dict,
const Switch  deflt,
const bool  failsafe = false 
)
Parameters
keyLookup key. Uses LITERAL (not REGEX)
dictdictionary
defltfallback if not found
failsafeWarn only on bad input

Definition at line 255 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().

Here is the call graph for this function:

◆ Switch() [13/15]

Switch ( Istream is)
explicit

Definition at line 288 of file Switch.C.

◆ Switch() [14/15]

Switch ( const std::string &  str,
bool  allowBad 
)

Definition at line 184 of file Switch.C.

◆ Switch() [15/15]

Switch ( const char *  str,
bool  allowBad 
)

Definition at line 190 of file Switch.C.

Member Function Documentation

◆ operator=() [1/3]

Switch& operator= ( const Switch )
defaultnoexcept

◆ getOrAddToDict()

Foam::Switch getOrAddToDict ( const word key,
dictionary dict,
const Switch  deflt = switchType::FALSE 
)
static
Parameters
keyLookup key. Uses LITERAL (not REGEX)
dictdictionary
defltdefault value to add

Definition at line 160 of file Switch.C.

References dict, dictionary::getOrAdd(), Foam::glTF::key(), and keyType::LITERAL.

Referenced by Switch::lookupOrAddToDict().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ name()

const char * name ( const bool  b)
staticnoexcept

Definition at line 141 of file Switch.C.

References Foam::constant::physicoChemical::b, and Foam::PtrListOps::names().

Referenced by boolEntry::evaluate(), Switch::lookupOrAddToDict(), ensightMesh::options::print(), profilingInformation::write(), mappedPatchBase::write(), and attachDetach::writeDict().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ find()

Foam::Switch find ( const std::string &  str)
static

Definition at line 147 of file Switch.C.

Referenced by isTrue(), scalarRange::parse(), and error::useAbort().

Here is the caller graph for this function:

◆ found()

bool found ( const std::string &  str)
static

Definition at line 153 of file Switch.C.

◆ good()

bool good ( ) const
noexcept

◆ bad()

bool bad ( ) const
inlinenoexcept

Definition at line 225 of file Switch.H.

References Switch::good().

Here is the call graph for this function:

◆ type()

Foam::Switch::switchType type ( ) const
noexcept

Definition at line 302 of file Switch.C.

◆ negate()

void negate ( )
noexcept

Definition at line 308 of file Switch.C.

◆ c_str()

const char * c_str ( ) const
noexcept

Definition at line 318 of file Switch.C.

References Foam::PtrListOps::names().

Referenced by Foam::operator<<(), and Switch::Switch().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ str()

std::string str ( ) const

Definition at line 324 of file Switch.C.

References Foam::PtrListOps::names().

Here is the call graph for this function:

◆ readIfPresent()

bool readIfPresent ( const word key,
const dictionary dict 
)
Parameters
keyLookup key. Uses LITERAL (not REGEX)
dictdictionary

Definition at line 331 of file Switch.C.

References dict, Foam::glTF::key(), keyType::LITERAL, and dictionary::readIfPresent().

Referenced by qZeta::read().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator bool()

operator bool ( ) const
inlinenoexcept

Definition at line 251 of file Switch.H.

◆ operator=() [2/3]

Switch& operator= ( const switchType  sw)
inlinenoexcept

Definition at line 257 of file Switch.H.

◆ operator=() [3/3]

Switch& operator= ( const bool  b)
inlinenoexcept

Definition at line 264 of file Switch.H.

References Foam::constant::physicoChemical::b, Switch::FALSE, and Switch::TRUE.

◆ FOAM_DEPRECATED_FOR()

FOAM_DEPRECATED_FOR ( 2019-  02,
"good() or static found() method"   
) const
inlinenoexcept

Definition at line 285 of file Switch.H.

References Switch::good().

Here is the call graph for this function:

◆ lookupOrAddToDict()

static Switch lookupOrAddToDict ( const word name,
dictionary dict,
const Switch  deflt = switchType::FALSE 
)
inlinestatic

Definition at line 293 of file Switch.H.

References dict, Switch::getOrAddToDict(), and Switch::name().

Here is the call graph for this function:

The documentation for this class was generated from the following files: