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.
Public Method Index: | |
PrefixLogable (PoolAllocator &pa, const Box &src) | |
![]() | |
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) |
Placeholder & | Data () |
const Placeholder & | Data () const |
const detail::VTable * | DbgGetVTable () 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. | |
![]() | |
Placeholder | data |
The data that we encapsulate. | |
detail::VTable * | vtable |
Additional Inherited Members | |
![]() | |
using | TypeCode = uinteger |
The type of type codes received with ExportType. | |
![]() | |
template<typename TBoxable> | |
static constexpr detail::VTable * | getVTable () |
![]() | |
template<typename T> | |
constexpr void | initPH (const T &src) noexcept |
|
protected |
If set, it will be deleted.
Definition at line 24 of file domain.inl.
|
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.
pa | The pool allocator of the Lox. |
src | The prefix object provided by the user |
Definition at line 31 of file domain.inl.