entry Class Referenceabstract

A keyword and a list of tokens is an 'entry'. More...

Inheritance diagram for entry:
Collaboration diagram for entry:

Public Types

enum  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< entryclone (const dictionary &parentDict) const =0
 Construct on freestore as copy with reference to the. More...
 
virtual autoPtr< entryclone () const
 Construct on freestore as copy. More...
 
virtual ~entry ()=default
 Destructor. More...
 
const keyTypekeyword () const noexcept
 Return keyword. More...
 
keyTypekeyword () noexcept
 Return non-const access to keyword. More...
 
virtual const fileNamename () const =0
 Return the entry name. More...
 
virtual fileNamename ()=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 ITstreamstream () 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 dictionarydictPtr () const noexcept
 Return pointer to dictionary, if entry is a dictionary. More...
 
virtual dictionarydictPtr () noexcept
 Return non-const pointer to dictionary, if entry is a dictionary. More...
 
virtual const dictionarydict () const =0
 Return dictionary, if entry is a dictionary. More...
 
virtual dictionarydict ()=0
 Return non-const access to dictionary, if entry is a dictionary. More...
 
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. More...
 
template<class T >
T get () const
 Get a T from the stream, FatalIOError if the number of tokens is incorrect. More...
 
template<class T >
void readEntry (T &val) const
 Assign to T val, FatalIOError if the number of tokens is incorrect. More...
 
template<class T , class Predicate >
T getCheck (const Predicate &pred) const
 Get a T from the stream, FatalIOError if the number of tokens is incorrect. More...
 
template<class T , class Predicate >
void readCheck (T &val, const Predicate &pred) const
 Assign to T val, FatalIOError if the number of tokens is incorrect. More...
 
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
 

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< entryNew (Istream &is)
 Construct an entry from Istream. More...
 
static void resetInputMode ()
 Reset the globalInputMode to merge. 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

Ostreamoperator<< (Ostream &os, const entry &e)
 

Detailed Description

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.

Source files

Definition at line 63 of file entry.H.

Member Enumeration Documentation

◆ inputMode

enum inputMode
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.

Definition at line 74 of file entry.H.

Constructor & Destructor Documentation

◆ entry() [1/2]

entry ( const keyType keyword)

Construct from keyword.

Definition at line 62 of file entry.C.

◆ entry() [2/2]

entry ( const entry e)

Construct as copy.

Definition at line 69 of file entry.C.

◆ ~entry()

virtual ~entry ( )
virtualdefault

Destructor.

Member Function Documentation

◆ reportReadWarning()

void reportReadWarning ( const IOstream is,
const std::string &  msg 
)
staticprotected

Report a read warning (on std::cerr)

Definition at line 41 of file entry.C.

References Foam::endl(), IOstream::lineNumber(), and IOstream::relativeName().

Here is the call graph for this function:

◆ clone() [1/2]

virtual autoPtr<entry> clone ( const dictionary parentDict) const
pure virtual

Construct on freestore as copy with reference to the.

dictionary the copy belongs to

Implemented in primitiveEntry, dictionaryEntry, formattingEntry, and dictionaryListEntry.

◆ clone() [2/2]

Foam::autoPtr< Foam::entry > clone ( ) const
virtual

Construct on freestore as copy.

Note: the parent directory is set to dictionary::null

Definition at line 76 of file entry.C.

References dictionary::null.

◆ New() [1/2]

bool New ( dictionary parentDict,
Istream is,
const inputMode  inpMode = inputMode::GLOBAL,
const int  endChar = 0 
)
static

◆ New() [2/2]

Foam::autoPtr< Foam::entry > New ( Istream is)
static

Construct an entry from Istream.

The expected input comprises a keyword followed by a dictionaryEntry or a primitiveEntry.

Example input

*    key1 { ... }   // dictionary input
*    key2 ... ;     // primitive input
* 
Returns
The entry read, or nullptr on error.

Definition at line 456 of file entryIO.C.

References token::BEGIN_BLOCK, IOstream::fatalCheck(), FUNCTION_NAME, dictionary::null, Istream::putBack(), and autoPtr< T >::reset().

Here is the call graph for this function:

◆ resetInputMode()

void resetInputMode ( )
static

Reset the globalInputMode to merge.

Definition at line 54 of file entry.C.

References entry::globalInputMode, and entry::MERGE.

Referenced by dictionary::dictionary(), and Foam::operator>>().

Here is the caller graph for this function:

◆ keyword() [1/2]

◆ keyword() [2/2]

keyType& keyword ( )
inlinenoexcept

Return non-const access to keyword.

Definition at line 239 of file entry.H.

◆ name() [1/2]

virtual const fileName& name ( ) const
pure virtual

Return the entry name.

Implemented in primitiveEntry, and dictionaryEntry.

Referenced by dictionary::add().

Here is the caller graph for this function:

◆ name() [2/2]

virtual fileName& name ( )
pure virtual

Return the entry name for modification.

Implemented in primitiveEntry, and dictionaryEntry.

◆ relativeName()

virtual fileName relativeName ( ) const
pure virtual

Return the entry name relative to the current case.

Implemented in primitiveEntry, and dictionaryEntry.

◆ startLineNumber()

virtual label startLineNumber ( ) const
pure virtual

Return line number of first token in dictionary.

Implemented in primitiveEntry, and dictionaryEntry.

Referenced by dynamicCodeContext::readEntry().

Here is the caller graph for this function:

◆ endLineNumber()

virtual label endLineNumber ( ) const
pure virtual

Return line number of last token in dictionary.

Implemented in primitiveEntry, and dictionaryEntry.

◆ isStream()

virtual bool isStream ( ) const
inlinevirtualnoexcept

Return true if this entry is a stream.

Reimplemented in primitiveEntry.

Definition at line 273 of file entry.H.

Referenced by Constant< Type >::Constant(), exprResultDelayed::exprResultDelayed(), Polynomial< Type >::Polynomial(), genericPatchFieldBase::processEntry(), and Table< Type >::Table().

Here is the caller graph for this function:

◆ stream()

◆ isDict()

virtual bool isDict ( ) const
inlinevirtualnoexcept

◆ dictPtr() [1/2]

virtual const dictionary* dictPtr ( ) const
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 297 of file entry.H.

Referenced by dictionary::cfindScopedDict(), entry::isDict(), and dictionary::makeScopedDict().

Here is the caller graph for this function:

◆ dictPtr() [2/2]

virtual dictionary* dictPtr ( )
inlinevirtualnoexcept

Return non-const pointer to dictionary, if entry is a dictionary.

Return nullptr if the entry is not a dictionary.

Reimplemented in dictionaryEntry.

Definition at line 307 of file entry.H.

◆ dict() [1/2]

◆ dict() [2/2]

virtual dictionary& dict ( )
pure virtual

Return non-const access to dictionary, if entry is a dictionary.

Implemented in primitiveEntry, and dictionaryEntry.

◆ checkITstream()

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 103 of file entry.C.

References JobInfo::constructed, Foam::endl(), 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().

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

◆ get()

T get ( ) const
inline

Get a T from the stream, FatalIOError if the number of tokens is incorrect.

Definition at line 338 of file entry.H.

References Foam::T().

Referenced by Foam::getOrAdd(), Enum< preconditioners >::getOrDefault(), and Enum< preconditioners >::readEntry().

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

◆ readEntry()

void readEntry ( T val) const
inline

Assign to T val, FatalIOError if the number of tokens is incorrect.

Parameters
valthe value to read into

Definition at line 353 of file entry.H.

References entry::checkITstream(), and entry::stream().

Referenced by dynamicCodeContext::readEntry().

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

◆ getCheck()

T getCheck ( const Predicate &  pred) const
inline

Get a T from the stream, FatalIOError if the number of tokens is incorrect.

Parameters
predthe value check predicate

Definition at line 369 of file entry.H.

References Foam::T().

Here is the call graph for this function:

◆ readCheck()

void readCheck ( T val,
const Predicate &  pred 
) const
inline

Assign to T val, FatalIOError if the number of tokens is incorrect.

Parameters
valthe value to read into
predthe value check predicate

Definition at line 385 of file entry.H.

References entry::checkITstream(), and entry::stream().

Here is the call graph for this function:

◆ write()

virtual void write ( Ostream os) const
pure virtual

◆ operator=()

void operator= ( const entry e)

Definition at line 179 of file entry.C.

References Foam::constant::electromagnetic::e.

◆ operator==()

bool operator== ( const entry e) const

Definition at line 190 of file entry.C.

References Foam::constant::electromagnetic::e, and StringStreamAllocator< StreamType >::str().

Here is the call graph for this function:

◆ operator!=()

bool operator!= ( const entry e) const

Definition at line 213 of file entry.C.

References Foam::constant::electromagnetic::e, and Foam::operator==().

Here is the call graph for this function:

Friends And Related Function Documentation

◆ operator<<

Ostream& operator<< ( Ostream os,
const entry e 
)
friend

Member Data Documentation

◆ disableFunctionEntries

int disableFunctionEntries
static

Enable or disable use of function entries and variable expansions.

Definition at line 139 of file entry.H.

Referenced by entry::New().

◆ globalInputMode

Foam::entry::inputMode globalInputMode = inputMode::MERGE
static

The current global input-mode.

Definition at line 144 of file entry.H.

Referenced by entry::resetInputMode().


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