⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 _pion_plugin_8hpp-source.html

📁 用c++编写http server的源码库,对socket等网络处理的代码可迅速转为己用.
💻 HTML
📖 第 1 页 / 共 3 页
字号:
<a name="l00238"></a>00238                            PionPluginData&amp; plugin_data);<a name="l00239"></a>00239 <a name="l00241"></a>00241     <span class="keyword">static</span> std::string <a class="code" href="classpion_1_1_pion_plugin.html#693a3b35e4b8086ef33c11cffdab3491" title="returns the name of the plugin that is currently open">getPluginName</a>(<span class="keyword">const</span> std::string&amp; plugin_file);<a name="l00242"></a>00242     <a name="l00244"></a>00244     <span class="keyword">static</span> <span class="keywordtype">void</span> *loadDynamicLibrary(<span class="keyword">const</span> std::string&amp; plugin_file);<a name="l00245"></a>00245     <a name="l00247"></a>00247     <span class="keyword">static</span> <span class="keywordtype">void</span> closeDynamicLibrary(<span class="keywordtype">void</span> *lib_handle);<a name="l00248"></a>00248     <a name="l00250"></a>00250     <span class="keyword">static</span> <span class="keywordtype">void</span> *getLibrarySymbol(<span class="keywordtype">void</span> *lib_handle, <span class="keyword">const</span> std::string&amp; symbol);<a name="l00251"></a>00251 <a name="l00252"></a>00252     <a name="l00254"></a>00254     <span class="keyword">typedef</span> std::map&lt;std::string, PionPluginData*&gt;  PluginMap;<a name="l00255"></a>00255     <a name="l00256"></a>00256     <a name="l00258"></a>00258     <span class="keyword">static</span> <span class="keyword">const</span> std::string            PION_PLUGIN_CREATE;<a name="l00259"></a>00259     <a name="l00261"></a>00261     <span class="keyword">static</span> <span class="keyword">const</span> std::string            PION_PLUGIN_DESTROY;<a name="l00262"></a>00262     <a name="l00264"></a>00264     <span class="keyword">static</span> <span class="keyword">const</span> std::string            PION_PLUGIN_EXTENSION;<a name="l00265"></a>00265     <a name="l00267"></a>00267     <span class="keyword">static</span> <span class="keyword">const</span> std::string            PION_CONFIG_EXTENSION;<a name="l00268"></a>00268     <a name="l00269"></a>00269     <a name="l00271"></a>00271     <span class="keyword">static</span> std::vector&lt;std::string&gt;     m_plugin_dirs;<a name="l00272"></a>00272     <a name="l00274"></a>00274     <span class="keyword">static</span> PluginMap                    m_plugin_map;<a name="l00275"></a>00275     <a name="l00277"></a>00277     <span class="keyword">static</span> boost::mutex                 m_plugin_mutex;<a name="l00278"></a>00278     <a name="l00279"></a>00279 <a name="l00281"></a>00281     PionPluginData *                    m_plugin_data;<a name="l00282"></a>00282 };<a name="l00283"></a>00283 <a name="l00284"></a>00284 <a name="l00289"></a>00289 <span class="keyword">template</span> &lt;<span class="keyword">typename</span> InterfaceClassType&gt;<a name="l00290"></a><a class="code" href="classpion_1_1_pion_plugin_ptr.html">00290</a> <span class="keyword">class </span><a class="code" href="classpion_1_1_pion_plugin_ptr.html">PionPluginPtr</a> :<a name="l00291"></a>00291     <span class="keyword">public</span> <a class="code" href="classpion_1_1_pion_plugin.html">PionPlugin</a><a name="l00292"></a>00292 {<a name="l00293"></a>00293 <span class="keyword">protected</span>:<a name="l00294"></a>00294     <a name="l00296"></a><a class="code" href="classpion_1_1_pion_plugin_ptr.html#027205ef929dfcd377f05a03c8ae1909">00296</a>     <span class="keyword">typedef</span> InterfaceClassType* <a class="code" href="classpion_1_1_pion_plugin_ptr.html#027205ef929dfcd377f05a03c8ae1909" title="data type for a function that is used to create object instances">CreateObjectFunction</a>(<span class="keywordtype">void</span>);<a name="l00297"></a>00297     <a name="l00299"></a><a class="code" href="classpion_1_1_pion_plugin_ptr.html#67bef082f115d41f53dad0ed0981a06a">00299</a>     <span class="keyword">typedef</span> <span class="keywordtype">void</span> <a class="code" href="classpion_1_1_pion_plugin_ptr.html#67bef082f115d41f53dad0ed0981a06a" title="data type for a function that is used to destroy object instances">DestroyObjectFunction</a>(InterfaceClassType*);<a name="l00300"></a>00300 <a name="l00301"></a>00301     <a name="l00302"></a>00302 <span class="keyword">public</span>:<a name="l00303"></a>00303 <a name="l00305"></a><a class="code" href="classpion_1_1_pion_plugin_ptr.html#8b4b92d1c0efdfab643c9775db060e7b">00305</a>     <a class="code" href="classpion_1_1_pion_plugin_ptr.html#8b4b92d1c0efdfab643c9775db060e7b" title="default constructor &amp; destructor">PionPluginPtr</a>(<span class="keywordtype">void</span>) : <a class="code" href="classpion_1_1_pion_plugin.html">PionPlugin</a>() {}<a name="l00306"></a><a class="code" href="classpion_1_1_pion_plugin_ptr.html#ddfb4859392584aff201fa56e7941715">00306</a>     <span class="keyword">virtual</span> <a class="code" href="classpion_1_1_pion_plugin_ptr.html#ddfb4859392584aff201fa56e7941715">~PionPluginPtr</a>() {}<a name="l00307"></a>00307     <a name="l00309"></a><a class="code" href="classpion_1_1_pion_plugin_ptr.html#278ecf5fa8f5cb9277815ed13474e53f">00309</a>     <a class="code" href="classpion_1_1_pion_plugin_ptr.html#8b4b92d1c0efdfab643c9775db060e7b" title="default constructor &amp; destructor">PionPluginPtr</a>(<span class="keyword">const</span> <a class="code" href="classpion_1_1_pion_plugin_ptr.html">PionPluginPtr</a>&amp; p) : <a class="code" href="classpion_1_1_pion_plugin.html">PionPlugin</a>(p) {}<a name="l00310"></a>00310 <a name="l00312"></a><a class="code" href="classpion_1_1_pion_plugin_ptr.html#b5523bdd29a7067a632c9bc72775dcdc">00312</a>     <a class="code" href="classpion_1_1_pion_plugin_ptr.html">PionPluginPtr</a>&amp; <a class="code" href="classpion_1_1_pion_plugin_ptr.html#b5523bdd29a7067a632c9bc72775dcdc" title="assignment operator">operator=</a>(<span class="keyword">const</span> <a class="code" href="classpion_1_1_pion_plugin_ptr.html">PionPluginPtr</a>&amp; p) { <span class="keywordflow">return</span>(*<span class="keyword">this</span> = p); }<a name="l00313"></a>00313     <a name="l00314"></a>00314 <a name="l00316"></a><a class="code" href="classpion_1_1_pion_plugin_ptr.html#5b0b5f11f5439ab9f0270d28f5424c42">00316</a>     <span class="keyword">inline</span> InterfaceClassType *<a class="code" href="classpion_1_1_pion_plugin_ptr.html#5b0b5f11f5439ab9f0270d28f5424c42" title="creates a new instance of the plug-in object">create</a>(<span class="keywordtype">void</span>) {<a name="l00317"></a>00317         <a class="code" href="classpion_1_1_pion_plugin_ptr.html#027205ef929dfcd377f05a03c8ae1909" title="data type for a function that is used to create object instances">CreateObjectFunction</a> *create_func =<a name="l00318"></a>00318             (<a class="code" href="classpion_1_1_pion_plugin_ptr.html#027205ef929dfcd377f05a03c8ae1909" title="data type for a function that is used to create object instances">CreateObjectFunction</a>*)(<a class="code" href="classpion_1_1_pion_plugin.html#072e8c34ecffa3202c8e0782415b5de0" title="returns a pointer to the plug-in's "create object" function">getCreateFunction</a>());<a name="l00319"></a>00319         <span class="keywordflow">if</span> (create_func == NULL)<a name="l00320"></a>00320             <span class="keywordflow">throw</span> PluginUndefinedException();<a name="l00321"></a>00321         <span class="keywordflow">return</span> create_func();<a name="l00322"></a>00322     }<a name="l00323"></a>00323     <a name="l00325"></a><a class="code" href="classpion_1_1_pion_plugin_ptr.html#d48491247c707f82c0e44ac60a5cbbee">00325</a>     <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classpion_1_1_pion_plugin_ptr.html#d48491247c707f82c0e44ac60a5cbbee" title="destroys an instance of the plug-in object">destroy</a>(InterfaceClassType *object_ptr) {<a name="l00326"></a>00326         <a class="code" href="classpion_1_1_pion_plugin_ptr.html#67bef082f115d41f53dad0ed0981a06a" title="data type for a function that is used to destroy object instances">DestroyObjectFunction</a> *destroy_func =<a name="l00327"></a>00327             (<a class="code" href="classpion_1_1_pion_plugin_ptr.html#67bef082f115d41f53dad0ed0981a06a" title="data type for a function that is used to destroy object instances">DestroyObjectFunction</a>*)(<a class="code" href="classpion_1_1_pion_plugin.html#563e914ec913f5114774495ff85eca2b" title="returns a pointer to the plug-in's "destroy object" function">getDestroyFunction</a>());<a name="l00328"></a>00328         <span class="keywordflow">if</span> (destroy_func == NULL)<a name="l00329"></a>00329             <span class="keywordflow">throw</span> PluginUndefinedException();<a name="l00330"></a>00330         destroy_func(object_ptr);<a name="l00331"></a>00331     }<a name="l00332"></a>00332 };<a name="l00333"></a>00333 <a name="l00334"></a>00334 }   <span class="comment">// end namespace pion</span><a name="l00335"></a>00335 <a name="l00336"></a>00336 <span class="preprocessor">#endif</span></pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Tue Jun 19 13:29:22 2007 for libpion by&nbsp;<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -