PTLib
Version 2.18.8
|
Template class for generic factories of an abstract class. More...
#include <pfactory.h>
Classes | |
class | WorkerBase |
struct | WorkerWrap |
Public Types | |
typedef AbstractClass | Abstract_T |
typedef ParamType | Param_T |
typedef KeyType | Key_T |
typedef std::vector< Key_T > | KeyList_T |
typedef std::map< Key_T, WorkerWrap > | WorkerMap_T |
typedef WorkerMap_T::iterator | WorkerIter_T |
Public Member Functions | |
virtual void | DestroySingletons () |
![]() | |
virtual | ~PFactoryBase () |
Protected Member Functions | |
PFactoryTemplate () | |
~PFactoryTemplate () | |
bool | InternalRegister (const Key_T &key, WorkerBase *worker, bool autoDeleteWorker) |
bool | InternalRegister (const Key_T &key, Abstract_T *instance, bool autoDeleteInstance) |
PBoolean | InternalRegisterAs (const Key_T &newKey, const Key_T &oldKey) |
void | InternalUnregister (const Key_T &key) |
void | InternalUnregister (WorkerBase *instance) |
void | InternalUnregisterAll () |
bool | InternalIsRegistered (const Key_T &key) |
Abstract_T * | InternalCreateInstance (const Key_T &key, Param_T param) |
void | InternalDestroy (const Key_T &key, Abstract_T *instance) |
bool | InternalIsSingleton (const Key_T &key) |
KeyList_T | InternalGetKeyList () |
![]() | |
PFactoryBase () | |
PDECLARE_MUTEX (m_mutex,"PFactoryBase") | |
Protected Attributes | |
WorkerMap_T | m_workers |
Additional Inherited Members | |
![]() | |
static FactoryMap & | GetFactories () |
![]() | |
static PFactoryBase & | InternalGetFactory (const std::string &className, PFactoryBase *(*createFactory)()) |
template<class TheFactory > | |
static PFactoryBase * | CreateFactory () |
template<class TheFactory > | |
static TheFactory & | GetFactoryAs () |
Template class for generic factories of an abstract class.
typedef AbstractClass PFactoryTemplate< AbstractClass, ParamType, KeyType >::Abstract_T |
typedef KeyType PFactoryTemplate< AbstractClass, ParamType, KeyType >::Key_T |
typedef std::vector<Key_T> PFactoryTemplate< AbstractClass, ParamType, KeyType >::KeyList_T |
typedef ParamType PFactoryTemplate< AbstractClass, ParamType, KeyType >::Param_T |
typedef WorkerMap_T::iterator PFactoryTemplate< AbstractClass, ParamType, KeyType >::WorkerIter_T |
typedef std::map<Key_T, WorkerWrap> PFactoryTemplate< AbstractClass, ParamType, KeyType >::WorkerMap_T |
|
inlineprotected |
|
inlineprotected |
|
inlinevirtual |
Implements PFactoryBase.
Referenced by PFactoryTemplate< AbstractClass, const KeyType &, KeyType >::~PFactoryTemplate().
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
protected |
Referenced by PFactoryTemplate< AbstractClass, const KeyType &, KeyType >::DestroySingletons(), PFactoryTemplate< AbstractClass, const KeyType &, KeyType >::InternalCreateInstance(), PFactoryTemplate< AbstractClass, const KeyType &, KeyType >::InternalDestroy(), PFactoryTemplate< AbstractClass, const KeyType &, KeyType >::InternalGetKeyList(), PFactoryTemplate< AbstractClass, const KeyType &, KeyType >::InternalIsRegistered(), PFactoryTemplate< AbstractClass, const KeyType &, KeyType >::InternalIsSingleton(), PFactoryTemplate< AbstractClass, const KeyType &, KeyType >::InternalRegister(), PFactoryTemplate< AbstractClass, const KeyType &, KeyType >::InternalRegisterAs(), PFactoryTemplate< AbstractClass, const KeyType &, KeyType >::InternalUnregister(), and PFactoryTemplate< AbstractClass, const KeyType &, KeyType >::InternalUnregisterAll().