PTLib  Version 2.18.8
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
PFactoryBase Class Referenceabstract

Base class for generic factories. More...

#include <pfactory.h>

Inheritance diagram for PFactoryBase:

Classes

class  FactoryMap
 

Public Member Functions

virtual ~PFactoryBase ()
 
virtual void DestroySingletons ()=0
 

Static Public Member Functions

static FactoryMapGetFactories ()
 

Protected Member Functions

 PFactoryBase ()
 
 PDECLARE_MUTEX (m_mutex,"PFactoryBase")
 

Static Protected Member Functions

static PFactoryBaseInternalGetFactory (const std::string &className, PFactoryBase *(*createFactory)())
 
template<class TheFactory >
static PFactoryBaseCreateFactory ()
 
template<class TheFactory >
static TheFactory & GetFactoryAs ()
 

Detailed Description

Base class for generic factories.

This classes reason for existance and the FactoryMap contained within it is to resolve issues with static global construction order and Windows DLL multiple instances issues. THis mechanism guarantees that the one and one only global variable (inside the GetFactories() function) is initialised before any other factory related instances of classes.

Constructor & Destructor Documentation

PFactoryBase::PFactoryBase ( )
inlineprotected
virtual PFactoryBase::~PFactoryBase ( )
inlinevirtual

Member Function Documentation

template<class TheFactory >
static PFactoryBase* PFactoryBase::CreateFactory ( )
inlinestaticprotected
virtual void PFactoryBase::DestroySingletons ( )
pure virtual
static FactoryMap& PFactoryBase::GetFactories ( )
static
template<class TheFactory >
static TheFactory& PFactoryBase::GetFactoryAs ( )
inlinestaticprotected

References InternalGetFactory().

static PFactoryBase& PFactoryBase::InternalGetFactory ( const std::string &  className,
PFactoryBase *(*)()  createFactory 
)
staticprotected

Referenced by GetFactoryAs().

PFactoryBase::PDECLARE_MUTEX ( m_mutex  ,
"PFactoryBase"   
)
protected

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