ALib C++ Framework
by
Library Version: 2511 R0
Documentation generated by doxygen
Loading...
Searching...
No Matches
alib::lox::detail::LoxImpl Struct Reference

Description:

Implementation struct for class Lox following the Pimpl Idiom .

Definition at line 132 of file loxpimpl.cpp.

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
ListMA< DomainSubstitutionRuledomainSubstitutions
 The list of domain substitution rules.
DomaininternalDomains
 The root domain for internal Log Domains.
StdVectorMA< 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.
StdVectorMA< 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 alib::lox::detail::LoxImpl::AcquirementsCount

Counts the number of nested (recursive) acquirements.

Definition at line 148 of file loxpimpl.cpp.

◆ beforeLox

monomem::Snapshot alib::lox::detail::LoxImpl::beforeLox

Snapshot taken before embedding the lox in the monoAllocator.

Definition at line 140 of file loxpimpl.cpp.

◆ CntLogCalls

integer alib::lox::detail::LoxImpl::CntLogCalls =0

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

Definition at line 152 of file loxpimpl.cpp.

◆ domains

Domain* alib::lox::detail::LoxImpl::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 169 of file loxpimpl.cpp.

◆ domainSubstitutions

ListMA<DomainSubstitutionRule> alib::lox::detail::LoxImpl::domainSubstitutions

The list of domain substitution rules.

Definition at line 197 of file loxpimpl.cpp.

◆ internalDomains

Domain* alib::lox::detail::LoxImpl::internalDomains

The root domain for internal Log Domains.

Definition at line 172 of file loxpimpl.cpp.

◆ internalLogables

StdVectorMA<BoxesMA*> alib::lox::detail::LoxImpl::internalLogables

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

Definition at line 158 of file loxpimpl.cpp.

◆ internalLogRecursionCounter

integer alib::lox::detail::LoxImpl::internalLogRecursionCounter = 0

The recursion counter for internal logging.

Definition at line 161 of file loxpimpl.cpp.

◆ Lock

threads::RecursiveLock alib::lox::detail::LoxImpl::Lock

A mutex to control parallel access.

Definition at line 144 of file loxpimpl.cpp.

◆ logableContainers

StdVectorMA<BoxesMA*> alib::lox::detail::LoxImpl::logableContainers

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

Definition at line 155 of file loxpimpl.cpp.

◆ loggerAddedSinceLastDebugState

bool alib::lox::detail::LoxImpl::loggerAddedSinceLastDebugState =false

Flag used with configuration variable LOXNAME_DUMP_STATE_ON_EXIT.

Definition at line 203 of file loxpimpl.cpp.

◆ maxDomainPathLength

integer alib::lox::detail::LoxImpl::maxDomainPathLength

Used for tabular output of logger lists.

Definition at line 190 of file loxpimpl.cpp.

◆ maxLoggerNameLength

integer alib::lox::detail::LoxImpl::maxLoggerNameLength =0

Used for tabular output of logger lists.

Definition at line 187 of file loxpimpl.cpp.

◆ monoAllocator

MonoAllocator& alib::lox::detail::LoxImpl::monoAllocator

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

Definition at line 134 of file loxpimpl.cpp.

◆ noKeyHashKey

const NString alib::lox::detail::LoxImpl::noKeyHashKey = "$"

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

Definition at line 193 of file loxpimpl.cpp.

◆ oneTimeWarningCircularDS

bool alib::lox::detail::LoxImpl::oneTimeWarningCircularDS =false

Flag if a warning on circular rule detection was logged.

Definition at line 200 of file loxpimpl.cpp.

◆ poolAllocator

PoolAllocator alib::lox::detail::LoxImpl::poolAllocator

A pool allocator that uses monoAllocator as its source.

Definition at line 137 of file loxpimpl.cpp.

◆ scopeDomains

ScopeStore<NString , true > alib::lox::detail::LoxImpl::scopeDomains

Scope Domains.

Definition at line 175 of file loxpimpl.cpp.

◆ scopeInfo

ScopeInfo alib::lox::detail::LoxImpl::scopeInfo

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

Definition at line 164 of file loxpimpl.cpp.

◆ scopeLogData

ScopeStore<SSMap<Box>* , false> alib::lox::detail::LoxImpl::scopeLogData

Log data store.

Definition at line 184 of file loxpimpl.cpp.

◆ scopeLogOnce

ScopeStore<SSMap<int>* , false> alib::lox::detail::LoxImpl::scopeLogOnce

Log once counters.

Definition at line 181 of file loxpimpl.cpp.

◆ scopePrefixes

ScopeStore<PrefixLogable*, true > alib::lox::detail::LoxImpl::scopePrefixes

Prefix logables store.

Definition at line 178 of file loxpimpl.cpp.

Constructor(s) / Destructor Details:

◆ LoxImpl()

alib::lox::detail::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 209 of file loxpimpl.cpp.

◆ ~LoxImpl()

alib::lox::detail::LoxImpl::~LoxImpl ( )
inline

Destructor.

Definition at line 227 of file loxpimpl.cpp.

Method Details:

◆ CountAcquirements()

int alib::lox::detail::LoxImpl::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 248 of file loxpimpl.cpp.

◆ deletePO()

template<typename T>
void alib::lox::detail::LoxImpl::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 263 of file loxpimpl.cpp.

◆ newPO()

template<typename T, typename... TArgs>
T * alib::lox::detail::LoxImpl::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 257 of file loxpimpl.cpp.


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