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.inl.
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 | 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 302 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 1896 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 Scope::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 1751 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. |
Definition at line 274 of file loxpimpl.cpp.
|
static |
Implementation of the method MonoAllocator & DbgGetMonoAllocator() .
| impl | The implementation struct of the Lox. |
Definition at line 394 of file loxpimpl.cpp.
|
static |
Destructs a lox.
| lox | The Lox that is to be destructed. |
Definition at line 284 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 501 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 1304 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 1389 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 1432 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 1589 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 1579 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 1516 of file loxpimpl.cpp.
|
static |
Returns the internal lock.
| impl | The implementation struct of the Lox. |
Definition at line 295 of file loxpimpl.cpp.
Implementation of the method BoxesMA & GetLogableContainer() .
| impl | The implementation struct of the Lox. |
Definition at line 1293 of file loxpimpl.cpp.
Implementation of the method integer & GetLogCounter() .
| impl | The implementation struct of the Lox. |
Definition at line 292 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 420 of file loxpimpl.cpp.
Implementation of the method const NString & GetName() .
| impl | The implementation struct of the Lox. |
Definition at line 290 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 1972 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 1356 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 1464 of file loxpimpl.cpp.
|
static |
Increases the internal log counter of impl.
| impl | The implementation struct of the Lox. |
Definition at line 1387 of file loxpimpl.cpp.
|
static |
Used on construction and with Reset.
| impl | The implementation struct of the Lox. |
Definition at line 321 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 1329 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 1770 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 1799 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 1905 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 1912 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 1060 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 1091 of file loxpimpl.cpp.
|
static |
Implementation of the method void Release() .
| impl | The implementation struct of the Lox. |
Definition at line 313 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 594 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 566 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 828 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 364 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 1234 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 410 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 759 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 848 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 390 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 962 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 906 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 Inclusion::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 Case::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 Reach::Global. |
| priority | The priority of the setting. Defaults to DefaultValues. |
Definition at line 397 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 1019 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 1003 of file loxpimpl.cpp.
|
static |
Implementation of the method Lox::SetVerbosity.
| impl | The implementation struct of the Lox. |
| loggerName | The logger to be 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 727 of file loxpimpl.cpp.
|
static |
Implementation of the method Lox::SetVerbosity.
| impl | The implementation struct of the Lox. |
| logger | The logger to be 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 629 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 1275 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 1164 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 450 of file loxpimpl.cpp.