PTLib Version 2.12.9

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
PPluginManager Class Reference

`#include <pluginmgr.h>`

Inheritance diagram for PPluginManager:
[legend]
Collaboration diagram for PPluginManager:
[legend]

## Public Types
enum | NotificationCode { LoadingPlugIn, UnloadingPlugIn }
Public Types inherited from PObject
enum | Comparison { LessThan = -1, EqualTo = 0, GreaterThan = 1 }
| Result of the comparison operation performed by the `Compare()` function. More...

## Public Member Functions
PBoolean | LoadPlugin (const PString &fileName)
void | LoadPluginDirectory (const PDirectory &dir)
void | OnShutdown ()
PStringArray | GetPluginTypes () const
PStringArray | GetPluginsProviding (const PString &serviceType) const
PPluginServiceDescriptor * | GetServiceDescriptor (const PString &serviceName, const PString &serviceType) const
PObject * | CreatePluginsDevice (const PString &serviceName, const PString &serviceType, int userData=0) const
PObject * | CreatePluginsDeviceByName (const PString &deviceName, const PString &serviceType, int userData=0, const PString &serviceName=PString::Empty()) const
PStringArray | GetPluginsDeviceNames (const PString &serviceName, const PString &serviceType, int userData=0) const
PBoolean | GetPluginsDeviceCapabilities (const PString &serviceType, const PString &serviceName, const PString &deviceName, void *capabilities) const
PBoolean | RegisterService (const PString &serviceName, const PString &serviceType, PPluginServiceDescriptor *descriptor)
void | AddNotifier (const PNotifier &filterFunction, PBoolean existing=false)
| Add a notifier to the plugin manager. More...
void | RemoveNotifier (const PNotifier &filterFunction)
Public Member Functions inherited from PObject
unsigned | GetTraceContextIdentifier () const
| Get PTRACE context identifier. More...
void | SetTraceContextIdentifier (unsigned id)
void | GetTraceContextIdentifier (PObject &obj)
void | GetTraceContextIdentifier (PObject *obj)
void | SetTraceContextIdentifier (const PObject &obj)
void | SetTraceContextIdentifier (const PObject *obj)
virtual | ~PObject ()
virtual PObject * | Clone () const
| Create a copy of the class on the heap. More...
template<class CLS >
CLS * | CloneAs () const
| As for Clone() but converts to specified type. More...
virtual PINDEX | HashFunction () const
| This function yields a hash value required by the `PDictionary` class. More...
virtual const char * | GetClass (unsigned ancestor=0) const
| Get the current dynamic type of the object instance. More...
PBoolean | IsClass (const char *cls) const
virtual PBoolean | InternalIsDescendant (const char *clsName) const
| Determine if the dynamic type of the current instance is a descendent of the specified class. More...
__inline const PObject * | PTraceObjectInstance () const
virtual Comparison | Compare (const PObject &obj) const
| Compare the two objects and return their relative rank. More...
virtual Comparison | CompareObjectMemoryDirect (const PObject &obj) const
| Determine the byte wise comparison of two objects. More...
bool | operator== (const PObject &obj) const
| Compare the two objects. More...
bool | operator!= (const PObject &obj) const
| Compare the two objects. More...
bool | operator< (const PObject &obj) const
| Compare the two objects. More...
bool | operator> (const PObject &obj) const
| Compare the two objects. More...
bool | operator<= (const PObject &obj) const
| Compare the two objects. More...
bool | operator>= (const PObject &obj) const
| Compare the two objects. More...
virtual void | PrintOn (ostream &strm) const
| Output the contents of the object to the stream. More...
virtual void | ReadFrom (istream &strm)
| Input the contents of the object from the stream. More...

## Static Public Member Functions
static bool | AddPluginDirs (const PString &dirs)
static PStringArray | GetPluginDirs ()
static PPluginManager & | GetPluginManager ()
Static Public Member Functions inherited from PObject
static const char * | Class ()
| Get the name of the class as a C string. More...
static __inline const PObject * | PTraceObjectInstance (const char *)
static __inline const PObject * | PTraceObjectInstance (const PObject *obj)
static Comparison | InternalCompareObjectMemoryDirect (const PObject *obj1, const PObject *obj2, PINDEX size)
| Internal function caled from CompareObjectMemoryDirect() More...

## Protected Member Functions
void | LoadPluginDirectory (const PDirectory &directory, const PStringList &suffixes)
void | CallNotifier (PDynaLink &dll, NotificationCode code)
Protected Member Functions inherited from PObject
| PObject ()
| Constructor for PObject, made protected so cannot ever create one on its own. More...

## Protected Attributes
PMutex | m_pluginsMutex
PArray< PDynaLink > | m_plugins
PMutex | m_servicesMutex
PArray< PPluginService > | m_services
PMutex | m_notifiersMutex
PList< PNotifier > | m_notifiers
Protected Attributes inherited from PObject
unsigned | m_traceContextIdentifier

## Member Enumeration Documentation

enum PPluginManager::NotificationCode

Enumerator
LoadingPlugIn |
UnloadingPlugIn |

## Member Function Documentation

void PPluginManager::AddNotifier | ( | const PNotifier & | filterFunction,
|  | PBoolean | existing = `false`
| ) |  |

Add a notifier to the plugin manager.

       The call back function is executed just after loading, or
       just after unloading, a plugin.

       To use define:
         PDECLARE_NOTIFIER(PDynaLink, YourClass, YourFunction);
       and
         void YourClass::YourFunction(PDynaLink & dll, INT code)
         {

code == 0 means loading code == 1 means unloading } and to connect to the plugin manager: PPluginManager & mgr = PPluginManager::GetPluginManager(); mgr->AddNotifier((PCREATE_NOTIFIER(YourFunction));

static bool PPluginManager::AddPluginDirs | ( | const PString & | dirs | ) |
| static

void PPluginManager::CallNotifier | ( | PDynaLink & | dll,
|  | NotificationCode | code
| ) |  |
| protected

PObject* PPluginManager::CreatePluginsDevice | ( | const PString & | serviceName,
|  | const PString & | serviceType,
|  | int | userData = `0`
| ) |  | const

PObject* PPluginManager::CreatePluginsDeviceByName | ( | const PString & | deviceName,
|  | const PString & | serviceType,
|  | int | userData = `0`,
|  | const PString & | serviceName = `PString::Empty()`
| ) |  | const

static PStringArray PPluginManager::GetPluginDirs | ( |  | ) |
| static

static PPluginManager& PPluginManager::GetPluginManager | ( |  | ) |
| static

PBoolean PPluginManager::GetPluginsDeviceCapabilities | ( | const PString & | serviceType,
|  | const PString & | serviceName,
|  | const PString & | deviceName,
|  | void * | capabilities
| ) |  | const

PStringArray PPluginManager::GetPluginsDeviceNames | ( | const PString & | serviceName,
|  | const PString & | serviceType,
|  | int | userData = `0`
| ) |  | const

PStringArray PPluginManager::GetPluginsProviding | ( | const PString & | serviceType | ) | const

PStringArray PPluginManager::GetPluginTypes | ( |  | ) | const

PPluginServiceDescriptor* PPluginManager::GetServiceDescriptor | ( | const PString & | serviceName,
|  | const PString & | serviceType
| ) |  | const

PBoolean PPluginManager::LoadPlugin | ( | const PString & | fileName | ) |

Referenced by PPluginModuleManager::LoadPlugin().

void PPluginManager::LoadPluginDirectory | ( | const PDirectory & | dir | ) |

Referenced by PPluginModuleManager::LoadPluginDirectory().

void PPluginManager::LoadPluginDirectory | ( | const PDirectory & | directory,
|  | const PStringList & | suffixes
| ) |  |
| protected

void PPluginManager::OnShutdown | ( |  | ) |

PBoolean PPluginManager::RegisterService | ( | const PString & | serviceName,
|  | const PString & | serviceType,
|  | PPluginServiceDescriptor * | descriptor
| ) |  |

void PPluginManager::RemoveNotifier | ( | const PNotifier & | filterFunction | ) |

## Member Data Documentation

PList<PNotifier> PPluginManager::m_notifiers
| protected

PMutex PPluginManager::m_notifiersMutex
| protected

PArray<PDynaLink> PPluginManager::m_plugins
| protected

PMutex PPluginManager::m_pluginsMutex
| protected

PArray<PPluginService> PPluginManager::m_services
| protected

PMutex PPluginManager::m_servicesMutex
| protected

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

- pluginmgr.h