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

Description:

Used to store log prefixes. Those that are provided as boxes of character arrays are copied into an internal AString and will be deleted with the object. This ensures, that simple strings might get assembled on the stack (aka as local function variables) and still be used as a prefix logable which survive the livespan on the setting function.

Definition at line 33 of file domain.inl.

Inheritance diagram for PrefixLogable:
[legend]
Collaboration diagram for PrefixLogable:
[legend]

Public Method Index:

 PrefixLogable (PoolAllocator &pa, const Box &src)
 
- Public Method Index: inherited from Box
 Box () noexcept
 
 Box (Box &&) noexcept=default
 Trivial default move constructor.
 
 Box (const Box &) noexcept=default
 Trivial default copy constructor.
 
template<typename TBoxable >
constexpr Box (const TBoxable &src) noexcept
 
 Box (TypeCode typeCode, const Placeholder &placeholder) noexcept
 
 ~Box () noexcept=default
 Trivial default destructor.
 
size_t ArrayElementSize () const
 
template<typename TFDecl , typename... TArgs>
decltype(std::declval< typename TFDecl::Signature >()(std::declval< Box & >(), std::declval< TArgs >()...)) Call (TArgs &&... args)
 
template<typename TFDecl , typename... TArgs>
decltype(std::declval< typename TFDecl::Signature >()(std::declval< Box & >(), std::declval< TArgs >()...)) Call (TArgs &&... args) const
 
template<typename TFDecl , typename... TArgs>
decltype(std::declval< typename TFDecl::Signature >()(std::declval< Box & >(), std::declval< TArgs >()...)) CallDirect (typename TFDecl::Signature function, TArgs &&... args)
 
template<typename TFDecl , typename... TArgs>
decltype(std::declval< typename TFDecl::Signature >()(std::declval< Box & >(), std::declval< TArgs >()...)) CallDirect (typename TFDecl::Signature function, TArgs &&... args) const
 
ALIB_API void Clone (MonoAllocator &memory)
 
PlaceholderData ()
 
const PlaceholderData () const
 
const detail::VTableDbgGetVTable () const
 
const std::type_info & ElementTypeID () const
 
TypeCode ExportType () const
 
Placeholder ExportValue () const
 
template<typename TFDecl >
TFDecl::Signature GetFunction (Reach searchScope, bool isInvocation=false) const
 
unsigned int GetPlaceholderUsageLength () const
 
ALIB_API size_t Hashcode () const
 
void Import (TypeCode typeCode)
 
void Import (TypeCode typeCode, const Placeholder &placeholder)
 
bool IsArray () const
 
template<typename TElementType >
bool IsArrayOf () const
 
bool IsCharacter () const
 
bool IsEnum () const
 
bool IsFloatingPoint () const
 
ALIB_API bool IsNotNull () const
 
bool IsNull () const
 
bool IsPointer () const
 
bool IsSameType (const Box &other) const
 
bool IsSignedIntegral () const
 
template<typename TBoxable >
bool IsType () const
 
bool IsUnsignedIntegral () const
 
ALIB_API operator bool () const
 
bool operator!= (const Box &rhs) const
 
ALIB_API bool operator< (Box const &rhs) const
 
ALIB_API bool operator<= (Box const &rhs) const
 
Boxoperator= (Box &&) noexcept=default
 
Boxoperator= (const Box &) noexcept=default
 
ALIB_API bool operator== (Box const &rhs) const
 
ALIB_API bool operator> (Box const &rhs) const
 
bool operator>= (Box const &rhs) const
 
const std::type_info & TypeID () const
 
template<typename TUnboxable >
const TUnboxable Unbox () const
 
template<typename TElementType >
TElementType * UnboxArray () const
 
wchar UnboxCharacter () const
 
template<typename TElementType >
TElementType & UnboxElement (integer idx) const
 
ALIB_API double UnboxFloatingPoint () const
 
integer UnboxLength () const
 
template<typename TUnboxable >
TUnboxable UnboxMutable () const
 
integer UnboxSignedIntegral () const
 
uinteger UnboxUnsignedIntegral () const
 

Protected Field Index:

AStringPA copy
 If set, it will be deleted.
 
- Protected Field Index: inherited from Box
Placeholder data
 The data that we encapsulate.
 
detail::VTablevtable
 

Additional Inherited Members

- Public Type Index: inherited from Box
using TypeCode = uinteger
 The type of type codes received with ExportType.
 
- Protected Static Method Index: inherited from Box
template<typename TBoxable , bool NoStaticAsserts = false>
static detail::VTablegetVTable ()
 

Field Details:

◆ copy

AStringPA copy
protected

If set, it will be deleted.

Definition at line 37 of file domain.inl.

Constructor(s) / Destructor Details:

◆ PrefixLogable()

PrefixLogable ( PoolAllocator & pa,
const Box & src )
inline

Constructor taking the originally provided box. If this is an array of characters, the contents is copied into a heap allocated (new) AString and our vtable is replaced accordingly.

Parameters
paThe pool allocator of the Lox.
srcThe prefix object provided by the user

Definition at line 44 of file domain.inl.

Here is the call graph for this function:

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