📄 classppluginmanager.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>PPluginManager class Reference</title><link href="doxygen.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.2.18 --><center><a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="namespaces.html">Namespace List</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="annotated.html">Compound List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> <a class="qindex" href="globals.html">File Members</a> </center><hr><h1>PPluginManager Class Reference</h1><code>#include <<a class="el" href="pluginmgr_8h-source.html">pluginmgr.h</a>></code><p><p>Inheritance diagram for PPluginManager:<p><center><img src="classPPluginManager.png" usemap="#PPluginManager_map" border="0" alt=""></center><map name="PPluginManager_map"><area href="classPObject.html" alt="PObject" shape="rect" coords="0,0,106,24"></map><a href="classPPluginManager-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0><tr><td></td></tr><tr><td colspan=2><br><h2>Public Methods</h2></td></tr><tr><td nowrap align=right valign=top>BOOL </td><td valign=bottom><a class="el" href="classPPluginManager.html#a0">LoadPlugin</a> (const <a class="el" href="classPString.html">PString</a> &fileName)</td></tr><tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="classPPluginManager.html#a1">LoadPluginDirectory</a> (const <a class="el" href="classPDirectory.html">PDirectory</a> &dir)</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPStringList.html">PStringList</a> </td><td valign=bottom><a class="el" href="classPPluginManager.html#a2">GetPluginTypes</a> () const</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPStringList.html">PStringList</a> </td><td valign=bottom><a class="el" href="classPPluginManager.html#a3">GetPluginsProviding</a> (const <a class="el" href="classPString.html">PString</a> &serviceType) const</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPPluginServiceDescriptor.html">PPluginServiceDescriptor</a> * </td><td valign=bottom><a class="el" href="classPPluginManager.html#a4">GetServiceDescriptor</a> (const <a class="el" href="classPString.html">PString</a> &serviceName, const <a class="el" href="classPString.html">PString</a> &serviceType)</td></tr><tr><td nowrap align=right valign=top>BOOL </td><td valign=bottom><a class="el" href="classPPluginManager.html#a5">RegisterService</a> (const <a class="el" href="classPString.html">PString</a> &serviceName, const <a class="el" href="classPString.html">PString</a> &serviceType, <a class="el" href="classPPluginServiceDescriptor.html">PPluginServiceDescriptor</a> *descriptor)</td></tr><tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="classPPluginManager.html#a6">AddNotifier</a> (const <a class="el" href="classPNotifier.html">PNotifier</a> &filterFunction, BOOL existing=FALSE)</td></tr><tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="classPPluginManager.html#a7">RemoveNotifier</a> (const <a class="el" href="classPNotifier.html">PNotifier</a> &filterFunction)</td></tr><tr><td colspan=2><br><h2>Static Public Methods</h2></td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPStringArray.html">PStringArray</a> </td><td valign=bottom><a class="el" href="classPPluginManager.html#d0">GetPluginDirs</a> ()</td></tr><tr><td nowrap align=right valign=top>PPluginManager & </td><td valign=bottom><a class="el" href="classPPluginManager.html#d1">GetPluginManager</a> ()</td></tr><tr><td colspan=2><br><h2>Protected Methods</h2></td></tr><tr><td nowrap align=right valign=top>void </td><td valign=bottom><a class="el" href="classPPluginManager.html#b0">CallNotifier</a> (<a class="el" href="classPDynaLink.html">PDynaLink</a> &dll, INT code)</td></tr><tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPMutex.html">PMutex</a> </td><td valign=bottom><a class="el" href="classPPluginManager.html#n0">pluginListMutex</a></td></tr><tr><td nowrap align=right valign=top>PList< <a class="el" href="classPDynaLink.html">PDynaLink</a> > </td><td valign=bottom><a class="el" href="classPPluginManager.html#n1">pluginList</a></td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPMutex.html">PMutex</a> </td><td valign=bottom><a class="el" href="classPPluginManager.html#n2">serviceListMutex</a></td></tr><tr><td nowrap align=right valign=top>PList< <a class="el" href="classPPluginService.html">PPluginService</a> > </td><td valign=bottom><a class="el" href="classPPluginManager.html#n3">serviceList</a></td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPMutex.html">PMutex</a> </td><td valign=bottom><a class="el" href="classPPluginManager.html#n4">notifierMutex</a></td></tr><tr><td nowrap align=right valign=top>PList< <a class="el" href="classPNotifier.html">PNotifier</a> > </td><td valign=bottom><a class="el" href="classPPluginManager.html#n5">notifierList</a></td></tr></table><hr><h2>Member Function Documentation</h2><a name="a6" doxytag="PPluginManager::AddNotifier"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void PPluginManager::AddNotifier </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="classPNotifier.html">PNotifier</a> & </td> <td class="mdname" nowrap> <em>filterFunction</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>BOOL </td> <td class="mdname" nowrap> <em>existing</em> = FALSE</td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>Add a notifier to the plugin manager. The call back function is executed just after loading, or just after unloading, a plugin.<p>To use define: <a class="el" href="notifier_8h.html#a0">PDECLARE_NOTIFIER(PDynaLink, YourClass, YourFunction)</a>; 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 = <a class="el" href="classPPluginManager.html#d1">PPluginManager::GetPluginManager()</a>; mgr->AddNotifier((<a class="el" href="notifier_8h.html#a2">PCREATE_NOTIFIER(YourFunction)</a>); </td> </tr></table><a name="b0" doxytag="PPluginManager::CallNotifier"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> void PPluginManager::CallNotifier </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="classPDynaLink.html">PDynaLink</a> & </td> <td class="mdname" nowrap> <em>dll</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>INT </td> <td class="mdname" nowrap> <em>code</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"><code> [protected]</code></td> </tr> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p> </td> </tr></table><a name="d0" doxytag="PPluginManager::GetPluginDirs"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> <a class="el" href="classPStringArray.html">PStringArray</a> PPluginManager::GetPluginDirs </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top">) </td> <td class="md" nowrap><code> [static]</code></td> </tr> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p> </td> </tr></table><a name="d1" doxytag="PPluginManager::GetPluginManager"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> PPluginManager& PPluginManager::GetPluginManager </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top">) </td> <td class="md" nowrap><code> [static]</code></td> </tr> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p> </td> </tr></table><a name="a3" doxytag="PPluginManager::GetPluginsProviding"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> <a class="el" href="classPStringList.html">PStringList</a> PPluginManager::GetPluginsProviding </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="classPString.html">PString</a> & </td> <td class="mdname1" valign="top" nowrap> <em>serviceType</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap> const</td> </tr> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p> </td> </tr></table><a name="a2" doxytag="PPluginManager::GetPluginTypes"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> <a class="el" href="classPStringList.html">PStringList</a> PPluginManager::GetPluginTypes </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top">) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p> </td> </tr></table><a name="a4" doxytag="PPluginManager::GetServiceDescriptor"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> <a class="el" href="classPPluginServiceDescriptor.html">PPluginServiceDescriptor</a>* PPluginManager::GetServiceDescriptor </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">const <a class="el" href="classPString.html">PString</a> & </td> <td class="mdname" nowrap> <em>serviceName</em>, </td> </tr> <tr> <td></td> <td></td> <td class="md" nowrap>const <a class="el" href="classPString.html">PString</a> & </td> <td class="mdname" nowrap> <em>serviceType</em></td> </tr> <tr> <td></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p> </td> </tr></table><a name="a0" doxytag="PPluginManager::LoadPlugin"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0">
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -