PFactory< AbstractClass, KeyType > Class Template Reference

#include <pfactory.h>

Inheritance diagram for PFactory< AbstractClass, KeyType >:

PFactoryBase PDevicePluginFactory< AbstractClass, KeyType > List of all members.

Public Types

typedef KeyType Key_T
typedef AbstractClass Abstract_T
typedef std::map< Key_T, WorkerBase * > KeyMap_T
typedef std::vector< Key_TKeyList_T

Static Public Member Functions

static void Register (const Key_T &key, WorkerBase *worker)
static void Register (const Key_T &key, Abstract_T *instance, bool autoDeleteInstance=true)
static PBoolean RegisterAs (const Key_T &newKey, const Key_T &oldKey)
static void Unregister (const Key_T &key)
static void UnregisterAll ()
static bool IsRegistered (const Key_T &key)
static Abstract_TCreateInstance (const Key_T &key)
template<class Derived_T>
static Derived_T * CreateInstanceAs (const Key_T &key)
static PBoolean IsSingleton (const Key_T &key)
static KeyList_T GetKeyList ()
static KeyMap_TGetKeyMap ()
static PMutexGetMutex ()

Protected Member Functions

 PFactory ()
 ~PFactory ()
void Register_Internal (const Key_T &key, WorkerBase *worker)
PBoolean RegisterAs_Internal (const Key_T &newKey, const Key_T &oldKey)
void Unregister_Internal (const Key_T &key)
void UnregisterAll_Internal ()
bool IsRegistered_Internal (const Key_T &key)
Abstract_TCreateInstance_Internal (const Key_T &key)
bool IsSingleton_Internal (const Key_T &key)
KeyList_T GetKeyList_Internal ()

Static Protected Member Functions

static PFactoryGetInstance ()

Protected Attributes

KeyMap_T keyMap

Classes

class  Worker
class  WorkerBase

Detailed Description

template<class AbstractClass, typename KeyType = PDefaultPFactoryKey>
class PFactory< AbstractClass, KeyType >

Template class for generic factories of an abstract class.


Member Typedef Documentation

template<class AbstractClass, typename KeyType = PDefaultPFactoryKey>
typedef AbstractClass PFactory< AbstractClass, KeyType >::Abstract_T

template<class AbstractClass, typename KeyType = PDefaultPFactoryKey>
typedef KeyType PFactory< AbstractClass, KeyType >::Key_T

template<class AbstractClass, typename KeyType = PDefaultPFactoryKey>
typedef std::vector<Key_T> PFactory< AbstractClass, KeyType >::KeyList_T

template<class AbstractClass, typename KeyType = PDefaultPFactoryKey>
typedef std::map<Key_T, WorkerBase *> PFactory< AbstractClass, KeyType >::KeyMap_T


Constructor & Destructor Documentation

template<class AbstractClass, typename KeyType = PDefaultPFactoryKey>
PFactory< AbstractClass, KeyType >::PFactory (  )  [inline, protected]

template<class AbstractClass, typename KeyType = PDefaultPFactoryKey>
PFactory< AbstractClass, KeyType >::~PFactory (  )  [inline, protected]


Member Function Documentation

template<class AbstractClass, typename KeyType = PDefaultPFactoryKey>
static Abstract_T* PFactory< AbstractClass, KeyType >::CreateInstance ( const Key_T key  )  [inline, static]

template<class AbstractClass, typename KeyType = PDefaultPFactoryKey>
Abstract_T* PFactory< AbstractClass, KeyType >::CreateInstance_Internal ( const Key_T key  )  [inline, protected]

template<class AbstractClass, typename KeyType = PDefaultPFactoryKey>
template<class Derived_T>
static Derived_T* PFactory< AbstractClass, KeyType >::CreateInstanceAs ( const Key_T key  )  [inline, static]

template<class AbstractClass, typename KeyType = PDefaultPFactoryKey>
static PFactory& PFactory< AbstractClass, KeyType >::GetInstance (  )  [inline, static, protected]

template<class AbstractClass, typename KeyType = PDefaultPFactoryKey>
static KeyList_T PFactory< AbstractClass, KeyType >::GetKeyList (  )  [inline, static]

template<class AbstractClass, typename KeyType = PDefaultPFactoryKey>
KeyList_T PFactory< AbstractClass, KeyType >::GetKeyList_Internal (  )  [inline, protected]

template<class AbstractClass, typename KeyType = PDefaultPFactoryKey>
static KeyMap_T& PFactory< AbstractClass, KeyType >::GetKeyMap (  )  [inline, static]

template<class AbstractClass, typename KeyType = PDefaultPFactoryKey>
static PMutex& PFactory< AbstractClass, KeyType >::GetMutex (  )  [inline, static]

template<class AbstractClass, typename KeyType = PDefaultPFactoryKey>
static bool PFactory< AbstractClass, KeyType >::IsRegistered ( const Key_T key  )  [inline, static]

template<class AbstractClass, typename KeyType = PDefaultPFactoryKey>
bool PFactory< AbstractClass, KeyType >::IsRegistered_Internal ( const Key_T key  )  [inline, protected]

template<class AbstractClass, typename KeyType = PDefaultPFactoryKey>
static PBoolean PFactory< AbstractClass, KeyType >::IsSingleton ( const Key_T key  )  [inline, static]

template<class AbstractClass, typename KeyType = PDefaultPFactoryKey>
bool PFactory< AbstractClass, KeyType >::IsSingleton_Internal ( const Key_T key  )  [inline, protected]

template<class AbstractClass, typename KeyType = PDefaultPFactoryKey>
static void PFactory< AbstractClass, KeyType >::Register ( const Key_T key,
Abstract_T instance,
bool  autoDeleteInstance = true 
) [inline, static]

template<class AbstractClass, typename KeyType = PDefaultPFactoryKey>
static void PFactory< AbstractClass, KeyType >::Register ( const Key_T key,
WorkerBase worker 
) [inline, static]

template<class AbstractClass, typename KeyType = PDefaultPFactoryKey>
void PFactory< AbstractClass, KeyType >::Register_Internal ( const Key_T key,
WorkerBase worker 
) [inline, protected]

template<class AbstractClass, typename KeyType = PDefaultPFactoryKey>
static PBoolean PFactory< AbstractClass, KeyType >::RegisterAs ( const Key_T newKey,
const Key_T oldKey 
) [inline, static]

template<class AbstractClass, typename KeyType = PDefaultPFactoryKey>
PBoolean PFactory< AbstractClass, KeyType >::RegisterAs_Internal ( const Key_T newKey,
const Key_T oldKey 
) [inline, protected]

template<class AbstractClass, typename KeyType = PDefaultPFactoryKey>
static void PFactory< AbstractClass, KeyType >::Unregister ( const Key_T key  )  [inline, static]

template<class AbstractClass, typename KeyType = PDefaultPFactoryKey>
void PFactory< AbstractClass, KeyType >::Unregister_Internal ( const Key_T key  )  [inline, protected]

template<class AbstractClass, typename KeyType = PDefaultPFactoryKey>
static void PFactory< AbstractClass, KeyType >::UnregisterAll (  )  [inline, static]

template<class AbstractClass, typename KeyType = PDefaultPFactoryKey>
void PFactory< AbstractClass, KeyType >::UnregisterAll_Internal (  )  [inline, protected]


Member Data Documentation

template<class AbstractClass, typename KeyType = PDefaultPFactoryKey>
KeyMap_T PFactory< AbstractClass, KeyType >::keyMap [protected]


The documentation for this class was generated from the following file:
Generated on Thu May 27 01:36:48 2010 for PTLib by  doxygen 1.4.7