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

Description:

This struct is used internally with ALib Boxing to provide run-time type information and virtual method invocations to boxed values. A singleton instance of a derived type of this class is attached to each Box. Such derived type is generated using templated derived struct VTable.

Definition at line 26 of file vtable.inl.

Collaboration diagram for FunctionTable:
[legend]

Public Static Method Index:

static ALIB_API void Shutdown ()
 Needs to be called only in debug versions to shut down internal hashtables cleanly.
 

Public Field Index:

uinteger DbgCntInvocationsFAppend =0
 Debug-compilation counter for the number of invocations.
 
uinteger DbgCntInvocationsFClone =0
 Debug-compilation counter for the number of invocations.
 
uinteger DbgCntInvocationsFEquals =0
 Debug-compilation counter for the number of invocations.
 
uinteger DbgCntInvocationsFHashcode =0
 Debug-compilation counter for the number of invocations.
 
uinteger DbgCntInvocationsFIsLess =0
 Debug-compilation counter for the number of invocations.
 
uinteger DbgCntInvocationsFIsNotNull =0
 Debug-compilation counter for the number of invocations.
 
uinteger DbgCntInvocationsFIsTrue =0
 Debug-compilation counter for the number of invocations.
 
FAppend< character, lang::HeapAllocator >::Signature fAppend = nullptr
 Entry for built-in function FAppend<character>.
 
FClone::Signature fClone = nullptr
 Entry for built-in function FClone.
 
FEquals::Signature fEquals = nullptr
 Entry for built-in function FEquals.
 
FHashcode::Signature fHashcode = nullptr
 Entry for built-in function FHashcode.
 
FIsLess::Signature fIsLess = nullptr
 Entry for built-in function FIsLess.
 
FIsNotNull::Signature fIsNotNull = nullptr
 Entry for built-in function FIsNotNull.
 
FIsTrue::Signature fIsTrue = nullptr
 Entry for built-in function FIsTrue.
 

Public Method Index:

template<typename TFDecl >
TFDecl::Signature Get (bool isInvocation) const
 
template<typename TFDecl >
void Set (typename TFDecl::Signature implementation)
 

Protected Method Index:

ALIB_API void * getCustom (const std::type_info &rtti, bool isInvocation) const
 
ALIB_API void setCustom (const std::type_info &rtti, void *implementation)
 

Field Details:

◆ DbgCntInvocationsFAppend

uinteger DbgCntInvocationsFAppend =0
mutable

Debug-compilation counter for the number of invocations.

Definition at line 52 of file vtable.inl.

◆ DbgCntInvocationsFClone

uinteger DbgCntInvocationsFClone =0
mutable

Debug-compilation counter for the number of invocations.

Definition at line 49 of file vtable.inl.

◆ DbgCntInvocationsFEquals

uinteger DbgCntInvocationsFEquals =0
mutable

Debug-compilation counter for the number of invocations.

Definition at line 45 of file vtable.inl.

◆ DbgCntInvocationsFHashcode

uinteger DbgCntInvocationsFHashcode =0
mutable

Debug-compilation counter for the number of invocations.

Definition at line 43 of file vtable.inl.

◆ DbgCntInvocationsFIsLess

uinteger DbgCntInvocationsFIsLess =0
mutable

Debug-compilation counter for the number of invocations.

Definition at line 46 of file vtable.inl.

◆ DbgCntInvocationsFIsNotNull

uinteger DbgCntInvocationsFIsNotNull =0
mutable

Debug-compilation counter for the number of invocations.

Definition at line 44 of file vtable.inl.

◆ DbgCntInvocationsFIsTrue

uinteger DbgCntInvocationsFIsTrue =0
mutable

Debug-compilation counter for the number of invocations.

Definition at line 47 of file vtable.inl.

◆ fAppend

FAppend<character,lang::HeapAllocator>::Signature fAppend = nullptr

Entry for built-in function FAppend<character>.

Definition at line 40 of file vtable.inl.

◆ fClone

FClone::Signature fClone = nullptr

Entry for built-in function FClone.

Definition at line 37 of file vtable.inl.

◆ fEquals

FEquals::Signature fEquals = nullptr

Entry for built-in function FEquals.

Definition at line 33 of file vtable.inl.

◆ fHashcode

FHashcode::Signature fHashcode = nullptr

Entry for built-in function FHashcode.

Definition at line 31 of file vtable.inl.

◆ fIsLess

FIsLess::Signature fIsLess = nullptr

Entry for built-in function FIsLess.

Definition at line 34 of file vtable.inl.

◆ fIsNotNull

FIsNotNull::Signature fIsNotNull = nullptr

Entry for built-in function FIsNotNull.

Definition at line 32 of file vtable.inl.

◆ fIsTrue

FIsTrue::Signature fIsTrue = nullptr

Entry for built-in function FIsTrue.

Definition at line 35 of file vtable.inl.

Method Details:

◆ Get()

template<typename TFDecl >
TFDecl::Signature Get ( bool isInvocation) const

Receives the function of type TFDecl.

Template Parameters
TFDeclThe function type to get.
Parameters
isInvocationIf true, the invocation counter is increased. This parameter is defined only in debug-compilations.
Returns
The function found, or nullptr in case it was not defined.

◆ getCustom()

void * getCustom ( const std::type_info & rtti,
bool isInvocation ) const
protected

Non-inline implementation of Get used in the case of non-built-in functions.

Parameters
rttiThe typeid of the function to get.
isInvocationIf true, the invocation counter is increased. This parameter is defined only in debug-compilations.
Returns
The pointer to the box-function.

Definition at line 127 of file vtable.cpp.

◆ Set()

template<typename TFDecl >
void Set ( typename TFDecl::Signature implementation)

Registers an implementation of the function of type TFDecl.

Template Parameters
TFDeclThe function type to register.
Parameters
implementationThe implementation of the function.

◆ setCustom()

void setCustom ( const std::type_info & rtti,
void * implementation )
protected

Non-inline implementation of Set Get used in the case of non-built-in functions.

Parameters
rttiThe typeid of the function to register.
implementationThe implementation of the function.

Definition at line 143 of file vtable.cpp.

◆ Shutdown()

void Shutdown ( )
static

Needs to be called only in debug versions to shut down internal hashtables cleanly.

Definition at line 115 of file vtable.cpp.


The documentation for this struct was generated from the following files: