15 #ifndef PTLIB_PLUGINMGR_H 16 #define PTLIB_PLUGINMGR_H 30 PTRACE(4,
"Cannot open plugin directory " << dir);
33 PTRACE(4,
"Enumerating plugin directory " << dir);
38 PLoadPluginDirectory<C>(obj, entry, suffix);
44 (suffix == NULL) || (fn.
GetTitle().
Right(strlen(suffix)) *= suffix)
47 obj.LoadPlugin(entry);
64 void LoadPluginDirectory (
const PDirectory & dir);
72 PObject * CreatePluginsDevice(
const PString & serviceName,
const PString & serviceType,
int userData = 0)
const;
75 PBoolean GetPluginsDeviceCapabilities(
const PString & serviceType,
const PString & serviceName,
const PString & deviceName,
void * capabilities)
const;
81 static bool AddPluginDirs(
const PString & dirs);
147 {
if (pluginMgr == NULL)
return false;
else return pluginMgr->LoadPlugin(fileName); }
150 {
if (pluginMgr != NULL) pluginMgr->LoadPluginDirectory(directory); }
156 {
return pluginDLLs; }
173 #define PLUGIN_LOADER_STARTUP_NAME "PluginLoaderStartup" 178 #endif // PTLIB_PLUGINMGR_H #define PDECLARE_NOTIFIER(notifier, notifiee, func)
Declare PNotifier derived class with INT parameter. Uses PDECLARE_NOTIFIER2 macro.
Definition: notifier.h:174
void PLoadPluginDirectory(C &obj, const PDirectory &directory, const char *suffix=NULL)
Definition: pluginmgr.h:26
#define PCLASSINFO(cls, par)
Declare all the standard PTLib class information.
Definition: object.h:1049
PBoolean Next()
Move to the next file in the directory scan.
Class specialisation for PNotifierTemplate<INT>
static PString GetExtension()
Get the extension used by this platform for dynamic link libraries.
Definition: pluginmgr.h:57
Definition: pluginmgr.h:139
PFilePathString GetTitle() const
Get the title component of the full file specification, eg for the DOS file "C:\SRC\PWLIB\FRED.DAT" this would be "FRED".
virtual PFilePathString GetEntryName() const
Get the name (without the volume or directory path) of the current entry in the directory scan...
This class describes a full description for a file on the particular platform.
Definition: filepath.h:65
Definition: pluginmgr.h:90
PMutex m_notifiersMutex
Definition: pluginmgr.h:130
PMutex m_pluginsMutex
Definition: pluginmgr.h:124
This is an array collection class of PString objects.
Definition: pstring.h:2024
PString Right(PINDEX len) const
Extract a portion of the string into a new string.
#define PTRACE(level, args)
Output trace.
Definition: object.h:530
PDictionary< PString, PDynaLink > PluginListType
Definition: pluginmgr.h:142
virtual PBoolean Open(int scanMask=PFileInfo::AllFiles)
Open the directory for scanning its list of files.
virtual PluginListType GetPluginList() const
Definition: pluginmgr.h:155
BOOL PBoolean
Definition: object.h:102
Class to represent a directory in the operating system file system.
Definition: pdirect.h:182
virtual void OnShutdown()
Definition: pluginmgr.h:160
PPluginManager * pluginMgr
Definition: pluginmgr.h:169
const char * signatureFunctionName
Definition: pluginmgr.h:168
The character string class.
Definition: pstring.h:108
PArray< PPluginService > m_services
Definition: pluginmgr.h:128
void LoadPluginDirectory(const PDirectory &directory)
Definition: pluginmgr.h:149
PluginListType pluginDLLs
Definition: pluginmgr.h:164
A dynamic link library.
Definition: dynalink.h:51
static PString Empty()
Return an empty string.
virtual void OnStartup()
Definition: pluginmgr.h:158
Definition: pluginmgr.h:20
This is a list collection class of PString objects.
Definition: pstring.h:2184
PFACTORY_LOAD(PluginLoaderStartup)
PFilePathString GetType() const
Get the file type of the file.
PMutex m_servicesMutex
Definition: pluginmgr.h:127
NotificationCode
Definition: pluginmgr.h:89
PArray< PDynaLink > m_plugins
Definition: pluginmgr.h:125
PBoolean LoadPlugin(const PString &fileName)
Definition: pluginmgr.h:146
PList< PNotifier > m_notifiers
Definition: pluginmgr.h:131
virtual void OnLoadPlugin(PDynaLink &, INT)
Definition: pluginmgr.h:152
Ultimate parent class for all objects in the class library.
Definition: object.h:1118