memberFunctionSelectionTables.H File Reference

Macros to enable the easy declaration of member function selection tables. More...

Include dependency graph for memberFunctionSelectionTables.H:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define declareMemberFunctionSelectionTable( returnType, baseType, memberFunction, argNames, argList, parList)
 Declare a run-time selection: More...
 
#define defineMemberFunctionSelectionTableMemberFunction( baseType, memberFunction, argNames)
 
#define defineMemberFunctionSelectionTableDestructor( baseType, memberFunction, argNames)
 
#define defineMemberFunctionSelectionTablePtr(baseType, memberFunction, argNames)
 
#define defineMemberFunctionSelectionTable(baseType, memberFunction, argNames)
 Define run-time selection table. More...
 
#define defineTemplateMemberFunctionSelectionTable( baseType, memberFunction, argNames)
 Define run-time selection table for template classes. More...
 
#define defineTemplatedMemberFunctionSelectionTableMemberFunction( baseType, memberFunction, argNames, Targ)
 
#define defineTemplatedMemberFunctionSelectionTableDestructor( baseType, memberFunction, argNames, Targ)
 
#define defineTemplatedMemberFunctionSelectionTablePtr( baseType, memberFunction, argNames, Targ)
 
#define defineTemplatedMemberFunctionSelectionTable( baseType, memberFunction, argNames, Targ)
 Define run-time selection table for template classes. More...
 

Detailed Description

Macros to enable the easy declaration of member function selection tables.

Original source file memberFunctionSelectionTables.H

Definition in file memberFunctionSelectionTables.H.

Macro Definition Documentation

◆ declareMemberFunctionSelectionTable

#define declareMemberFunctionSelectionTable (   returnType,
  baseType,
  memberFunction,
  argNames,
  argList,
  parList 
)

Declare a run-time selection:

Definition at line 42 of file memberFunctionSelectionTables.H.

◆ defineMemberFunctionSelectionTableMemberFunction

#define defineMemberFunctionSelectionTableMemberFunction (   baseType,
  memberFunction,
  argNames 
)
Value:
\
/* Table memberFunction called from the table add function */ \
void baseType::construct##memberFunction##argNames##MemberFunctionTables() \
{ \
static bool constructed = false; \
if (!constructed) \
{ \
constructed = true; \
baseType::memberFunction##argNames##MemberFunctionTablePtr_ \
= new baseType::memberFunction##argNames##MemberFunctionTable; \
} \
}

Definition at line 90 of file memberFunctionSelectionTables.H.

◆ defineMemberFunctionSelectionTableDestructor

#define defineMemberFunctionSelectionTableDestructor (   baseType,
  memberFunction,
  argNames 
)
Value:
\
/* Table destructor called from the table add function destructor */ \
void baseType::destroy##memberFunction##argNames##MemberFunctionTables() \
{ \
if (baseType::memberFunction##argNames##MemberFunctionTablePtr_) \
{ \
delete baseType::memberFunction##argNames## \
MemberFunctionTablePtr_; \
baseType::memberFunction##argNames## \
MemberFunctionTablePtr_ = nullptr; \
} \
}

Definition at line 107 of file memberFunctionSelectionTables.H.

◆ defineMemberFunctionSelectionTablePtr

#define defineMemberFunctionSelectionTablePtr (   baseType,
  memberFunction,
  argNames 
)
Value:
\
/* Define the memberFunction table */ \
baseType::memberFunction##argNames##MemberFunctionTable* \
baseType::memberFunction##argNames##MemberFunctionTablePtr_(nullptr)

Definition at line 124 of file memberFunctionSelectionTables.H.

◆ defineMemberFunctionSelectionTable

#define defineMemberFunctionSelectionTable (   baseType,
  memberFunction,
  argNames 
)
Value:
\
defineMemberFunctionSelectionTablePtr \
(baseType,memberFunction,argNames); \
defineMemberFunctionSelectionTableMemberFunction \
(baseType,memberFunction,argNames) \
(baseType,memberFunction,argNames)

Define run-time selection table.

Definition at line 134 of file memberFunctionSelectionTables.H.

◆ defineTemplateMemberFunctionSelectionTable

#define defineTemplateMemberFunctionSelectionTable (   baseType,
  memberFunction,
  argNames 
)
Value:
\
template<> \
defineMemberFunctionSelectionTablePtr \
(baseType,memberFunction,argNames); \
template<> \
defineMemberFunctionSelectionTableMemberFunction \
(baseType,memberFunction,argNames) \
template<> \
(baseType,memberFunction,argNames)

Define run-time selection table for template classes.

use when baseType doesn't need a template argument (eg, is a typedef)

Definition at line 146 of file memberFunctionSelectionTables.H.

◆ defineTemplatedMemberFunctionSelectionTableMemberFunction

#define defineTemplatedMemberFunctionSelectionTableMemberFunction (   baseType,
  memberFunction,
  argNames,
  Targ 
)
Value:
\
/* Table memberFunction called from the table add function */ \
void baseType<Targ>::construct##memberFunction##argNames## \
MemberFunctionTables() \
{ \
static bool constructed = false; \
if (!constructed) \
{ \
constructed = true; \
baseType<Targ>::memberFunction##argNames##MemberFunctionTablePtr_ \
= new baseType<Targ>::memberFunction##argNames## \
MemberFunctionTable; \
} \
}

Definition at line 163 of file memberFunctionSelectionTables.H.

◆ defineTemplatedMemberFunctionSelectionTableDestructor

#define defineTemplatedMemberFunctionSelectionTableDestructor (   baseType,
  memberFunction,
  argNames,
  Targ 
)
Value:
\
/* Table destructor called from the table add function destructor */ \
void baseType<Targ>::destroy##memberFunction##argNames## \
MemberFunctionTables() \
{ \
if (baseType<Targ>::memberFunction##argNames##MemberFunctionTablePtr_) \
{ \
delete baseType<Targ>::memberFunction##argNames## \
MemberFunctionTablePtr_; \
baseType<Targ>::memberFunction##argNames## \
MemberFunctionTablePtr_ = nullptr; \
} \
}

Definition at line 183 of file memberFunctionSelectionTables.H.

◆ defineTemplatedMemberFunctionSelectionTablePtr

#define defineTemplatedMemberFunctionSelectionTablePtr (   baseType,
  memberFunction,
  argNames,
  Targ 
)
Value:
\
/* Define the memberFunction table */ \
baseType<Targ>::memberFunction##argNames##MemberFunctionTable* \
baseType<Targ>::memberFunction##argNames## \
MemberFunctionTablePtr_(nullptr)

Definition at line 202 of file memberFunctionSelectionTables.H.

◆ defineTemplatedMemberFunctionSelectionTable

#define defineTemplatedMemberFunctionSelectionTable (   baseType,
  memberFunction,
  argNames,
  Targ 
)
Value:
\
template<> \
defineTemplatedMemberFunctionSelectionTablePtr \
(baseType,memberFunction,argNames,Targ); \
template<> \
defineTemplatedMemberFunctionSelectionTableMemberFunction \
(baseType,memberFunction,argNames,Targ) \
template<> \
(baseType,memberFunction,argNames,Targ)

Define run-time selection table for template classes.

use when baseType requires the Targ template argument

Definition at line 213 of file memberFunctionSelectionTables.H.

defineMemberFunctionSelectionTableDestructor
#define defineMemberFunctionSelectionTableDestructor( baseType, memberFunction, argNames)
Definition: memberFunctionSelectionTables.H:107
defineTemplatedMemberFunctionSelectionTableDestructor
#define defineTemplatedMemberFunctionSelectionTableDestructor( baseType, memberFunction, argNames, Targ)
Definition: memberFunctionSelectionTables.H:183