Struct that collects static functions that provide the implementation of methods of class Lox. Almost all functions expect a pointer to the hidden implementation type LoxImpl as the first parameter.
Definition at line 26 of file loxpimpl.hpp.
#include <loxpimpl.hpp>
Public Static Method Index: | |
| static void | Acquire (LoxImpl *impl, const lang::CallerInfo &ci) |
| static BoxesMA & | acquireInternalLogables (LoxImpl *impl) |
| static int | checkScopeInformation (LoxImpl *impl, Scope &scope, const NString &internalDomain) |
| static LoxImpl * | Construct (const NString &name) |
| static MonoAllocator & | DbgGetMonoAllocator (LoxImpl *impl) |
| static void | Destruct (LoxImpl *lox) |
| static void | dumpStateOnLoggerRemoval (LoxImpl *impl) |
| static void | Entry (LoxImpl *impl, const NString &domain, Verbosity verbosity) |
| static void | entryDetectDomainImpl (LoxImpl *impl, Verbosity verbosity) |
| static detail::Domain * | evaluateResultDomain (LoxImpl *impl, const NString &domainPath) |
| static detail::Domain * | findDomain (LoxImpl *impl, detail::Domain &domainSystem, NString domainPath) |
| static void | getAllVerbosities (LoxImpl *impl, variables::Variable &variable, detail::Logger *logger, detail::Domain &dom) |
| static void | getDomainPrefixFromConfig (LoxImpl *impl, detail::Domain &dom) |
| static threads::RecursiveLock & | getLock (LoxImpl *impl) |
| static BoxesMA & | GetLogableContainer (LoxImpl *impl) |
| static integer & | GetLogCounter (LoxImpl *impl) |
| static detail::Logger * | GetLogger (LoxImpl *impl, const NString &loggerName) |
| static const NString & | GetName (LoxImpl *impl) |
| static void | GetState (LoxImpl *impl, NAString &buf, StateInfo flags) |
| static Verbosity | GetVerbosity (LoxImpl *impl, const NString &domain, NAString *resultDomain) |
| static void | getVerbosityFromConfig (LoxImpl *impl, variables::Variable &variable, detail::Logger *logger, detail::Domain &dom) |
| static void | IncreaseLogCounter (LoxImpl *impl) |
| static void | init (LoxImpl *impl) |
| static int | IsActive (LoxImpl *impl, Verbosity verbosity, const NString &domain, NAString *resultDomain) |
| static bool | isThreadRelatedScope (LoxImpl *impl, Scope scope) |
| static void | log (LoxImpl *impl, detail::Domain *dom, Verbosity verbosity, BoxesMA &logables, lang::Inclusion prefixes) |
| static void | logInternal (LoxImpl *impl, Verbosity verbosity, const NString &subDomain, BoxesMA &msg) |
| static void | logInternal (LoxImpl *impl, Verbosity verbosity, const NString &subDomain, const NString &msg) |
| static void | MapThreadName (LoxImpl *impl, const String &threadName, threads::ThreadID id) |
| static void | once (LoxImpl *impl, const NString &domain, Verbosity verbosity, const Box &logables, const String &pGroup, Scope scope, int quantity) |
| static void | Release (LoxImpl *impl) |
| static detail::Logger * | RemoveLogger (LoxImpl *impl, const NString &loggerName) |
| static bool | RemoveLogger (LoxImpl *impl, detail::Logger *logger) |
| static void | RemoveThreadDomain (LoxImpl *impl, const NString &scopeDomain, Scope scope, threads::Thread *thread) |
| static void | Reset (LoxImpl *impl) |
| static Box | retrieve (LoxImpl *impl, const NString &pKey, Scope scope) |
| static void | SetDomain (LoxImpl *impl, const NString &scopeDomain, Scope scope, threads::Thread *thread) |
| static void | setDomain (LoxImpl *impl, const NString &scopeDomain, Scope scope, bool removeNTRSD, threads::Thread *thread) |
| static void | SetDomainSubstitutionRule (LoxImpl *impl, const NString &domainPath, const NString &replacement) |
| static void | SetFileNameCacheCapacity (LoxImpl *impl, integer numberOfLists, integer entriesPerList) |
| static void | SetPrefix (LoxImpl *impl, const Box &prefix, const NString &domain, lang::Inclusion otherPLs) |
| static void | setPrefix (LoxImpl *impl, const Box &prefix, Scope scope, threads::Thread *thread) |
| static void | SetSourcePathTrimRule (LoxImpl *impl, const NCString &path, lang::Inclusion includeString, int trimOffset, lang::Case sensitivity, const NString &trimReplacement, lang::Reach reach, Priority priority) |
| static void | SetStartTime (LoxImpl *impl, const FILETIME &startTime, const NString &loggerName) |
| static void | SetStartTime (LoxImpl *impl, Ticks startTime, const NString &loggerName) |
| static void | SetStartTime (LoxImpl *impl, time_t startTime, const NString &loggerName) |
| static void | SetVerbosity (LoxImpl *impl, const NString &loggerName, Verbosity verbosity, const NString &domain, Priority priority) |
| static void | SetVerbosity (LoxImpl *impl, detail::Logger *logger, Verbosity verbosity, const NString &domain, Priority priority) |
| static void | SetVerbosityExport (LoxImpl *impl, const NString &loggerName, bool value, Priority priority=Priority::Standard) |
| static void | SetVerbosityExport (LoxImpl *impl, detail::Logger *logger, bool value, Priority priority=Priority::Standard) |
| static void | State (LoxImpl *impl, const NString &domain, Verbosity verbosity, const String &headLine, StateInfo flags) |
| static void | store (LoxImpl *impl, const Box &data, const NString &pKey, Scope scope) |
| static void | writeVerbositiesOnLoggerRemoval (LoxImpl *impl, Logger *logger) |
Public Method Index: | |
| void | Reset () |
|
static |
Implementation of the method void Acquire(const lang::CallerInfo&) .
| impl | The implementation struct of the Lox. |
| ci | The source location that the call is placed at. Usually macro ALIB_CALLER is passed here. |
Definition at line 253 of file loxpimpl.cpp.
Returns a reference to a list of boxes to be used by internal logging. Each invocation has to be followed by an invocation to logInternal which releases the logables.
| impl | The implementation struct of the Lox. |
Definition at line 1875 of file loxpimpl.cpp.
|
static |
Checks if given scope needs information that is not available. In addition, the in/out parameter scope is changed to Path, in case a level was added.
| impl | The implementation struct of the Lox. | |
| [in,out] | scope | A reference to the scope that is to be checked (and eventually modified. |
| internalDomain | The internal subdomain to log any error/warning into. |
-1 else. Definition at line 1730 of file loxpimpl.cpp.
Implementation of the constructor the constructor of class Lox.
| name | The name of the Lox. Will be copied and converted to upper case. |
Lox. Definition at line 225 of file loxpimpl.cpp.
|
static |
Implementation of the method MonoAllocator & DbgGetMonoAllocator() .
| impl | The implementation struct of the Lox. |
Lox. Definition at line 345 of file loxpimpl.cpp.
|
static |
Destructs a lox.
| lox | The Lox that is to be destructed. |
Definition at line 235 of file loxpimpl.cpp.
|
static |
Implements functionality for configuration variable LOXNAME_DUMP_STATE_ON_EXIT. Is called when a logger is removed.
| impl | The implementation struct of the Lox. |
Definition at line 452 of file loxpimpl.cpp.
|
static |
Implementation of the method void Entry(const NString&, Verbosity) .
| impl | The implementation struct of the Lox. |
| domain | The domain. |
| verbosity | The verbosity. |
Definition at line 1283 of file loxpimpl.cpp.
Implementation of the method void EntryDetectDomain(Verbosity, BoxedObjects&& ...) .
| impl | The implementation struct of the Lox. |
| verbosity | The verbosity. |
Definition at line 1368 of file loxpimpl.cpp.
|
static |
Assembles the resulting domain from the given domainPath and the Scope Domain paths (see SetDomain) according to the scope identified by scopeInfo. The resulting full domain string is assembled from inner to outer scope. If domainPath, respectively as soon as any of the Scope Domain's paths start with the character defined with Domain::Separator, the evaluation is stopped (the path is interpreted as absolute).
| impl | The implementation struct of the Lox. |
| domainPath | The domain path. If starting with the character defined with Domain::Separator, no scope domains are applied. |
Definition at line 1411 of file loxpimpl.cpp.
|
static |
Invokes Find on the given domain and logs internal message when the domain was not known before.
| impl | The implementation struct of the Lox. |
| domainSystem | The domain system. Either the standard or the internal one. |
| domainPath | The domain path. |
Definition at line 1568 of file loxpimpl.cpp.
|
static |
Reads the verbosity for the given logger and domain from the ALib variable system. This internal method is used when a new logger is added. Walks recursively for all existing domains.
| impl | The implementation struct of the Lox. |
| variable | The loaded variable with verbosity information. |
| logger | The logger to set the verbosity for. |
| dom | The domain to set the verbosity for. |
Definition at line 1558 of file loxpimpl.cpp.
|
static |
Reads a prefix string from the ALib variable system. This internal method is used when a new domain is created,
| impl | The implementation struct of the Lox. |
| dom | The domain to set the verbosity for. |
Definition at line 1495 of file loxpimpl.cpp.
|
static |
Returns the internal lock.
| impl | The implementation struct of the Lox. |
RecursiveLock of this Lox. Definition at line 246 of file loxpimpl.cpp.
Implementation of the method BoxesMA & GetLogableContainer() .
| impl | The implementation struct of the Lox. |
Definition at line 1272 of file loxpimpl.cpp.
Implementation of the method integer & GetLogCounter() .
| impl | The implementation struct of the Lox. |
Definition at line 243 of file loxpimpl.cpp.
Implementation of the method detail::Logger * GetLogger(const NString&) .
| impl | The implementation struct of the Lox. |
| loggerName | The name of the Logger to search for (case-insensitive). |
Definition at line 371 of file loxpimpl.cpp.
Implementation of the method const NString & GetName() .
| impl | The implementation struct of the Lox. |
Definition at line 241 of file loxpimpl.cpp.
Implementation of the method void GetState(NAString&, StateInfo) .
| impl | The implementation struct of the Lox. |
| buf | The target string. |
| flags | Bits that define which state information is collected. |
Definition at line 1951 of file loxpimpl.cpp.
|
static |
Implementation of the method Verbosity GetVerbosity(const NString&, NAString*) .
| impl | The implementation struct of the Lox. |
| domain | The log domain. All rules for resolving the effective log domain apply as with normal log statements. |
| resultDomain | An optional pointer to an AString. If given, the resulting domain is appended to the string. (The domain that results from the optional domain and all ALox rules that apply at the place of invocation). |
Definition at line 1335 of file loxpimpl.cpp.
|
static |
Reads the verbosity for the given logger and domain from the ALib variable system. This internal method is used in two occasions:
The variable is already read and found in an internal instance.
| impl | The implementation struct of the Lox. |
| variable | The loaded variable with verbosity information. |
| logger | The logger to set the verbosity for. |
| dom | The domain to set the verbosity for. |
Definition at line 1443 of file loxpimpl.cpp.
|
static |
Increases the internal log counter of impl.
| impl | The implementation struct of the Lox. |
Definition at line 1366 of file loxpimpl.cpp.
|
static |
Used on construction and with Reset.
| impl | The implementation struct of the Lox. |
Definition at line 272 of file loxpimpl.cpp.
|
static |
Implementation of the method int IsActive(Verbosity, const NString&, NAString*) .
| impl | The implementation struct of the Lox. |
| verbosity | The verbosity to query for activity. |
| domain | The log domain. All rules for resolving the effective log domain apply as with normal log statements. |
| resultDomain | An optional pointer to an AString. If given, the resulting domain is appended to the string. (The domain that results from the optional domain and all ALox rules that apply at the place of invocation). |
Definition at line 1308 of file loxpimpl.cpp.
Checks if given scope is thread-related.
| impl | The implementation struct of the Lox. |
| scope | The scope that is to be checked. |
true if scope is thread-related, false else. Definition at line 1749 of file loxpimpl.cpp.
|
static |
This method is looping over the Loggers, checking their verbosity against the given one, and, if they match, invoke the log method of the Logger. With the first logger identified to be active, the Prefix Objects get collected from the scope store.
| impl | The implementation struct of the Lox. |
| dom | The domain to log on |
| verbosity | The verbosity. |
| logables | The objects to log. |
| prefixes | Denotes if prefixes should be included or not. |
Definition at line 1778 of file loxpimpl.cpp.
|
static |
Logs an internal error message using the internal domain tree as defined in Lox::InternalDomains.
| impl | The implementation struct of the Lox. |
| verbosity | The verbosity. |
| subDomain | The subdomain of the internal domain to log into. |
| msg | The message. |
Definition at line 1884 of file loxpimpl.cpp.
|
static |
Overloaded version accepting a string to log.
| impl | The implementation struct of the Lox. |
| verbosity | The verbosity. |
| subDomain | The subdomain of the internal domain to log into. |
| msg | The message. |
Definition at line 1891 of file loxpimpl.cpp.
|
static |
Implementation of the method void MapThreadName(const String&, threads::ThreadID) .
| impl | The implementation struct of the Lox. |
| threadName | The name of the thread as it should be displayed in the logs. |
| id | The thread ID. |
Definition at line 1039 of file loxpimpl.cpp.
|
static |
Internal method serving public interface Lox::Once.
| impl | The implementation struct of the Lox. |
| domain | Optional Log Domain which is combined with Scope Domains set for the Scope of invocation. |
| verbosity | The verbosity of the Log Statement (if performed). |
| logables | The objects to log (Multiple objects may be provided within container class Boxes.) |
| pGroup | The optional name of the statement group. If used, all statements that share the same group name are working on the same counter (according to the scope.) If omitted (or empty or nullptr), the counter is bound to the Scope provided. If omitted and scope is Scope::Global, then the counter is associated exclusively with the single Log Statement itself. |
| scope | The Scope that the group or counter is bound to. |
| quantity | The number of logs to be performed. As the name of the method indicates, this defaults to 1. |
Definition at line 1070 of file loxpimpl.cpp.
|
static |
Implementation of the method void Release() .
| impl | The implementation struct of the Lox. |
Definition at line 264 of file loxpimpl.cpp.
Implementation of the method RemoveLogger(const NString&).
| impl | The implementation struct of the Lox. |
| loggerName | The name of the Logger(s) to be removed (case-insensitive). |
nullptr if not found. Definition at line 545 of file loxpimpl.cpp.
|
static |
Implementation of the method RemoveLogger(detail::Logger*).
| impl | The implementation struct of the Lox. |
| logger | The logger to be removed. |
true, if the Logger was found and removed, false otherwise. Definition at line 517 of file loxpimpl.cpp.
|
static |
Implementation of the method void RemoveThreadDomain(const NString&, Scope, threads::Thread*) .
| impl | The implementation struct of the Lox. |
| scopeDomain | The domain path to register. |
| scope | Either Scope::ThreadOuter or Scope::ThreadInner. With other values, an internal error is logged. |
| thread | The thread to set/unset a thread-related Scope Domains for. |
Definition at line 806 of file loxpimpl.cpp.
| void alib::lox::detail::LI::Reset | ( | ) |
Resets this object. Concretely, the following steps are performed:
|
static |
Implementation of the method void Reset() .
| impl | The implementation struct of the Lox. |
Definition at line 315 of file loxpimpl.cpp.
Internal method serving public interface Lox::Retrieve.
| impl | The implementation struct of the Lox. |
| pKey | The key to the data. |
| scope | The Scope that the data is bound to. |
Definition at line 1213 of file loxpimpl.cpp.
|
static |
Implementation of the method SetDomain(const NString&, Scope, threads::Thread*).
| impl | The implementation struct of the Lox. |
| scopeDomain | The domain path to register. |
| scope | Either Scope::ThreadOuter or Scope::ThreadInner. With other values, an internal error is logged. |
| thread | The thread to set/unset a thread-related Scope Domains for. |
Definition at line 361 of file loxpimpl.cpp.
|
static |
Implementation of the interface method fetching all possible parameters.
| impl | The implementation struct of the Lox. |
| scopeDomain | The domain path to register. |
| scope | The scope that the given domain should be registered for. Available Scope definitions are platform/language dependent. |
| removeNTRSD | Used to remove a named thread-related Scope Domain (and is true only when invoked by interface method RemoveThreadDomain. |
| thread | The thread to set/unset a thread-related Scope Domain for. |
Definition at line 735 of file loxpimpl.cpp.
|
static |
Implementation of the method void SetDomainSubstitutionRule(const NString&, const NString&) .
| impl | The implementation struct of the Lox. |
| domainPath | The path to search. Has to start with either '/' or '*'. |
| replacement | The replacement path. |
Definition at line 826 of file loxpimpl.cpp.
|
static |
Implementation of the method void SetFileNameCacheCapacity(integer, integer) .
| impl | The implementation struct of the Lox. |
| numberOfLists | The number of LRU-lists to use. |
| entriesPerList | The maximum length of each cache list. |
Definition at line 341 of file loxpimpl.cpp.
|
static |
Implementation of the method void SetPrefix(const Box&, const NString&, lang::Inclusion) .
| impl | The implementation struct of the Lox. |
| prefix | The Prefix Logable to set. |
| domain | The domain path. Defaults to nullptr, resulting in evaluated Scope Domain path. |
| otherPLs | If set to Inclusion::Exclude, scope-related Prefix Logables are ignored and only domain-related Prefix Logables are passed to the Loggers. |
Definition at line 941 of file loxpimpl.cpp.
|
static |
Implementation of the interface method fetching all possible parameters.
| impl | The implementation struct of the Lox. |
| prefix | The Prefix Logable to set. |
| scope | The scope that the given logable should be registered for. Available Scope definitions are platform/language dependent. |
| thread | The thread to set/unset a thread-related Prefix Logable for. |
Definition at line 885 of file loxpimpl.cpp.
|
static |
Implementation of the method void SetSourcePathTrimRule(const NCString&, lang::Inclusion, int, lang::Case, const NString&, lang::Reach, Priority) .
| impl | The implementation struct of the Lox. |
| path | The path to search for. If not starting with '*', a prefix is searched. |
| includeString | Determines if path should be included in the trimmed path or not. Optional and defaults to Exclude. |
| trimOffset | Adjusts the portion of path that is trimmed. Optional and defaults to 0. |
| sensitivity | Determines if the comparison of path with a source file's path is performed case-sensitive or not. Optional and defaults to Ignore. |
| trimReplacement | Replacement string for trimmed portion of the path. Optional and defaults to NULL_STRING. |
| reach | Denotes whether the rule is applied locally (to this Lox only) or applies to all instances of class Lox. Defaults to Global. |
| priority | The priority of the setting. Defaults to DefaultValues. |
Definition at line 348 of file loxpimpl.cpp.
|
static |
Implementation of the method SetStartTime(const FILETIME&, const NString&).
| impl | The implementation struct of the Lox. |
| startTime | The new start time in system-specific time unit. |
| loggerName | The name of the Logger whose start time is to be set (case insensitive). Defaults to empty string, which indicates that all loggers are to be affected. |
|
static |
Implementation of the method SetStartTime(Ticks, const NString&).
| impl | The implementation struct of the Lox. |
| startTime | Optional parameter with the new start time. Defaults to current time if omitted. |
| loggerName | The name of the Logger(s) whose start time is to be set (case-insensitive). Defaults to nullptr, which indicates that all loggers are to be affected. |
Definition at line 998 of file loxpimpl.cpp.
|
static |
Implementation of the method SetStartTime(Ticks, const NString&).
| impl | The implementation struct of the Lox. |
| startTime | The new start time in system-specific time unit. |
| loggerName | The name of the Logger whose start time is to be set (case insensitive). Defaults to empty string, which indicates that all loggers are to be affected. |
Definition at line 982 of file loxpimpl.cpp.
|
static |
Implementation of the method SetVerbosity.
| impl | The implementation struct of the Lox. |
| loggerName | The logger to be affected, identified by its name (case-insensitive). |
| verbosity | The 'level of verboseness' to be set. |
| domain | The parent (start) domain to be set. The use of absolute paths starting with '/' are recommended. Defaults to root domain "/". |
| priority | The priority of the setting. Defaults to DefaultValues. |
Definition at line 678 of file loxpimpl.cpp.
|
static |
Implementation of the method SetVerbosity.
| impl | The implementation struct of the Lox. |
| logger | The logger to be affected (case-insensitive). |
| verbosity | The 'level of verboseness' to be set. |
| domain | The parent (start) domain to be set. The use of absolute paths starting with '/' are recommended. Defaults to root domain "/". |
| priority | The priority of the setting. Defaults to DefaultValues. |
Definition at line 580 of file loxpimpl.cpp.
|
static |
Implementation of the method SetVerbosityExport.
| impl | The implementation struct of the Lox. |
| loggerName | The logger to be affected, identified by its name (case-insensitive). |
| value | The value to set. |
| priority | The priority of the setting. Defaults to Standard. |
Definition at line 726 of file loxpimpl.cpp.
|
static |
Implementation of the method SetVerbosityExport.
| impl | The implementation struct of the Lox. |
| logger | The logger to be affected. |
| value | The value to set. |
| priority | The priority of the setting. Defaults to Standard. |
Definition at line 710 of file loxpimpl.cpp.
|
static |
Implementation of the method void State(const NString&, Verbosity, const String&, StateInfo) .
| impl | The implementation struct of the Lox. |
| domain | Optional Log Domain which is combined with Scope Domains set for the Scope of invocation. |
| verbosity | The verbosity. |
| headLine | If given, a separated headline will be logged at first place. |
| flags | Flag bits that define which state information is logged. |
Definition at line 1254 of file loxpimpl.cpp.
|
static |
Internal method serving public interface Lox::Store.
| impl | The implementation struct of the Lox. |
| data | The data object to store. In C++, has to be heap allocated and will be deleted by this Lox when overwritten or this lox is deleted. |
| pKey | The key to the data. |
| scope | The Scope that the data is bound to. |
Definition at line 1143 of file loxpimpl.cpp.
|
static |
Implements functionality for configuration variable LOXNAME_LOGGERNAME_VERBOSITY. Is called when a logger is removed.
| impl | The implementation struct of the Lox. |
| logger | The logger to write the verbosity for. |
Definition at line 401 of file loxpimpl.cpp.