ALib C++ Library
Library Version: 2510 R0
Documentation generated by doxygen
Loading...
Searching...
No Matches
alib::lox::detail::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 survives the livespan on the setting function.

Definition at line 20 of file domain.inl.

Inheritance diagram for alib::lox::detail::PrefixLogable:
[legend]
Collaboration diagram for alib::lox::detail::PrefixLogable:
[legend]

Public Method Index:

 PrefixLogable (PoolAllocator &pa, const Box &src)
 
- Public Method Index: inherited from alib::boxing::Box
 Box () noexcept
 
template<typename TBoxable>
constexpr Box (const TBoxable &src) noexcept
 
 Box (TypeCode typeCode, const Placeholder &placeholder) noexcept
 
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_DLL 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_DLL 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_DLL 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_DLL operator bool () const
 
bool operator!= (const Box &rhs) const
 
ALIB_DLL bool operator< (Box const &rhs) const
 
ALIB_DLL bool operator<= (Box const &rhs) const
 
ALIB_DLL bool operator== (Box const &rhs) const
 
ALIB_DLL bool operator> (Box const &rhs) const
 
bool operator>= (Box const &rhs) const
 
const std::type_info & TypeID () const
 
template<typename TValue>
requires IsUnboxableStringType<TValue>
TValue Unbox () const
 
template<typename TValue>
requires ( !std::is_pointer_v<TValue> && !IsUnboxableStringType<TValue> )
TValue Unbox () const
 
template<typename TPointer>
requires ( std::is_pointer_v<TPointer> && !IsUnboxableStringType<TPointer> )
const std::remove_pointer_t< TPointer > * Unbox () const
 
template<typename TElementType>
TElementType * UnboxArray () const
 
wchar UnboxCharacter () const
 
template<typename TElementType>
TElementType & UnboxElement (integer idx) const
 
ALIB_DLL double UnboxFloatingPoint () const
 
integer UnboxLength () const
 
template<typename TPointer>
requires std::is_pointer_v<TPointer>
TPointer UnboxMutable () const
 
integer UnboxSignedIntegral () const
 
uinteger UnboxUnsignedIntegral () const
 

Protected Field Index:

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

Additional Inherited Members

- Public Type Index: inherited from alib::boxing::Box
using TypeCode = uinteger
 The type of type codes received with ExportType.
 
- Protected Static Method Index: inherited from alib::boxing::Box
template<typename TBoxable>
static constexpr detail::VTablegetVTable ()
 
- Protected Method Index: inherited from alib::boxing::Box
template<typename T>
constexpr void initPH (const T &src) noexcept
 

Field Details:

◆ copy

AStringPA alib::lox::detail::PrefixLogable::copy
protected

If set, it will be deleted.

Definition at line 24 of file domain.inl.

Constructor(s) / Destructor Details:

◆ PrefixLogable()

alib::lox::detail::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 31 of file domain.inl.

Here is the call graph for this function:

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