38 if ( IsArrayOf<nchar>() ) new (this) Box(copy.Reset( Unbox<NString>() ));
39 else if ( IsArrayOf<wchar>() ) new (this) Box(copy.Reset( Unbox<WString>() ));
40 else if ( IsArrayOf<xchar>() ) new (this) Box(copy.Reset( Unbox<XString>() ));
145 while ( rootDomain->
Parent !=
nullptr )
146 rootDomain= rootDomain->
Parent;
159 return Parent->AddLogger( logger );
167 return int(
Data.size()) - 1;
178 Parent->RemoveLogger( loggerNo );
191 return int(
Data.size() );
200 for (
size_t i= 0; i <
Data.size() ; ++i )
202 return Data[i].Logger;
212 "Internal error: Illegal Logger Number" )
213 return Data[size_t(no)].Logger;
222 for (
size_t i= 0; i <
Data.size() ; ++i )
233 for (
size_t i= 0; i <
Data.size() ; ++i )
255 return Data[size_t(loggerNo)].LoggerVerbosity;
263 return Data[size_t(loggerNo)].Priority;
272 return Data[size_t(loggerNo)].LogCallsPerDomain;
293 if( statement != Verbosity::Off
294 && ( ( domain == Verbosity::Error && statement == Verbosity::Error )
295 || ( domain == Verbosity::Warning && ( statement == Verbosity::Warning || statement == Verbosity::Error ) )
296 || ( domain == Verbosity::Info && statement != Verbosity::Verbose )
297 || domain == Verbosity::Verbose )
300 ++
Data[size_t(loggerNo)].LogCallsPerDomain;
357 target.Append(
static_cast<const Box&
>(src) ); )
ALIB_DLL bool IsNotNull() const
List< PoolAllocator, std::pair< PrefixLogable *, lang::Inclusion >, Recycling::None > PrefixLogables
Prefix Logables associated with this domain.
StdVectorMono< LoggerData > Data
detail::Logger * GetLogger(int no)
ALIB_DLL Domain * Find(NSubstring domainPath, int maxCreate, bool *wasCreated)
int GetCount(int loggerNo)
void ToString(NAString &target)
bool ConfigurationAlreadyRead
Flag which is set when verbosity configuration data was read.
bool IsActive(int loggerNo, Verbosity statement)
ALIB_DLL Domain(MonoAllocator &allocator, PoolAllocator &pool, const NString &name)
ALIB_DLL void addLoggerRecursive(detail::Logger *logger)
void RemoveLogger(int loggerNo)
NString Name
The name of the domain. For root domains, this is nulled.
Domain * Parent
The parent domain. For root domains, this is nullptr.
List< MonoAllocator, Domain, Recycling::None > SubDomains
A list of subdomains, sorted by name.
Verbosity GetVerbosity(int loggerNo)
ALIB_DLL Verbosity SetVerbosity(int loggerNo, Verbosity verbosity, Priority priority)
NString FullPath
The full path of the domain (set in the constructor once) .
ALIB_DLL void removeLoggerRecursive(int loggerNo)
Priority GetPriority(int loggerNo)
int GetLoggerNo(detail::Logger *logger)
static constexpr nchar Separator()
int GetLoggerNo(const NString &loggerName)
int AddLogger(detail::Logger *logger)
detail::Logger * GetLogger(const NString &loggerName)
Domain * findRecursive(NSubstring &domainPath, int maxCreate, bool *wasCreated)
const NString & GetName() const
PrefixLogable(PoolAllocator &pa, const Box &src)
AStringPA copy
If set, it will be deleted.
bool Equals(const TString< TChar > &rhs) const
#define ALIB_STRINGS_APPENDABLE_TYPE_INLINE(TYPE, IMPL)
#define ALIB_ASSERT_ERROR(cond, domain,...)
Inclusion
Denotes how members of a set something should be taken into account.
std::vector< T, SCAMono< T > > StdVectorMono
Type alias in namespace alib.
strings::TSubstring< nchar > NSubstring
Type alias in namespace alib.
lang::integer integer
Type alias in namespace alib.
monomem::TPoolAllocator< MonoAllocator > PoolAllocator
strings::TString< nchar > NString
Type alias in namespace alib.
strings::TAString< nchar, lang::HeapAllocator > NAString
Type alias in namespace alib.
monomem::TMonoAllocator< lang::HeapAllocator > MonoAllocator
alib::variables::Priority Priority
Type alias in namespace alib.
characters::nchar nchar
Type alias in namespace alib.
boxing::Box Box
Type alias in namespace alib.
strings::TAString< character, PoolAllocator > AStringPA
Type alias in namespace alib.
containers::List< TAllocator, T, TRecycling > List
Type alias in namespace alib.
detail::Logger * Logger
The logger.
Verbosity LoggerVerbosity
The verbosity of the Logger for this domain.
int LogCallsPerDomain
the number of log calls on this domain for this logger.
LoggerData(detail::Logger *logger)
variables::Priority Priority
The priority value that was used to set the verbosity.