|
PTLib
Version 2.10.11
|
#include <pluginmgr.h>
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 | |
| virtual | ~PObject () |
| virtual PObject * | Clone () const |
| Create a copy of the class on the heap. 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... | |
| 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 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 |
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 |
|
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 |
|
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 |
| void PPluginManager::LoadPluginDirectory | ( | const PDirectory & | dir | ) |
|
protected |
| void PPluginManager::OnShutdown | ( | ) |
| PBoolean PPluginManager::RegisterService | ( | const PString & | serviceName, |
| const PString & | serviceType, | ||
| PPluginServiceDescriptor * | descriptor | ||
| ) |
| void PPluginManager::RemoveNotifier | ( | const PNotifier & | filterFunction | ) |
|
protected |
|
protected |
|
protected |
|
protected |