ALib C++ Library
Library Version: 2412 R0
Documentation generated by doxygen
Loading...
Searching...
No Matches
LoxImpl Struct Reference

Description:

Implementation struct for class Lox following the Pimpl Idiom .

Definition at line 109 of file loxpimpl.cpp.

Collaboration diagram for LoxImpl:
[legend]

Public Field Index:

int AcquirementsCount
 Counts the number of nested (recursive) acquirements.
 
monomem::Snapshot beforeLox
 Snapshot taken before embedding the lox in the monoAllocator.
 
integer CntLogCalls =0
 
Domaindomains
 
List< MonoAllocator, DomainSubstitutionRuledomainSubstitutions
 The list of domain substitution rules.
 
DomaininternalDomains
 The root domain for internal Log Domains.
 
StdVectorMono< BoxesMA * > internalLogables
 A list of a list of logables used for (recursive) internal logging.
 
integer internalLogRecursionCounter = 0
 The recursion counter for internal logging.
 
threads::RecursiveLock Lock
 A mutex to control parallel access.
 
StdVectorMono< BoxesMA * > logableContainers
 A list of a list of logables used for (recursive) logging.
 
bool loggerAddedSinceLastDebugState =false
 Flag used with configuration variable LOXNAME_DUMP_STATE_ON_EXIT.
 
integer maxDomainPathLength
 Used for tabular output of logger lists.
 
integer maxLoggerNameLength =0
 Used for tabular output of logger lists.
 
MonoAllocatormonoAllocator
 The self contained monotonic allocator, that also contains this struct itself.
 
const NString noKeyHashKey = "$"
 A key value used in stores if no key is given (global object).
 
bool oneTimeWarningCircularDS =false
 Flag if a warning on circular rule detection was logged.
 
PoolAllocator poolAllocator
 A pool allocator that uses monoAllocator as its source.
 
ScopeStore< NString, true > scopeDomains
 Scope Domains.
 
ScopeInfo scopeInfo
 Information about the source code, method, thread, etc. invoking a log call.
 
ScopeStore< SSMap< Box > *, false > scopeLogData
 Log data store.
 
ScopeStore< SSMap< int > *, false > scopeLogOnce
 Log once counters.
 
ScopeStore< PrefixLogable *, true > scopePrefixes
 Prefix logables store.
 

Public Method Index:

 LoxImpl (MonoAllocator *ma, const NString &name)
 
 ~LoxImpl ()
 Destructor.
 
int CountAcquirements () const noexcept
 
template<typename T >
void deletePO (T *o)
 
template<typename T , typename... TArgs>
T * newPO (TArgs &&... args)
 

Field Details:

◆ AcquirementsCount

int AcquirementsCount

Counts the number of nested (recursive) acquirements.

Definition at line 126 of file loxpimpl.cpp.

◆ beforeLox

monomem::Snapshot beforeLox

Snapshot taken before embedding the lox in the monoAllocator.

Definition at line 118 of file loxpimpl.cpp.

◆ CntLogCalls

integer CntLogCalls =0

A counter for the quantity of calls. The count includes logs that were suppressed by disabled Log Domain and those suppressed by the optional log condition parameter.

Definition at line 130 of file loxpimpl.cpp.

◆ domains

Domain* domains

The root domain "/". All registered domains become a sub domain of this root. If a Sub-Log Domain's Verbosity is not explicitly set, such sub domain inherits the verbosity of its parent.

Definition at line 147 of file loxpimpl.cpp.

◆ domainSubstitutions

List< MonoAllocator, DomainSubstitutionRule> domainSubstitutions

The list of domain substitution rules.

Definition at line 176 of file loxpimpl.cpp.

◆ internalDomains

Domain* internalDomains

The root domain for internal Log Domains.

Definition at line 150 of file loxpimpl.cpp.

◆ internalLogables

StdVectorMono<BoxesMA*> internalLogables

A list of a list of logables used for (recursive) internal logging.

Definition at line 136 of file loxpimpl.cpp.

◆ internalLogRecursionCounter

integer internalLogRecursionCounter = 0

The recursion counter for internal logging.

Definition at line 139 of file loxpimpl.cpp.

◆ Lock

A mutex to control parallel access.

Definition at line 122 of file loxpimpl.cpp.

◆ logableContainers

StdVectorMono<BoxesMA*> logableContainers

A list of a list of logables used for (recursive) logging.

Definition at line 133 of file loxpimpl.cpp.

◆ loggerAddedSinceLastDebugState

bool loggerAddedSinceLastDebugState =false

Flag used with configuration variable LOXNAME_DUMP_STATE_ON_EXIT.

Definition at line 182 of file loxpimpl.cpp.

◆ maxDomainPathLength

integer maxDomainPathLength

Used for tabular output of logger lists.

Definition at line 168 of file loxpimpl.cpp.

◆ maxLoggerNameLength

integer maxLoggerNameLength =0

Used for tabular output of logger lists.

Definition at line 165 of file loxpimpl.cpp.

◆ monoAllocator

MonoAllocator& monoAllocator

The self contained monotonic allocator, that also contains this struct itself.

Definition at line 112 of file loxpimpl.cpp.

◆ noKeyHashKey

const NString noKeyHashKey = "$"

A key value used in stores if no key is given (global object).

Definition at line 171 of file loxpimpl.cpp.

◆ oneTimeWarningCircularDS

bool oneTimeWarningCircularDS =false

Flag if a warning on circular rule detection was logged.

Definition at line 179 of file loxpimpl.cpp.

◆ poolAllocator

PoolAllocator poolAllocator

A pool allocator that uses monoAllocator as its source.

Definition at line 115 of file loxpimpl.cpp.

◆ scopeDomains

ScopeStore<NString , true > scopeDomains

Scope Domains.

Definition at line 153 of file loxpimpl.cpp.

◆ scopeInfo

ScopeInfo scopeInfo

Information about the source code, method, thread, etc. invoking a log call.

Definition at line 142 of file loxpimpl.cpp.

◆ scopeLogData

ScopeStore<SSMap<Box>* , false> scopeLogData

Log data store.

Definition at line 162 of file loxpimpl.cpp.

◆ scopeLogOnce

ScopeStore<SSMap<int>* , false> scopeLogOnce

Log once counters.

Definition at line 159 of file loxpimpl.cpp.

◆ scopePrefixes

ScopeStore<PrefixLogable*, true > scopePrefixes

Prefix logables store.

Definition at line 156 of file loxpimpl.cpp.

Constructor(s) / Destructor Details:

◆ LoxImpl()

LoxImpl ( MonoAllocator * ma,
const NString & name )
inline

Constructor.

Parameters
maThe externally created, self-contained monotonic allocator, that also contains this instance.
nameThe lox's name.

Definition at line 188 of file loxpimpl.cpp.

Here is the call graph for this function:

◆ ~LoxImpl()

~LoxImpl ( )
inline

Destructor.

Definition at line 206 of file loxpimpl.cpp.

Here is the call graph for this function:

Method Details:

◆ CountAcquirements()

int CountAcquirements ( ) const
inlinenoexcept

Returns the number of (recursive) acquirements of this Lox. If greater than 1, this is either recursive logging or a user has explicitly acquired this lox repeatedly (which is not recommended to do).

Returns
The number of acquirements. *‍/

Definition at line 231 of file loxpimpl.cpp.

◆ deletePO()

template<typename T >
void deletePO ( T * o)
inline

Shortcut to delete arbitrary objects in poolAllocator.

Template Parameters
TThe type to allocate. Deduced by the compiler.
Parameters
oThe allocated object.

Definition at line 246 of file loxpimpl.cpp.

◆ newPO()

template<typename T , typename... TArgs>
T * newPO ( TArgs &&... args)
inline

Shortcut to allocate arbitrary objects in poolAllocator.

Template Parameters
TThe type to allocate.
TArgsTypes of variadic parameters given with parameter args. Deduced by the compiler.
Parameters
argsVariadic parameters to be forwarded to the constructor of type T.
Returns
The allocated object.

Definition at line 240 of file loxpimpl.cpp.


The documentation for this struct was generated from the following file: