VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes
makVrv::DtVirtualBaseClassCreator< ClassToCreate, ConstructorArgs > Class Template Reference

template<class ClassToCreate, class... ConstructorArgs>
class makVrv::DtVirtualBaseClassCreator< ClassToCreate, ConstructorArgs >

Variadic templated creator class for defining a DtVirtualBaseClass creator that is automatically registered with the DtDe the first time instace() is called. The ConstructorArgs define what is passed to the class being created's constructor (plus DtDe as the first argument). For example if the constructor for ClassToCreate is DtIndirectSwitchManager(DtDe& de, DtInstanceContainer& container); then the creator can be defined as: typedef DtVirtualBaseClassCreator<DtIndirectSwitchManager, DtInstanceContainer&> DtIndirectSwitchManagerCreator; notice the DtDe& is not included in the template parameters since it assumed all classes will take a DtDe& as the first parameter.

Inheritance diagram for makVrv::DtVirtualBaseClassCreator< ClassToCreate, ConstructorArgs >:
Inheritance graph
[legend]

Public Member Functions

virtual ~DtVirtualBaseClassCreator ()
 
 DtVirtualBaseClassCreator ()=delete
 
 DtVirtualBaseClassCreator (const DtVirtualBaseClassCreator &other)=delete
 
DtVirtualBaseClassCreatoroperator= (const DtVirtualBaseClassCreator &other)=delete
 
virtual ClassToCreate * create (ConstructorArgs &&...constructorArgs)
 
- Public Member Functions inherited from makVrv::DtVirtualBaseClass
 DtVirtualBaseClass ()
 
virtual ~DtVirtualBaseClass ()
 

Static Public Member Functions

static DtVirtualBaseClassCreatorinstance (DtDe &de)
 

Protected Member Functions

 DtVirtualBaseClassCreator (DtDe &de)
 

Protected Attributes

DtDemyDe
 

Static Protected Attributes

static ClassToCreate * classToCreateType
 

Constructor & Destructor Documentation

template<class ClassToCreate , class... ConstructorArgs>
makVrv::DtVirtualBaseClassCreator< ClassToCreate, ConstructorArgs >::~DtVirtualBaseClassCreator ( )
virtual

DTOR.

template<class ClassToCreate, class... ConstructorArgs>
makVrv::DtVirtualBaseClassCreator< ClassToCreate, ConstructorArgs >::DtVirtualBaseClassCreator ( )
delete

not allowed

template<class ClassToCreate, class... ConstructorArgs>
makVrv::DtVirtualBaseClassCreator< ClassToCreate, ConstructorArgs >::DtVirtualBaseClassCreator ( const DtVirtualBaseClassCreator< ClassToCreate, ConstructorArgs > &  other)
delete

Copy Constructor not implemented – Copy Not Allowed.

template<class ClassToCreate , class... ConstructorArgs>
makVrv::DtVirtualBaseClassCreator< ClassToCreate, ConstructorArgs >::DtVirtualBaseClassCreator ( DtDe de)
protected

CTOR.

Member Function Documentation

template<class ClassToCreate, class... ConstructorArgs>
DtVirtualBaseClassCreator& makVrv::DtVirtualBaseClassCreator< ClassToCreate, ConstructorArgs >::operator= ( const DtVirtualBaseClassCreator< ClassToCreate, ConstructorArgs > &  other)
delete

Assignment Operator Not implemented – Assignment Not Allowed.

template<class ClassToCreate , class... ConstructorArgs>
DtVirtualBaseClassCreator< ClassToCreate, ConstructorArgs...> & makVrv::DtVirtualBaseClassCreator< ClassToCreate, ConstructorArgs >::instance ( DtDe de)
static

Get an instance of the creator, if it does not exist then register it with DtDe.

References makVrv::DtDe::findInstance(), and makVrv::DtDe::registerInstance().

template<class ClassToCreate , class... ConstructorArgs>
ClassToCreate * makVrv::DtVirtualBaseClassCreator< ClassToCreate, ConstructorArgs >::create ( ConstructorArgs &&...  constructorArgs)
virtual

Create a DtVirtualBaseClassCreator object, calls ClassToCreate constructor with myDe and ConstructorArgs.

Referenced by makVrv::DtKeyedData::getOrCreateUserData().

Member Data Documentation

template<class ClassToCreate, class... ConstructorArgs>
DtDe& makVrv::DtVirtualBaseClassCreator< ClassToCreate, ConstructorArgs >::myDe
protected
template<class ClassToCreate, class... ConstructorArgs>
ClassToCreate* makVrv::DtVirtualBaseClassCreator< ClassToCreate, ConstructorArgs >::classToCreateType
staticprotected

Should only be used by decltype() calls to get the type of the base class being created.


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

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)