<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.3.1"/> <title>dmlite: dmlite::PluginManager Class Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">dmlite  <span id="projectnumber">0.6</span> </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.3.1 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li class="current"><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="inherits.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="namespacedmlite.html">dmlite</a></li><li class="navelem"><a class="el" href="classdmlite_1_1_plugin_manager.html">PluginManager</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> | <a href="#pri-methods">Private Member Functions</a> | <a href="#pri-attribs">Private Attributes</a> | <a href="classdmlite_1_1_plugin_manager-members.html">List of all members</a> </div> <div class="headertitle"> <div class="title">dmlite::PluginManager Class Reference</div> </div> </div><!--header--> <div class="contents"> <p>CatalogInterface can only be instantiated through this class. <a href="classdmlite_1_1_plugin_manager.html#details">More...</a></p> <p><code>#include <<a class="el" href="p_2dmlite_8h_source.html">dmlite.h</a>></code></p> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr class="memitem:aa169b783c1fe53e8251798ba82cf0e8d"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classdmlite_1_1_plugin_manager.html#aa169b783c1fe53e8251798ba82cf0e8d">PluginManager</a> () throw ()</td></tr> <tr class="memdesc:aa169b783c1fe53e8251798ba82cf0e8d"><td class="mdescLeft"> </td><td class="mdescRight">Constructor. <a href="#aa169b783c1fe53e8251798ba82cf0e8d">More...</a><br/></td></tr> <tr class="separator:aa169b783c1fe53e8251798ba82cf0e8d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2ca90f74728fd04c21718afe44b404eb"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classdmlite_1_1_plugin_manager.html#a2ca90f74728fd04c21718afe44b404eb">~PluginManager</a> ()</td></tr> <tr class="memdesc:a2ca90f74728fd04c21718afe44b404eb"><td class="mdescLeft"> </td><td class="mdescRight">Destructor. <a href="#a2ca90f74728fd04c21718afe44b404eb">More...</a><br/></td></tr> <tr class="separator:a2ca90f74728fd04c21718afe44b404eb"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6750bef0f502150f55ae2ce48b54ec6a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classdmlite_1_1_plugin_manager.html#a6750bef0f502150f55ae2ce48b54ec6a">loadPlugin</a> (const std::string &lib, const std::string &id) throw (DmException)</td></tr> <tr class="separator:a6750bef0f502150f55ae2ce48b54ec6a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a102ea75de05f1054fa774507d238dc40"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classdmlite_1_1_plugin_manager.html#a102ea75de05f1054fa774507d238dc40">configure</a> (const std::string &key, const std::string &value) throw (DmException)</td></tr> <tr class="separator:a102ea75de05f1054fa774507d238dc40"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a69b19178899014d1e72df342477cd3b5"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classdmlite_1_1_plugin_manager.html#a69b19178899014d1e72df342477cd3b5">loadConfiguration</a> (const std::string &file) throw (DmException)</td></tr> <tr class="separator:a69b19178899014d1e72df342477cd3b5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a22ccf6bf6df01af99f53008e789921bc"><td class="memItemLeft" align="right" valign="top">std::string </td><td class="memItemRight" valign="bottom"><a class="el" href="classdmlite_1_1_plugin_manager.html#a22ccf6bf6df01af99f53008e789921bc">getConfiguration</a> (const std::string &key) throw (DmException)</td></tr> <tr class="separator:a22ccf6bf6df01af99f53008e789921bc"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa375b2ff9af7fa6190a7ec8e21c2e962"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classdmlite_1_1_plugin_manager.html#aa375b2ff9af7fa6190a7ec8e21c2e962">registerAuthnFactory</a> (<a class="el" href="classdmlite_1_1_authn_factory.html">AuthnFactory</a> *factory) throw (DmException)</td></tr> <tr class="separator:aa375b2ff9af7fa6190a7ec8e21c2e962"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a166846ffad43a965f05e37d0a372d05c"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classdmlite_1_1_plugin_manager.html#a166846ffad43a965f05e37d0a372d05c">registerINodeFactory</a> (<a class="el" href="classdmlite_1_1_i_node_factory.html">INodeFactory</a> *factory) throw (DmException)</td></tr> <tr class="separator:a166846ffad43a965f05e37d0a372d05c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a1a51f3c406b6c806354f9ec653677b7d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classdmlite_1_1_plugin_manager.html#a1a51f3c406b6c806354f9ec653677b7d">registerCatalogFactory</a> (<a class="el" href="classdmlite_1_1_catalog_factory.html">CatalogFactory</a> *factory) throw (DmException)</td></tr> <tr class="separator:a1a51f3c406b6c806354f9ec653677b7d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:acff5851b1a66b7e0f61cdaa9813b2bea"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classdmlite_1_1_plugin_manager.html#acff5851b1a66b7e0f61cdaa9813b2bea">registerPoolManagerFactory</a> (<a class="el" href="classdmlite_1_1_pool_manager_factory.html">PoolManagerFactory</a> *factory) throw (DmException)</td></tr> <tr class="separator:acff5851b1a66b7e0f61cdaa9813b2bea"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a50effc63eb56f111b621b9d24e8c3177"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classdmlite_1_1_plugin_manager.html#a50effc63eb56f111b621b9d24e8c3177">registerIOFactory</a> (<a class="el" href="classdmlite_1_1_i_o_factory.html">IOFactory</a> *factory) throw (DmException)</td></tr> <tr class="separator:a50effc63eb56f111b621b9d24e8c3177"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aaaf813965387951d18f2a1b567b13a84"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classdmlite_1_1_plugin_manager.html#aaaf813965387951d18f2a1b567b13a84">registerPoolDriverFactory</a> (<a class="el" href="classdmlite_1_1_pool_driver_factory.html">PoolDriverFactory</a> *factory) throw (DmException)</td></tr> <tr class="separator:aaaf813965387951d18f2a1b567b13a84"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a272cc9d4f21784415af0f71616cb3794"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classdmlite_1_1_plugin_manager.html#a272cc9d4f21784415af0f71616cb3794">registerConfigureFactory</a> (<a class="el" href="classdmlite_1_1_base_factory.html">BaseFactory</a> *factory) throw (DmException)</td></tr> <tr class="separator:a272cc9d4f21784415af0f71616cb3794"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a5915fc18a0a5836a1ffefab7c0d0c7eb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdmlite_1_1_authn_factory.html">AuthnFactory</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classdmlite_1_1_plugin_manager.html#a5915fc18a0a5836a1ffefab7c0d0c7eb">getAuthnFactory</a> () throw (DmException)</td></tr> <tr class="memdesc:a5915fc18a0a5836a1ffefab7c0d0c7eb"><td class="mdescLeft"> </td><td class="mdescRight">Get the <a class="el" href="classdmlite_1_1_authn_factory.html" title="AuthnFactory.">AuthnFactory</a> implementation on top of the plugin stack. <a href="#a5915fc18a0a5836a1ffefab7c0d0c7eb">More...</a><br/></td></tr> <tr class="separator:a5915fc18a0a5836a1ffefab7c0d0c7eb"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad677f7823979919bd9f49de3f544037c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdmlite_1_1_i_node_factory.html">INodeFactory</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classdmlite_1_1_plugin_manager.html#ad677f7823979919bd9f49de3f544037c">getINodeFactory</a> () throw (DmException)</td></tr> <tr class="separator:ad677f7823979919bd9f49de3f544037c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3c22717d5eeb03bfd5b8bb19c9417544"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdmlite_1_1_catalog_factory.html">CatalogFactory</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classdmlite_1_1_plugin_manager.html#a3c22717d5eeb03bfd5b8bb19c9417544">getCatalogFactory</a> () throw (DmException)</td></tr> <tr class="memdesc:a3c22717d5eeb03bfd5b8bb19c9417544"><td class="mdescLeft"> </td><td class="mdescRight">Get the <a class="el" href="classdmlite_1_1_catalog_factory.html" title="Plug-ins must implement a concrete factory to be instantiated.">CatalogFactory</a> implementation on top of the plugin stack. <a href="#a3c22717d5eeb03bfd5b8bb19c9417544">More...</a><br/></td></tr> <tr class="separator:a3c22717d5eeb03bfd5b8bb19c9417544"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a9a00701100bc8509419a809afbbb30c8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdmlite_1_1_pool_manager_factory.html">PoolManagerFactory</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classdmlite_1_1_plugin_manager.html#a9a00701100bc8509419a809afbbb30c8">getPoolManagerFactory</a> () throw (DmException)</td></tr> <tr class="memdesc:a9a00701100bc8509419a809afbbb30c8"><td class="mdescLeft"> </td><td class="mdescRight">Get the PoolFactory implementation on top of the plugin stack. <a href="#a9a00701100bc8509419a809afbbb30c8">More...</a><br/></td></tr> <tr class="separator:a9a00701100bc8509419a809afbbb30c8"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a120cf6d923a37b60588cb787a5626c6c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdmlite_1_1_pool_driver_factory.html">PoolDriverFactory</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classdmlite_1_1_plugin_manager.html#a120cf6d923a37b60588cb787a5626c6c">getPoolDriverFactory</a> (const std::string &pooltype) throw (DmException)</td></tr> <tr class="memdesc:a120cf6d923a37b60588cb787a5626c6c"><td class="mdescLeft"> </td><td class="mdescRight">Get the appropiate pool driver factory for the pool. <a href="#a120cf6d923a37b60588cb787a5626c6c">More...</a><br/></td></tr> <tr class="separator:a120cf6d923a37b60588cb787a5626c6c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aede688cc2644467b02ff1c5303e514ca"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdmlite_1_1_i_o_factory.html">IOFactory</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classdmlite_1_1_plugin_manager.html#aede688cc2644467b02ff1c5303e514ca">getIOFactory</a> () throw (DmException)</td></tr> <tr class="memdesc:aede688cc2644467b02ff1c5303e514ca"><td class="mdescLeft"> </td><td class="mdescRight">Get the <a class="el" href="classdmlite_1_1_i_o_factory.html" title="Plug-ins must implement a concrete factory to be instantiated.">IOFactory</a> implementation on top of the plugin stack. <a href="#aede688cc2644467b02ff1c5303e514ca">More...</a><br/></td></tr> <tr class="separator:aede688cc2644467b02ff1c5303e514ca"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a> Private Member Functions</h2></td></tr> <tr class="memitem:a1efccf1e13f3ff56ff848654429b8bf4"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classdmlite_1_1_plugin_manager.html#a1efccf1e13f3ff56ff848654429b8bf4">PluginManager</a> (const <a class="el" href="classdmlite_1_1_plugin_manager.html">PluginManager</a> &)</td></tr> <tr class="memdesc:a1efccf1e13f3ff56ff848654429b8bf4"><td class="mdescLeft"> </td><td class="mdescRight">Can not be copied. <a href="#a1efccf1e13f3ff56ff848654429b8bf4">More...</a><br/></td></tr> <tr class="separator:a1efccf1e13f3ff56ff848654429b8bf4"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a> Private Attributes</h2></td></tr> <tr class="memitem:a6f09fc1458997964b7ad7ba3560ac3c4"><td class="memItemLeft" align="right" valign="top">std::map< std::string, <br class="typebreak"/> std::string > </td><td class="memItemRight" valign="bottom"><a class="el" href="classdmlite_1_1_plugin_manager.html#a6f09fc1458997964b7ad7ba3560ac3c4">confValues_</a></td></tr> <tr class="memdesc:a6f09fc1458997964b7ad7ba3560ac3c4"><td class="mdescLeft"> </td><td class="mdescRight">Configuration key/value. <a href="#a6f09fc1458997964b7ad7ba3560ac3c4">More...</a><br/></td></tr> <tr class="separator:a6f09fc1458997964b7ad7ba3560ac3c4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a8252048d244146d011439b7218eba386"><td class="memItemLeft" align="right" valign="top">std::list< <a class="el" href="classdmlite_1_1_authn_factory.html">AuthnFactory</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="classdmlite_1_1_plugin_manager.html#a8252048d244146d011439b7218eba386">authn_plugins_</a></td></tr> <tr class="memdesc:a8252048d244146d011439b7218eba386"><td class="mdescLeft"> </td><td class="mdescRight">Internal list of loaded plug-ins. <a href="#a8252048d244146d011439b7218eba386">More...</a><br/></td></tr> <tr class="separator:a8252048d244146d011439b7218eba386"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a78bea925cfe99d009a2ffe059c6ac484"><td class="memItemLeft" align="right" valign="top">std::list< <a class="el" href="classdmlite_1_1_i_node_factory.html">INodeFactory</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="classdmlite_1_1_plugin_manager.html#a78bea925cfe99d009a2ffe059c6ac484">inode_plugins_</a></td></tr> <tr class="separator:a78bea925cfe99d009a2ffe059c6ac484"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab566770f610d896eb5fda67465ccee73"><td class="memItemLeft" align="right" valign="top">std::list< <a class="el" href="classdmlite_1_1_catalog_factory.html">CatalogFactory</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="classdmlite_1_1_plugin_manager.html#ab566770f610d896eb5fda67465ccee73">catalog_plugins_</a></td></tr> <tr class="separator:ab566770f610d896eb5fda67465ccee73"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a621cf7449df6ab69f95b85b1bddd9815"><td class="memItemLeft" align="right" valign="top">std::list< <a class="el" href="classdmlite_1_1_pool_manager_factory.html">PoolManagerFactory</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="classdmlite_1_1_plugin_manager.html#a621cf7449df6ab69f95b85b1bddd9815">pool_plugins_</a></td></tr> <tr class="separator:a621cf7449df6ab69f95b85b1bddd9815"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aad30ebf20b2c6f69fe43423e181dd84b"><td class="memItemLeft" align="right" valign="top">std::list< <a class="el" href="classdmlite_1_1_i_o_factory.html">IOFactory</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="classdmlite_1_1_plugin_manager.html#aad30ebf20b2c6f69fe43423e181dd84b">io_plugins_</a></td></tr> <tr class="separator:aad30ebf20b2c6f69fe43423e181dd84b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a97f6f0e02b7cf09adce271a143ae5047"><td class="memItemLeft" align="right" valign="top">std::list< <a class="el" href="classdmlite_1_1_pool_driver_factory.html">PoolDriverFactory</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="classdmlite_1_1_plugin_manager.html#a97f6f0e02b7cf09adce271a143ae5047">pool_driver_plugins_</a></td></tr> <tr class="separator:a97f6f0e02b7cf09adce271a143ae5047"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa02f8eab49bdd02516f98639dcb47f86"><td class="memItemLeft" align="right" valign="top">std::list< <a class="el" href="classdmlite_1_1_base_factory.html">BaseFactory</a> * > </td><td class="memItemRight" valign="bottom"><a class="el" href="classdmlite_1_1_plugin_manager.html#aa02f8eab49bdd02516f98639dcb47f86">configure_factory_</a></td></tr> <tr class="separator:aa02f8eab49bdd02516f98639dcb47f86"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3a66cf4db2bf90bb52bd18c36337b15f"><td class="memItemLeft" align="right" valign="top">std::list< void * > </td><td class="memItemRight" valign="bottom"><a class="el" href="classdmlite_1_1_plugin_manager.html#a3a66cf4db2bf90bb52bd18c36337b15f">dlHandles_</a></td></tr> <tr class="memdesc:a3a66cf4db2bf90bb52bd18c36337b15f"><td class="mdescLeft"> </td><td class="mdescRight">Keep pointers returned by dlopen at hand to free on destruction. <a href="#a3a66cf4db2bf90bb52bd18c36337b15f">More...</a><br/></td></tr> <tr class="separator:a3a66cf4db2bf90bb52bd18c36337b15f"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p>CatalogInterface can only be instantiated through this class. </p> </div><h2 class="groupheader">Constructor & Destructor Documentation</h2> <a class="anchor" id="aa169b783c1fe53e8251798ba82cf0e8d"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">dmlite::PluginManager::PluginManager </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> throw ()</td> </tr> </table> </div><div class="memdoc"> <p>Constructor. </p> </div> </div> <a class="anchor" id="a2ca90f74728fd04c21718afe44b404eb"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">dmlite::PluginManager::~PluginManager </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Destructor. </p> </div> </div> <a class="anchor" id="a1efccf1e13f3ff56ff848654429b8bf4"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">dmlite::PluginManager::PluginManager </td> <td>(</td> <td class="paramtype">const <a class="el" href="classdmlite_1_1_plugin_manager.html">PluginManager</a> & </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">private</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Can not be copied. </p> </div> </div> <h2 class="groupheader">Member Function Documentation</h2> <a class="anchor" id="a102ea75de05f1054fa774507d238dc40"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dmlite::PluginManager::configure </td> <td>(</td> <td class="paramtype">const std::string & </td> <td class="paramname"><em>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const std::string & </td> <td class="paramname"><em>value</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> throw (<a class="el" href="classdmlite_1_1_dm_exception.html">DmException</a>)</td> </tr> </table> </div><div class="memdoc"> <p>Set a configuration parameter. It will be passed to the loaded plugins. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">key</td><td>The configuration parameter. </td></tr> <tr><td class="paramname">value</td><td>The value for the configuration parameter. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a5915fc18a0a5836a1ffefab7c0d0c7eb"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classdmlite_1_1_authn_factory.html">AuthnFactory</a>* dmlite::PluginManager::getAuthnFactory </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> throw (<a class="el" href="classdmlite_1_1_dm_exception.html">DmException</a>)</td> </tr> </table> </div><div class="memdoc"> <p>Get the <a class="el" href="classdmlite_1_1_authn_factory.html" title="AuthnFactory.">AuthnFactory</a> implementation on top of the plugin stack. </p> </div> </div> <a class="anchor" id="a3c22717d5eeb03bfd5b8bb19c9417544"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classdmlite_1_1_catalog_factory.html">CatalogFactory</a>* dmlite::PluginManager::getCatalogFactory </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> throw (<a class="el" href="classdmlite_1_1_dm_exception.html">DmException</a>)</td> </tr> </table> </div><div class="memdoc"> <p>Get the <a class="el" href="classdmlite_1_1_catalog_factory.html" title="Plug-ins must implement a concrete factory to be instantiated.">CatalogFactory</a> implementation on top of the plugin stack. </p> </div> </div> <a class="anchor" id="a22ccf6bf6df01af99f53008e789921bc"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::string dmlite::PluginManager::getConfiguration </td> <td>(</td> <td class="paramtype">const std::string & </td> <td class="paramname"><em>key</em></td><td>)</td> <td> throw (<a class="el" href="classdmlite_1_1_dm_exception.html">DmException</a>)</td> </tr> </table> </div><div class="memdoc"> <p>Return an entry from the loaded configuration. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">key</td><td>The configuration parameter. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ad677f7823979919bd9f49de3f544037c"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classdmlite_1_1_i_node_factory.html">INodeFactory</a>* dmlite::PluginManager::getINodeFactory </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> throw (<a class="el" href="classdmlite_1_1_dm_exception.html">DmException</a>)</td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="aede688cc2644467b02ff1c5303e514ca"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classdmlite_1_1_i_o_factory.html">IOFactory</a>* dmlite::PluginManager::getIOFactory </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> throw (<a class="el" href="classdmlite_1_1_dm_exception.html">DmException</a>)</td> </tr> </table> </div><div class="memdoc"> <p>Get the <a class="el" href="classdmlite_1_1_i_o_factory.html" title="Plug-ins must implement a concrete factory to be instantiated.">IOFactory</a> implementation on top of the plugin stack. </p> </div> </div> <a class="anchor" id="a120cf6d923a37b60588cb787a5626c6c"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classdmlite_1_1_pool_driver_factory.html">PoolDriverFactory</a>* dmlite::PluginManager::getPoolDriverFactory </td> <td>(</td> <td class="paramtype">const std::string & </td> <td class="paramname"><em>pooltype</em></td><td>)</td> <td> throw (<a class="el" href="classdmlite_1_1_dm_exception.html">DmException</a>)</td> </tr> </table> </div><div class="memdoc"> <p>Get the appropiate pool driver factory for the pool. </p> </div> </div> <a class="anchor" id="a9a00701100bc8509419a809afbbb30c8"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classdmlite_1_1_pool_manager_factory.html">PoolManagerFactory</a>* dmlite::PluginManager::getPoolManagerFactory </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> throw (<a class="el" href="classdmlite_1_1_dm_exception.html">DmException</a>)</td> </tr> </table> </div><div class="memdoc"> <p>Get the PoolFactory implementation on top of the plugin stack. </p> </div> </div> <a class="anchor" id="a69b19178899014d1e72df342477cd3b5"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dmlite::PluginManager::loadConfiguration </td> <td>(</td> <td class="paramtype">const std::string & </td> <td class="paramname"><em>file</em></td><td>)</td> <td> throw (<a class="el" href="classdmlite_1_1_dm_exception.html">DmException</a>)</td> </tr> </table> </div><div class="memdoc"> <p>Load a configuration file, with plugins and parameters. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">file</td><td>The configuration file. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a6750bef0f502150f55ae2ce48b54ec6a"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dmlite::PluginManager::loadPlugin </td> <td>(</td> <td class="paramtype">const std::string & </td> <td class="paramname"><em>lib</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const std::string & </td> <td class="paramname"><em>id</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td> throw (<a class="el" href="classdmlite_1_1_dm_exception.html">DmException</a>)</td> </tr> </table> </div><div class="memdoc"> <p>Load a plugin. Previously instantiated interfaces won't be affected. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">lib</td><td>The .so file. Usually, (path)/plugin_name.so. </td></tr> <tr><td class="paramname">id</td><td>The plugin ID. Usually, plugin_name. </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="aa375b2ff9af7fa6190a7ec8e21c2e962"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dmlite::PluginManager::registerAuthnFactory </td> <td>(</td> <td class="paramtype"><a class="el" href="classdmlite_1_1_authn_factory.html">AuthnFactory</a> * </td> <td class="paramname"><em>factory</em></td><td>)</td> <td> throw (<a class="el" href="classdmlite_1_1_dm_exception.html">DmException</a>)</td> </tr> </table> </div><div class="memdoc"> <p>Register a <a class="el" href="classdmlite_1_1_authn.html">Authn</a> factory. To be used by concrete implementations </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">factory</td><td>The UserDbGroup concrete factory. </td></tr> </table> </dd> </dl> <dl class="section note"><dt>Note</dt><dd>The same object can be passed to other register functions. DMLite will take care of freeing it only once. </dd></dl> </div> </div> <a class="anchor" id="a1a51f3c406b6c806354f9ec653677b7d"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dmlite::PluginManager::registerCatalogFactory </td> <td>(</td> <td class="paramtype"><a class="el" href="classdmlite_1_1_catalog_factory.html">CatalogFactory</a> * </td> <td class="paramname"><em>factory</em></td><td>)</td> <td> throw (<a class="el" href="classdmlite_1_1_dm_exception.html">DmException</a>)</td> </tr> </table> </div><div class="memdoc"> <p>Register a catalog factory. To be used by concrete implementations (i.e. Plugins) </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">factory</td><td>The catalog concrete factory. </td></tr> </table> </dd> </dl> <dl class="section note"><dt>Note</dt><dd>The same object can be passed to other register functions. DMLite will take care of freeing it only once. </dd></dl> </div> </div> <a class="anchor" id="a272cc9d4f21784415af0f71616cb3794"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dmlite::PluginManager::registerConfigureFactory </td> <td>(</td> <td class="paramtype"><a class="el" href="classdmlite_1_1_base_factory.html">BaseFactory</a> * </td> <td class="paramname"><em>factory</em></td><td>)</td> <td> throw (<a class="el" href="classdmlite_1_1_dm_exception.html">DmException</a>)</td> </tr> </table> </div><div class="memdoc"> <p>Register a bare <a class="el" href="classdmlite_1_1_base_factory.html" title="Base class for factories.">BaseFactory</a>. Only the configure method will be called. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">factory</td><td>The <a class="el" href="classdmlite_1_1_base_factory.html" title="Base class for factories.">BaseFactory</a>. </td></tr> </table> </dd> </dl> <dl class="section note"><dt>Note</dt><dd>The same object can be passed to other register functions. DMLite will take care of freeing it only once. </dd></dl> </div> </div> <a class="anchor" id="a166846ffad43a965f05e37d0a372d05c"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dmlite::PluginManager::registerINodeFactory </td> <td>(</td> <td class="paramtype"><a class="el" href="classdmlite_1_1_i_node_factory.html">INodeFactory</a> * </td> <td class="paramname"><em>factory</em></td><td>)</td> <td> throw (<a class="el" href="classdmlite_1_1_dm_exception.html">DmException</a>)</td> </tr> </table> </div><div class="memdoc"> <p>Register a <a class="el" href="classdmlite_1_1_i_node.html">INode</a> factory. To be used by concrete implementations (i.e. Plugins) </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">factory</td><td>The <a class="el" href="classdmlite_1_1_i_node.html">INode</a> concrete factory. </td></tr> </table> </dd> </dl> <dl class="section note"><dt>Note</dt><dd>The same object can be passed to other register functions. DMLite will take care of freeing it only once. </dd></dl> </div> </div> <a class="anchor" id="a50effc63eb56f111b621b9d24e8c3177"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dmlite::PluginManager::registerIOFactory </td> <td>(</td> <td class="paramtype"><a class="el" href="classdmlite_1_1_i_o_factory.html">IOFactory</a> * </td> <td class="paramname"><em>factory</em></td><td>)</td> <td> throw (<a class="el" href="classdmlite_1_1_dm_exception.html">DmException</a>)</td> </tr> </table> </div><div class="memdoc"> <p>Register a IO factory. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">factory</td><td>The IO concrete factory. </td></tr> </table> </dd> </dl> <dl class="section note"><dt>Note</dt><dd>The same object can be passed to other register functions. DMLite will take care of freeing it only once. </dd></dl> </div> </div> <a class="anchor" id="aaaf813965387951d18f2a1b567b13a84"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dmlite::PluginManager::registerPoolDriverFactory </td> <td>(</td> <td class="paramtype"><a class="el" href="classdmlite_1_1_pool_driver_factory.html">PoolDriverFactory</a> * </td> <td class="paramname"><em>factory</em></td><td>)</td> <td> throw (<a class="el" href="classdmlite_1_1_dm_exception.html">DmException</a>)</td> </tr> </table> </div><div class="memdoc"> <p>Register a <a class="el" href="classdmlite_1_1_pool_driver.html" title="Interface for a pool driver.">PoolDriver</a> factory. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">factory</td><td>The <a class="el" href="classdmlite_1_1_pool_driver.html" title="Interface for a pool driver.">PoolDriver</a> factory. </td></tr> </table> </dd> </dl> <dl class="section note"><dt>Note</dt><dd>The same object can be passed to other register functions. DMLite will take care of freeing it only once. </dd></dl> </div> </div> <a class="anchor" id="acff5851b1a66b7e0f61cdaa9813b2bea"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void dmlite::PluginManager::registerPoolManagerFactory </td> <td>(</td> <td class="paramtype"><a class="el" href="classdmlite_1_1_pool_manager_factory.html">PoolManagerFactory</a> * </td> <td class="paramname"><em>factory</em></td><td>)</td> <td> throw (<a class="el" href="classdmlite_1_1_dm_exception.html">DmException</a>)</td> </tr> </table> </div><div class="memdoc"> <p>Register a pool factory. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">factory</td><td>The pool concrete factory. </td></tr> </table> </dd> </dl> <dl class="section note"><dt>Note</dt><dd>The same object can be passed to other register functions. DMLite will take care of freeing it only once. </dd></dl> </div> </div> <h2 class="groupheader">Member Data Documentation</h2> <a class="anchor" id="a8252048d244146d011439b7218eba386"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">std::list<<a class="el" href="classdmlite_1_1_authn_factory.html">AuthnFactory</a>*> dmlite::PluginManager::authn_plugins_</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">private</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Internal list of loaded plug-ins. </p> </div> </div> <a class="anchor" id="ab566770f610d896eb5fda67465ccee73"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">std::list<<a class="el" href="classdmlite_1_1_catalog_factory.html">CatalogFactory</a>*> dmlite::PluginManager::catalog_plugins_</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">private</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="aa02f8eab49bdd02516f98639dcb47f86"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">std::list<<a class="el" href="classdmlite_1_1_base_factory.html">BaseFactory</a>*> dmlite::PluginManager::configure_factory_</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">private</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="a6f09fc1458997964b7ad7ba3560ac3c4"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">std::map<std::string, std::string> dmlite::PluginManager::confValues_</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">private</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Configuration key/value. </p> </div> </div> <a class="anchor" id="a3a66cf4db2bf90bb52bd18c36337b15f"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">std::list<void*> dmlite::PluginManager::dlHandles_</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">private</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Keep pointers returned by dlopen at hand to free on destruction. </p> </div> </div> <a class="anchor" id="a78bea925cfe99d009a2ffe059c6ac484"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">std::list<<a class="el" href="classdmlite_1_1_i_node_factory.html">INodeFactory</a>*> dmlite::PluginManager::inode_plugins_</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">private</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="aad30ebf20b2c6f69fe43423e181dd84b"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">std::list<<a class="el" href="classdmlite_1_1_i_o_factory.html">IOFactory</a>*> dmlite::PluginManager::io_plugins_</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">private</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="a97f6f0e02b7cf09adce271a143ae5047"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">std::list<<a class="el" href="classdmlite_1_1_pool_driver_factory.html">PoolDriverFactory</a>*> dmlite::PluginManager::pool_driver_plugins_</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">private</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <a class="anchor" id="a621cf7449df6ab69f95b85b1bddd9815"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">std::list<<a class="el" href="classdmlite_1_1_pool_manager_factory.html">PoolManagerFactory</a>*> dmlite::PluginManager::pool_plugins_</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">private</span></span> </td> </tr> </table> </div><div class="memdoc"> </div> </div> <hr/>The documentation for this class was generated from the following file:<ul> <li>include/dmlite/cpp/<a class="el" href="p_2dmlite_8h_source.html">dmlite.h</a></li> </ul> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Fri Jul 12 2013 07:34:22 for dmlite by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.3.1 </small></address> </body> </html>