#include <pluginmgr.h>
Inheritance diagram for PPluginManager:

Public Member Functions | |
| PBoolean | LoadPlugin (const PString &fileName) |
| void | LoadPluginDirectory (const PDirectory &dir) |
| 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=PFalse) |
| void | RemoveNotifier (const PNotifier &filterFunction) |
Static Public Member Functions | |
| static void | AddPluginDirs (PString dirs) |
| static PStringArray | GetPluginDirs () |
| static PPluginManager & | GetPluginManager () |
Static Public Attributes | |
| static PString | additionalPluginDirs |
Protected Member Functions | |
| void | LoadPluginDirectory (const PDirectory &directory, const PStringList &suffixes) |
| void | CallNotifier (PDynaLink &dll, INT code) |
Protected Attributes | |
| PMutex | pluginsMutex |
| PArray< PDynaLink > | plugins |
| PMutex | servicesMutex |
| PArray< PPluginService > | services |
| PMutex | notifiersMutex |
| PList< PNotifier > | notifiers |
| void PPluginManager::LoadPluginDirectory | ( | const PDirectory & | dir | ) |
| PStringArray PPluginManager::GetPluginTypes | ( | ) | const |
| PStringArray PPluginManager::GetPluginsProviding | ( | const PString & | serviceType | ) | const |
| PPluginServiceDescriptor* PPluginManager::GetServiceDescriptor | ( | const PString & | serviceName, | |
| const PString & | serviceType | |||
| ) | const |
| 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 |
| PStringArray PPluginManager::GetPluginsDeviceNames | ( | const PString & | serviceName, | |
| const PString & | serviceType, | |||
| int | userData = 0 | |||
| ) | const |
| PBoolean PPluginManager::GetPluginsDeviceCapabilities | ( | const PString & | serviceType, | |
| const PString & | serviceName, | |||
| const PString & | deviceName, | |||
| void * | capabilities | |||
| ) | const |
| PBoolean PPluginManager::RegisterService | ( | const PString & | serviceName, | |
| const PString & | serviceType, | |||
| PPluginServiceDescriptor * | descriptor | |||
| ) |
| static void PPluginManager::AddPluginDirs | ( | PString | dirs | ) | [static] |
| static PStringArray PPluginManager::GetPluginDirs | ( | ) | [static] |
| static PPluginManager& PPluginManager::GetPluginManager | ( | ) | [static] |
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));
| void PPluginManager::RemoveNotifier | ( | const PNotifier & | filterFunction | ) |
| void PPluginManager::LoadPluginDirectory | ( | const PDirectory & | directory, | |
| const PStringList & | suffixes | |||
| ) | [protected] |
| void PPluginManager::CallNotifier | ( | PDynaLink & | dll, | |
| INT | code | |||
| ) | [protected] |
PMutex PPluginManager::pluginsMutex [protected] |
PArray<PDynaLink> PPluginManager::plugins [protected] |
PMutex PPluginManager::servicesMutex [protected] |
PArray<PPluginService> PPluginManager::services [protected] |
PMutex PPluginManager::notifiersMutex [protected] |
PList<PNotifier> PPluginManager::notifiers [protected] |
1.5.1