Macros
runTimeSelectionTables.H File Reference

Macros to ease declaration of run-time selection tables. More...

Include dependency graph for runTimeSelectionTables.H:

Go to the source code of this file.

Macros

#define declareRunTimeSelectionTable(autoPtr, baseType, argNames, argList, parList)
 Declare a run-time selection. More...
 
#define declareRunTimeNewSelectionTable( autoPtr, baseType, argNames, argList, parList)
 Declare a run-time selection for derived classes. More...
 
#define defineRunTimeSelectionTableConstructor(baseType, argNames)
 
#define defineRunTimeSelectionTableDestructor(baseType, argNames)
 
#define defineRunTimeSelectionTablePtr(baseType, argNames)
 
#define defineRunTimeSelectionTable(baseType, argNames)
 Define run-time selection table. More...
 
#define defineTemplateRunTimeSelectionTable(baseType, argNames)
 Define run-time selection table for template classes. More...
 
#define defineTemplatedRunTimeSelectionTableConstructor(baseType, argNames, Targ)
 
#define defineTemplatedRunTimeSelectionTableDestructor(baseType, argNames, Targ)
 
#define defineTemplatedRunTimeSelectionTablePtr(baseType, argNames, Targ)
 Create pointer to hash-table of functions. More...
 
#define defineTemplatedRunTimeSelectionTable(baseType, argNames, Targ)
 Define run-time selection table for template classes. More...
 

Detailed Description

Macros to ease declaration of run-time selection tables.

Original source file runTimeSelectionTables.H

declareRunTimeSelectionTable is used to create a run-time selection table for a base-class which holds constructor pointers on the table.

declareRunTimeNewSelectionTable is used to create a run-time selection table for a derived-class which holds "New" pointers on the table.

Definition in file runTimeSelectionTables.H.

Macro Definition Documentation

◆ declareRunTimeSelectionTable

#define declareRunTimeSelectionTable (   autoPtr,
  baseType,
  argNames,
  argList,
  parList 
)

Declare a run-time selection.

Definition at line 46 of file runTimeSelectionTables.H.

◆ declareRunTimeNewSelectionTable

#define declareRunTimeNewSelectionTable (   autoPtr,
  baseType,
  argNames,
  argList,
  parList 
)

Declare a run-time selection for derived classes.

Definition at line 134 of file runTimeSelectionTables.H.

◆ defineRunTimeSelectionTableConstructor

#define defineRunTimeSelectionTableConstructor (   baseType,
  argNames 
)
Value:
\
/* Table constructor called from the table add function */ \
void baseType::construct##argNames##ConstructorTables() \
{ \
static bool constructed = false; \
if (!constructed) \
{ \
constructed = true; \
baseType::argNames##ConstructorTablePtr_ \
= new baseType::argNames##ConstructorTable; \
} \
}

Definition at line 232 of file runTimeSelectionTables.H.

◆ defineRunTimeSelectionTableDestructor

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

Definition at line 248 of file runTimeSelectionTables.H.

◆ defineRunTimeSelectionTablePtr

#define defineRunTimeSelectionTablePtr (   baseType,
  argNames 
)
Value:
\
/* Define the constructor function table */ \
baseType::argNames##ConstructorTable* \
baseType::argNames##ConstructorTablePtr_ = nullptr

Definition at line 262 of file runTimeSelectionTables.H.

◆ defineRunTimeSelectionTable

#define defineRunTimeSelectionTable (   baseType,
  argNames 
)
Value:
\
defineRunTimeSelectionTablePtr(baseType,argNames); \
defineRunTimeSelectionTableConstructor(baseType,argNames); \
defineRunTimeSelectionTableDestructor(baseType,argNames)

Define run-time selection table.

Definition at line 273 of file runTimeSelectionTables.H.

◆ defineTemplateRunTimeSelectionTable

#define defineTemplateRunTimeSelectionTable (   baseType,
  argNames 
)
Value:
#define defineRunTimeSelectionTableConstructor(baseType, argNames)
#define defineRunTimeSelectionTablePtr(baseType, argNames)
#define defineRunTimeSelectionTableDestructor(baseType, 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 282 of file runTimeSelectionTables.H.

◆ defineTemplatedRunTimeSelectionTableConstructor

#define defineTemplatedRunTimeSelectionTableConstructor (   baseType,
  argNames,
  Targ 
)
Value:
\
/* Table constructor called from the table add function */ \
void baseType<Targ>::construct##argNames##ConstructorTables() \
{ \
static bool constructed = false; \
if (!constructed) \
{ \
constructed = true; \
baseType<Targ>::argNames##ConstructorTablePtr_ \
= new baseType<Targ>::argNames##ConstructorTable; \
} \
}

Definition at line 295 of file runTimeSelectionTables.H.

◆ defineTemplatedRunTimeSelectionTableDestructor

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

Definition at line 311 of file runTimeSelectionTables.H.

◆ defineTemplatedRunTimeSelectionTablePtr

#define defineTemplatedRunTimeSelectionTablePtr (   baseType,
  argNames,
  Targ 
)
Value:
\
/* Define the constructor function table */ \
baseType<Targ>::argNames##ConstructorTable* \
baseType<Targ>::argNames##ConstructorTablePtr_ = nullptr

Create pointer to hash-table of functions.

use when baseType requires the Targ template argument

Definition at line 326 of file runTimeSelectionTables.H.

◆ defineTemplatedRunTimeSelectionTable

#define defineTemplatedRunTimeSelectionTable (   baseType,
  argNames,
  Targ 
)
Value:
#define defineTemplatedRunTimeSelectionTableConstructor(baseType, argNames, Targ)
#define defineTemplatedRunTimeSelectionTablePtr(baseType, argNames, Targ)
Create pointer to hash-table of functions.
#define defineTemplatedRunTimeSelectionTableDestructor(baseType, argNames, Targ)

Define run-time selection table for template classes.

use when baseType requires the Targ template argument

Definition at line 335 of file runTimeSelectionTables.H.