Loading...
Searching...
No Matches
dynamicCodeContext Class Reference

Encapsulation of dynamic code dictionaries. More...

#include <dynamicCodeContext.H>

Public Member Functions

 dynamicCodeContext ()
 Default construct.
 dynamicCodeContext (const dictionary &dict)
 Construct from a dictionary.
bool good () const noexcept
 Not using dummy code context (dictionary::null).
bool valid () const noexcept
 Same as good().
void setCodeContext (const dictionary &dict)
 Set code context from a dictionary.
const dictionarydict () const noexcept
 Return the parent dictionary context.
const stringoptions () const noexcept
 The code options (Make/options).
const stringlibs () const noexcept
 The code libs (LIB_LIBS).
const stringinclude () const noexcept
 The code includes.
const stringlocalCode () const noexcept
 The local (file-scope) code.
const stringcode () const noexcept
 The code.
const SHA1sha1 () const noexcept
 The SHA1 calculated from options, libs, include, code, etc.
void append (const std::string &str)
 Add content to SHA1 hashing.
const entryfindEntry (const word &key) const
 Locate literal dictionary entry, nullptr if not found.
bool readEntry (const word &key, string &str, bool mandatory=true, bool withLineNum=true)
 Read string entry from context dictionary append content to SHA1 hashing and add line number etc.
bool readIfPresent (const word &key, string &str, bool withLineNum=true)
 Read optional string entry from context dictionary, append content to SHA1 hashing and add line number etc.
 operator const dictionary & () const noexcept
 Cast to dictionary.

Static Public Member Functions

static void inplaceExpand (string &str, const dictionary &dict)
 Cleanup string and expand with dictionary parameters.
static unsigned addLineDirective (string &code, label lineNum, const string &file)
 Prefix a #line directive to code.
static unsigned addLineDirective (string &code, label lineNum, const dictionary &dict)
 Prefix a #line directive to code.

Detailed Description

Encapsulation of dynamic code dictionaries.

Source files

Definition at line 49 of file dynamicCodeContext.H.

Constructor & Destructor Documentation

◆ dynamicCodeContext() [1/2]

dynamicCodeContext ( )

Default construct.

Definition at line 73 of file dynamicCodeContext.C.

Referenced by dynamicCodeContext().

Here is the caller graph for this function:

◆ dynamicCodeContext() [2/2]

dynamicCodeContext ( const dictionary & dict)
explicit

Construct from a dictionary.

Definition at line 79 of file dynamicCodeContext.C.

References dict(), dynamicCodeContext(), and setCodeContext().

Here is the call graph for this function:

Member Function Documentation

◆ inplaceExpand()

void inplaceExpand ( string & str,
const dictionary & dict )
static

Cleanup string and expand with dictionary parameters.

Definition at line 27 of file dynamicCodeContext.C.

References dict(), Foam::stringOps::inplaceExpand(), and Foam::stringOps::inplaceTrim().

Referenced by readEntry().

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

◆ addLineDirective() [1/2]

unsigned addLineDirective ( string & code,
label lineNum,
const string & file )
static

Prefix a #line directive to code.

The input lineNum is 0-based. Is a no-op if any of the arguments are invalid (lineNum is negative, code or file are empty)

Returns
The change in string length caused by the directive. This can potentially be used to recover the substring portions.

Definition at line 38 of file dynamicCodeContext.C.

References code(), and Foam::name().

Referenced by addLineDirective(), and readEntry().

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

◆ addLineDirective() [2/2]

unsigned addLineDirective ( string & code,
label lineNum,
const dictionary & dict )
static

Prefix a #line directive to code.

The name of the dictionary is used for the 'file' name.

Definition at line 60 of file dynamicCodeContext.C.

References addLineDirective(), code(), and dict().

Here is the call graph for this function:

◆ good()

bool good ( ) const
noexcept

Not using dummy code context (dictionary::null).

Definition at line 89 of file dynamicCodeContext.C.

References Foam::noexcept, and dictionary::null.

Referenced by valid().

Here is the caller graph for this function:

◆ valid()

bool valid ( ) const
inlinenoexcept

Same as good().

Definition at line 151 of file dynamicCodeContext.H.

References good(), and Foam::noexcept.

Here is the call graph for this function:

◆ setCodeContext()

void setCodeContext ( const dictionary & dict)

Set code context from a dictionary.

Definition at line 156 of file dynamicCodeContext.C.

References dict(), and readIfPresent().

Referenced by dynamicCodeContext().

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

◆ dict()

const dictionary & dict ( ) const
inlinenoexcept

Return the parent dictionary context.

Definition at line 161 of file dynamicCodeContext.H.

References Foam::noexcept.

Referenced by addLineDirective(), dynamicCodeContext(), codeStream::getFunction(), inplaceExpand(), readEntry(), setCodeContext(), and codedBase::updateLibrary().

Here is the caller graph for this function:

◆ options()

const string & options ( ) const
inlinenoexcept

◆ libs()

const string & libs ( ) const
inlinenoexcept

◆ include()

const string & include ( ) const
inlinenoexcept

The code includes.

Definition at line 185 of file dynamicCodeContext.H.

References Foam::noexcept.

Referenced by dynamicCode::setFilterContext().

Here is the caller graph for this function:

◆ localCode()

const string & localCode ( ) const
inlinenoexcept

The local (file-scope) code.

Definition at line 193 of file dynamicCodeContext.H.

References Foam::noexcept.

Referenced by dynamicCode::setFilterContext().

Here is the caller graph for this function:

◆ code()

const string & code ( ) const
inlinenoexcept

The code.

Definition at line 201 of file dynamicCodeContext.H.

References Foam::noexcept.

Referenced by addLineDirective(), addLineDirective(), CodedFunction1< Type >::prepare(), CodedField< Type >::prepare(), and dynamicCode::setFilterContext().

Here is the caller graph for this function:

◆ sha1()

◆ append()

void append ( const std::string & str)
inline

Add content to SHA1 hashing.

Definition at line 217 of file dynamicCodeContext.H.

◆ findEntry()

const Foam::entry * findEntry ( const word & key) const

Locate literal dictionary entry, nullptr if not found.

Definition at line 95 of file dynamicCodeContext.C.

References dict, dictionary::findEntry(), and keyType::LITERAL.

Here is the call graph for this function:

◆ readEntry()

bool readEntry ( const word & key,
string & str,
bool mandatory = true,
bool withLineNum = true )

Read string entry from context dictionary append content to SHA1 hashing and add line number etc.

The string is cleared before reading.

Definition at line 101 of file dynamicCodeContext.C.

References addLineDirective(), dict, dict(), Foam::exit(), Foam::FatalIOError, FatalIOErrorInFunction, inplaceExpand(), keyType::LITERAL, Foam::nl, entry::readEntry(), and entry::startLineNumber().

Referenced by readIfPresent().

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

◆ readIfPresent()

bool readIfPresent ( const word & key,
string & str,
bool withLineNum = true )

Read optional string entry from context dictionary, append content to SHA1 hashing and add line number etc.

The string is cleared before reading.

Definition at line 145 of file dynamicCodeContext.C.

References readEntry().

Here is the call graph for this function:

◆ operator const dictionary &()

operator const dictionary & ( ) const
inlinenoexcept

Cast to dictionary.

Definition at line 265 of file dynamicCodeContext.H.


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