A keyword and a list of tokens is an 'entry'. More...
Public Types | |
enum class | inputMode { MERGE , OVERWRITE , PROTECT , WARN , ERROR , GLOBAL } |
The input mode options. More... | |
Public Member Functions | |
entry (const keyType &keyword) | |
Construct from keyword. More... | |
entry (const entry &e) | |
Construct as copy. More... | |
virtual autoPtr< entry > | clone (const dictionary &parentDict) const =0 |
Construct on freestore as copy with reference to the. More... | |
virtual autoPtr< entry > | clone () const |
Construct on freestore as copy. More... | |
virtual | ~entry ()=default |
Destructor. More... | |
const keyType & | keyword () const noexcept |
Return keyword. More... | |
keyType & | keyword () noexcept |
Return non-const access to keyword. More... | |
virtual const fileName & | name () const =0 |
Return the entry name. More... | |
virtual fileName & | name ()=0 |
Return the entry name for modification. More... | |
virtual fileName | relativeName () const =0 |
Return the entry name relative to the current case. More... | |
virtual label | startLineNumber () const =0 |
Return line number of first token in dictionary. More... | |
virtual label | endLineNumber () const =0 |
Return line number of last token in dictionary. More... | |
virtual bool | isStream () const noexcept |
Return true if this entry is a stream. More... | |
virtual ITstream & | stream () const =0 |
Return token stream, if entry is a primitive entry. More... | |
virtual bool | isDict () const noexcept |
Return true if this entry is a dictionary. More... | |
virtual const dictionary * | dictPtr () const noexcept |
Return pointer to dictionary, if entry is a dictionary. More... | |
virtual dictionary * | dictPtr () noexcept |
Return non-const pointer to dictionary, if entry is a dictionary. More... | |
virtual const dictionary & | dict () const =0 |
Return dictionary, if entry is a dictionary. More... | |
virtual dictionary & | dict ()=0 |
Return non-const access to dictionary, if entry is a dictionary. More... | |
void | checkITstream (const ITstream &is) const |
template<class T > | |
T | get () const |
template<class T > | |
void | readEntry (T &val) const |
template<class T , class Predicate > | |
T | getCheck (const Predicate &pred) const |
template<class T , class Predicate > | |
void | readCheck (T &val, const Predicate &pred) const |
virtual void | write (Ostream &os) const =0 |
Write. More... | |
void | operator= (const entry &e) |
bool | operator== (const entry &e) const |
bool | operator!= (const entry &e) const |
![]() | |
link (const T &elem) | |
Copy construct from given object. More... | |
link (T &&elem) | |
Move construct from given object. More... | |
Static Public Member Functions | |
static bool | New (dictionary &parentDict, Istream &is, const inputMode inpMode=inputMode::GLOBAL, const int endChar=0) |
Construct from an Istream and insert into the dictionary. More... | |
static autoPtr< entry > | New (Istream &is) |
Construct an entry from Istream. More... | |
static void | resetInputMode () |
Reset the globalInputMode to merge. More... | |
![]() | |
static T | remove (typename LListBase::link *node) |
Delete linked item and return the element value. More... | |
static constexpr T * | ptr (typename LListBase::link *node) |
Dereference LListBase::link to obtain address of stored object. More... | |
static constexpr const T * | ptr (const typename LListBase::link *node) |
Dereference LListBase::link to obtain address of stored object. More... | |
static constexpr T & | ref (typename LListBase::link *node) |
Dereference LListBase::link to obtain the stored object. More... | |
static constexpr const T & | ref (const typename LListBase::link *node) |
Dereference LListBase::link to obtain the stored object. More... | |
Static Public Attributes | |
static int | disableFunctionEntries |
Enable or disable use of function entries and variable expansions. More... | |
static inputMode | globalInputMode = inputMode::MERGE |
The current global input-mode. More... | |
Static Protected Member Functions | |
static void | reportReadWarning (const IOstream &, const std::string &) |
Report a read warning (on std::cerr) More... | |
Friends | |
Ostream & | operator<< (Ostream &os, const entry &e) |
Additional Inherited Members | |
![]() | |
T | val_ |
Stored object. More... | |
A keyword and a list of tokens is an 'entry'.
An entry can be read, written and printed, and the types and values of its tokens analysed. An entry is a high-level building block for data description. It is a front-end for the token parser. A list of entries can be used as a set of keyword syntax elements, for example.
|
strong |
The input mode options.
Enumerator | |
---|---|
MERGE | Merge sub-dictionaries when possible. |
OVERWRITE | Keep last entry. Silently remove previous ones. |
PROTECT | Keep initial entry. Silently ignore subsequent ones. |
WARN | Keep initial entry. Warn about subsequent ones. |
ERROR | FatalError for duplicate entries. |
GLOBAL | Use global value from globalInputMode variable. |
|
virtualdefault |
Destructor.
|
staticprotected |
Report a read warning (on std::cerr)
Definition at line 47 of file entry.C.
References IOstream::lineNumber(), and IOstream::relativeName().
|
pure virtual |
Construct on freestore as copy with reference to the.
dictionary the copy belongs to
Implemented in primitiveEntry, dictionaryEntry, and dictionaryListEntry.
|
virtual |
Construct on freestore as copy.
Note: the parent directory is set to dictionary::null
|
static |
Construct from an Istream and insert into the dictionary.
parentDict | dictionary to insert into |
is | the input stream |
inpMode | the input mode. The default is to use the currently active globalInputMode |
endChar | the expected end character (eg, a closing brace). The endChar is 0 if no expectations are asserted. |
Definition at line 104 of file entryIO.C.
References dictionary::add(), token::BEGIN_BLOCK, token::BEGIN_LIST, fileName::clean(), dictionary::csearchScoped(), entry::disableFunctionEntries, token::DOLLAR, token::END_BLOCK, token::END_LIST, IOstream::eof(), ObukhovLength::execute(), Foam::exit(), IOstream::fatalCheck(), Foam::FatalIOError, FatalIOErrorInFunction, FUNCTION_NAME, token::HASH, token::info(), Foam::stringOps::inplaceExpand(), token::isLabel(), token::isPunctuation(), keyType::LITERAL, dictionary::makeScopedDict(), Foam::mode(), fileName::name(), formatter::npos, fileName::path(), Istream::putBack(), keyType::REGEX, keyType::REGEX_RECURSIVE, dictionary::search(), dictionary::searchScoped(), dictionary::substituteScopedKeyword(), and kkLOmega::validate().
|
static |
Construct an entry from Istream.
The expected input comprises a keyword followed by a dictionaryEntry or a primitiveEntry.
The primitiveEntry ends with a ';' semi-colon.
Example input
key1 { ... } // dictionary input key2 ... ; // primitive input
Definition at line 463 of file entryIO.C.
References token::BEGIN_BLOCK, IOstream::fatalCheck(), FUNCTION_NAME, Istream::putBack(), and autoPtr< T >::reset().
|
static |
Reset the globalInputMode to merge.
Definition at line 61 of file entry.C.
Referenced by dictionary::dictionary(), inputMode::execute(), and Foam::operator>>().
|
inlinenoexcept |
Return keyword.
Definition at line 195 of file entry.H.
Referenced by dictionary::add(), cellModel::cellModel(), GeometricBoundaryField< symmTensor, fvPatchField, volMesh >::GeometricBoundaryField(), solutionControl::maxResidual(), solutionControl::maxTypeResidual(), Function1< Type >::New(), PatchFunction1< Type >::New(), phase::iNew::operator()(), phaseModel::iNew::operator()(), sizeGroup::iNew::operator()(), Foam::functionObjects::operator>>(), Foam::operator>>(), genericPatchFieldBase::processEntry(), refinementSurfaces::refinementSurfaces(), dictionary::set(), shellSurfaces::shellSurfaces(), and Foam::blockMeshTools::write().
|
inlinenoexcept |
|
pure virtual |
Return the entry name.
Implemented in dictionaryEntry, and primitiveEntry.
Referenced by dictionary::add().
|
pure virtual |
Return the entry name for modification.
Implemented in dictionaryEntry, and primitiveEntry.
|
pure virtual |
Return the entry name relative to the current case.
Implemented in dictionaryEntry, and primitiveEntry.
|
pure virtual |
Return line number of first token in dictionary.
Implemented in dictionaryEntry, and primitiveEntry.
Referenced by dynamicCodeContext::readEntry().
|
pure virtual |
Return line number of last token in dictionary.
Implemented in dictionaryEntry, and primitiveEntry.
|
inlinevirtualnoexcept |
Return true if this entry is a stream.
Reimplemented in primitiveEntry.
Definition at line 223 of file entry.H.
Referenced by Constant< Type >::Constant(), Polynomial< Type >::Polynomial(), genericPatchFieldBase::processEntry(), and Table< Type >::Table().
|
pure virtual |
Return token stream, if entry is a primitive entry.
Implemented in dictionaryEntry, and primitiveEntry.
Referenced by Constant< Type >::Constant(), exprResultDelayed::exprResultDelayed(), Foam::exprTools::getList(), expressionEntry::inplaceExpand(), solutionControl::maxTypeResidual(), fvGeometryScheme::New(), Polynomial< Type >::Polynomial(), genericPatchFieldBase::processEntry(), Foam::blockMeshTools::read(), entry::readCheck(), fvExprDriver::readDict(), entry::readEntry(), Foam::readScaling(), shellSurfaces::shellSurfaces(), Table< Type >::Table(), solution::upgradeSolverDict(), and Foam::writeEntryIfPresent().
|
inlinevirtualnoexcept |
Return true if this entry is a dictionary.
Definition at line 233 of file entry.H.
References entry::dictPtr().
Referenced by dictionary::add(), dictionary::cfindScopedDict(), Foam::entryToString(), GAMGSolver::GAMGSolver(), GeometricBoundaryField< symmTensor, fvPatchField, volMesh >::GeometricBoundaryField(), Foam::getVariableOrDie(), dictionary::makeScopedDict(), functionObjectList::read(), Foam::debug::switchSet(), solution::upgradeSolverDict(), and Foam::writeEntryIfPresent().
|
inlinevirtualnoexcept |
Return pointer to dictionary, if entry is a dictionary.
Return nullptr if the entry is not a dictionary.
Reimplemented in dictionaryEntry.
Definition at line 240 of file entry.H.
Referenced by dictionary::cfindScopedDict(), entry::isDict(), and dictionary::makeScopedDict().
|
inlinevirtualnoexcept |
Return non-const pointer to dictionary, if entry is a dictionary.
Return nullptr if the entry is not a dictionary.
Reimplemented in dictionaryEntry.
|
pure virtual |
Return dictionary, if entry is a dictionary.
Implemented in primitiveEntry, and dictionaryEntry.
Referenced by dictionary::add(), Foam::entryToString(), GAMGSolver::GAMGSolver(), functionObjectList::read(), sampledSurfaces::read(), refinementSurfaces::refinementSurfaces(), shellSurfaces::shellSurfaces(), Foam::debug::switchSet(), and Foam::writeEntryIfPresent().
|
pure virtual |
Return non-const access to dictionary, if entry is a dictionary.
Implemented in primitiveEntry, and dictionaryEntry.
void checkITstream | ( | const ITstream & | is | ) | const |
Check after reading if the input token stream has unconsumed tokens remaining or if there were no tokens in the first place.
Emits FatalIOError
Definition at line 110 of file entry.C.
References JobInfo::constructed, Foam::exit(), Foam::FatalIOError, IOstream::lineNumber(), Foam::nl, ITstream::nRemainingTokens(), UList< T >::size(), and UList< T >::writeList().
Referenced by entry::readCheck(), entry::readEntry(), and Foam::readScaling().
|
inline |
Get a T from the stream, FatalIOError if the number of tokens is incorrect.
Definition at line 269 of file entry.H.
References T.
Referenced by Foam::getOrAdd(), Enum< injectionMethod >::getOrDefault(), and Enum< injectionMethod >::read().
|
inline |
Assign to T val, FatalIOError if the number of tokens is incorrect.
val | the value to read into |
Definition at line 281 of file entry.H.
References entry::checkITstream(), and entry::stream().
Referenced by dynamicCodeContext::readEntry().
|
inline |
|
inline |
Assign to T val, FatalIOError if the number of tokens is incorrect.
val | the value to read into |
pred | the value check predicate |
Definition at line 307 of file entry.H.
References entry::checkITstream(), and entry::stream().
|
pure virtual |
Write.
Implemented in dictionaryEntry, dictionaryListEntry, functionEntry, and primitiveEntry.
Definition at line 205 of file entry.C.
References e, and StringStreamAllocator< StreamType >::str().
Definition at line 228 of file entry.C.
References e, and Foam::operator==().
|
static |
Enable or disable use of function entries and variable expansions.
Definition at line 127 of file entry.H.
Referenced by entry::New().
|
static |
The current global input-mode.
Definition at line 130 of file entry.H.
Referenced by inputMode::execute().