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

📄 _pion_plugin_8hpp-source.html

📁 用c++编写http server的源码库,对socket等网络处理的代码可迅速转为己用.
💻 HTML
📖 第 1 页 / 共 3 页
字号:
<a name="l00090"></a>00090     }<a name="l00091"></a>00091     <a name="l00100"></a>00100     <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classpion_1_1_pion_plugin.html#b84026edef087fb963e6a828d4b8f730">checkCygwinPath</a>(boost::filesystem::path&amp; final_path,<a name="l00101"></a>00101                                 <span class="keyword">const</span> std::string&amp; path_string);<a name="l00102"></a>00102 <a name="l00104"></a>00104     <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classpion_1_1_pion_plugin.html#8b8215145cd47f8f87d87cad24bbc488" title="appends a directory to the plug-in search path">addPluginDirectory</a>(<span class="keyword">const</span> std::string&amp; dir);<a name="l00105"></a>00105     <a name="l00107"></a>00107     <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classpion_1_1_pion_plugin.html#e3edad5eff79a95d95e622ef4bbe3fc0" title="clears all directories from the plug-in search path">resetPluginDirectories</a>(<span class="keywordtype">void</span>);<a name="l00108"></a>00108     <a name="l00109"></a>00109 <a name="l00110"></a>00110     <span class="comment">// default destructor</span><a name="l00111"></a><a class="code" href="classpion_1_1_pion_plugin.html#d09314045c11e6c0e9d7aa7ddb857acf">00111</a>     <span class="keyword">virtual</span> <a class="code" href="classpion_1_1_pion_plugin.html#d09314045c11e6c0e9d7aa7ddb857acf">~PionPlugin</a>() { <a class="code" href="classpion_1_1_pion_plugin.html#1a4d45d0870f435e2b64242062db8e2d" title="releases the plug-in's shared library symbols">releaseData</a>(); }<a name="l00112"></a>00112     <a name="l00114"></a><a class="code" href="classpion_1_1_pion_plugin.html#f7f1e9162c9788d7c84eee023c5db825">00114</a>     <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classpion_1_1_pion_plugin.html#f7f1e9162c9788d7c84eee023c5db825" title="returns true if a shared library is loaded/open">is_open</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (m_plugin_data != NULL); }<a name="l00115"></a>00115     <a name="l00117"></a><a class="code" href="classpion_1_1_pion_plugin.html#693a3b35e4b8086ef33c11cffdab3491">00117</a>     <span class="keyword">inline</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="keywordtype">void</span>)<span class="keyword"> const </span>{<a name="l00118"></a>00118         <span class="keywordflow">return</span> (<a class="code" href="classpion_1_1_pion_plugin.html#f7f1e9162c9788d7c84eee023c5db825" title="returns true if a shared library is loaded/open">is_open</a>() ? m_plugin_data-&gt;<a class="code" href="structpion_1_1_pion_plugin_1_1_pion_plugin_data.html#5be82540cf819b32bf8d7d185c11a87c" title="the name of the plugin (must be unique per process)">m_plugin_name</a> : std::string());<a name="l00119"></a>00119     }<a name="l00120"></a>00120     <a name="l00133"></a>00133     <span class="keywordtype">void</span> <a class="code" href="classpion_1_1_pion_plugin.html#998d9f6ff965e708ad466ed3afac3b68">open</a>(<span class="keyword">const</span> std::string&amp; plugin_file);<a name="l00134"></a>00134 <a name="l00136"></a><a class="code" href="classpion_1_1_pion_plugin.html#b75b4731103e5117844a1fd540c79ae6">00136</a>     <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classpion_1_1_pion_plugin.html#b75b4731103e5117844a1fd540c79ae6" title="closes plug-in library">close</a>(<span class="keywordtype">void</span>) { <a class="code" href="classpion_1_1_pion_plugin.html#1a4d45d0870f435e2b64242062db8e2d" title="releases the plug-in's shared library symbols">releaseData</a>(); }<a name="l00137"></a>00137 <a name="l00138"></a>00138     <a name="l00139"></a>00139 <span class="keyword">protected</span>:<a name="l00140"></a>00140     <a name="l00144"></a><a class="code" href="structpion_1_1_pion_plugin_1_1_pion_plugin_data.html">00144</a>     <span class="keyword">struct </span><a class="code" href="structpion_1_1_pion_plugin_1_1_pion_plugin_data.html">PionPluginData</a><a name="l00145"></a>00145     {<a name="l00147"></a><a class="code" href="structpion_1_1_pion_plugin_1_1_pion_plugin_data.html#a414df1e16193451866ed566d0d0dc81">00147</a>         <a class="code" href="structpion_1_1_pion_plugin_1_1_pion_plugin_data.html#a414df1e16193451866ed566d0d0dc81" title="default constructors for convenience">PionPluginData</a>(<span class="keywordtype">void</span>)<a name="l00148"></a>00148             : <a class="code" href="structpion_1_1_pion_plugin_1_1_pion_plugin_data.html#fb02cbdc46d52d18367cb536a27faed4" title="symbol library loaded from a shared object file">m_lib_handle</a>(NULL), <a class="code" href="structpion_1_1_pion_plugin_1_1_pion_plugin_data.html#d46a17a7084ee32c1b3c833b8efd353f" title="function used to create instances of the plug-in object">m_create_func</a>(NULL), <a class="code" href="structpion_1_1_pion_plugin_1_1_pion_plugin_data.html#78e11ae5befde8406a663ed687ddd8bb" title="function used to destroy instances of the plug-in object">m_destroy_func</a>(NULL),<a name="l00149"></a>00149             <a class="code" href="structpion_1_1_pion_plugin_1_1_pion_plugin_data.html#8bf1caa36074d1af037f6c8732a2e002" title="number of references to this class">m_references</a>(0)<a name="l00150"></a>00150         {}<a name="l00151"></a><a class="code" href="structpion_1_1_pion_plugin_1_1_pion_plugin_data.html#45159b644afc6acb9fb6889584acca30">00151</a>         <a class="code" href="structpion_1_1_pion_plugin_1_1_pion_plugin_data.html#a414df1e16193451866ed566d0d0dc81" title="default constructors for convenience">PionPluginData</a>(<span class="keyword">const</span> std::string&amp; plugin_name)<a name="l00152"></a>00152             : <a class="code" href="structpion_1_1_pion_plugin_1_1_pion_plugin_data.html#fb02cbdc46d52d18367cb536a27faed4" title="symbol library loaded from a shared object file">m_lib_handle</a>(NULL), <a class="code" href="structpion_1_1_pion_plugin_1_1_pion_plugin_data.html#d46a17a7084ee32c1b3c833b8efd353f" title="function used to create instances of the plug-in object">m_create_func</a>(NULL), <a class="code" href="structpion_1_1_pion_plugin_1_1_pion_plugin_data.html#78e11ae5befde8406a663ed687ddd8bb" title="function used to destroy instances of the plug-in object">m_destroy_func</a>(NULL),<a name="l00153"></a>00153             <a class="code" href="structpion_1_1_pion_plugin_1_1_pion_plugin_data.html#5be82540cf819b32bf8d7d185c11a87c" title="the name of the plugin (must be unique per process)">m_plugin_name</a>(plugin_name), <a class="code" href="structpion_1_1_pion_plugin_1_1_pion_plugin_data.html#8bf1caa36074d1af037f6c8732a2e002" title="number of references to this class">m_references</a>(0)<a name="l00154"></a>00154         {}<a name="l00155"></a><a class="code" href="structpion_1_1_pion_plugin_1_1_pion_plugin_data.html#dea2dc4b14932e3915eeb893a44b8740">00155</a>         <a class="code" href="structpion_1_1_pion_plugin_1_1_pion_plugin_data.html#a414df1e16193451866ed566d0d0dc81" title="default constructors for convenience">PionPluginData</a>(<span class="keyword">const</span> <a class="code" href="structpion_1_1_pion_plugin_1_1_pion_plugin_data.html">PionPluginData</a>&amp; p)<a name="l00156"></a>00156             : <a class="code" href="structpion_1_1_pion_plugin_1_1_pion_plugin_data.html#fb02cbdc46d52d18367cb536a27faed4" title="symbol library loaded from a shared object file">m_lib_handle</a>(p.<a class="code" href="structpion_1_1_pion_plugin_1_1_pion_plugin_data.html#fb02cbdc46d52d18367cb536a27faed4" title="symbol library loaded from a shared object file">m_lib_handle</a>), <a class="code" href="structpion_1_1_pion_plugin_1_1_pion_plugin_data.html#d46a17a7084ee32c1b3c833b8efd353f" title="function used to create instances of the plug-in object">m_create_func</a>(p.<a class="code" href="structpion_1_1_pion_plugin_1_1_pion_plugin_data.html#d46a17a7084ee32c1b3c833b8efd353f" title="function used to create instances of the plug-in object">m_create_func</a>),<a name="l00157"></a>00157             <a class="code" href="structpion_1_1_pion_plugin_1_1_pion_plugin_data.html#78e11ae5befde8406a663ed687ddd8bb" title="function used to destroy instances of the plug-in object">m_destroy_func</a>(p.<a class="code" href="structpion_1_1_pion_plugin_1_1_pion_plugin_data.html#78e11ae5befde8406a663ed687ddd8bb" title="function used to destroy instances of the plug-in object">m_destroy_func</a>), <a class="code" href="structpion_1_1_pion_plugin_1_1_pion_plugin_data.html#5be82540cf819b32bf8d7d185c11a87c" title="the name of the plugin (must be unique per process)">m_plugin_name</a>(p.<a class="code" href="structpion_1_1_pion_plugin_1_1_pion_plugin_data.html#5be82540cf819b32bf8d7d185c11a87c" title="the name of the plugin (must be unique per process)">m_plugin_name</a>),<a name="l00158"></a>00158             <a class="code" href="structpion_1_1_pion_plugin_1_1_pion_plugin_data.html#8bf1caa36074d1af037f6c8732a2e002" title="number of references to this class">m_references</a>(p.<a class="code" href="structpion_1_1_pion_plugin_1_1_pion_plugin_data.html#8bf1caa36074d1af037f6c8732a2e002" title="number of references to this class">m_references</a>)<a name="l00159"></a>00159         {}<a name="l00160"></a>00160         <a name="l00162"></a><a class="code" href="structpion_1_1_pion_plugin_1_1_pion_plugin_data.html#fb02cbdc46d52d18367cb536a27faed4">00162</a>         <span class="keywordtype">void</span> *          <a class="code" href="structpion_1_1_pion_plugin_1_1_pion_plugin_data.html#fb02cbdc46d52d18367cb536a27faed4" title="symbol library loaded from a shared object file">m_lib_handle</a>;<a name="l00163"></a>00163         <a name="l00165"></a><a class="code" href="structpion_1_1_pion_plugin_1_1_pion_plugin_data.html#d46a17a7084ee32c1b3c833b8efd353f">00165</a>         <span class="keywordtype">void</span> *          <a class="code" href="structpion_1_1_pion_plugin_1_1_pion_plugin_data.html#d46a17a7084ee32c1b3c833b8efd353f" title="function used to create instances of the plug-in object">m_create_func</a>;<a name="l00166"></a>00166         <a name="l00168"></a><a class="code" href="structpion_1_1_pion_plugin_1_1_pion_plugin_data.html#78e11ae5befde8406a663ed687ddd8bb">00168</a>         <span class="keywordtype">void</span> *          <a class="code" href="structpion_1_1_pion_plugin_1_1_pion_plugin_data.html#78e11ae5befde8406a663ed687ddd8bb" title="function used to destroy instances of the plug-in object">m_destroy_func</a>;<a name="l00169"></a>00169         <a name="l00171"></a><a class="code" href="structpion_1_1_pion_plugin_1_1_pion_plugin_data.html#5be82540cf819b32bf8d7d185c11a87c">00171</a>         std::string     <a class="code" href="structpion_1_1_pion_plugin_1_1_pion_plugin_data.html#5be82540cf819b32bf8d7d185c11a87c" title="the name of the plugin (must be unique per process)">m_plugin_name</a>;<a name="l00172"></a>00172         <a name="l00174"></a><a class="code" href="structpion_1_1_pion_plugin_1_1_pion_plugin_data.html#8bf1caa36074d1af037f6c8732a2e002">00174</a>         <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>   <a class="code" href="structpion_1_1_pion_plugin_1_1_pion_plugin_data.html#8bf1caa36074d1af037f6c8732a2e002" title="number of references to this class">m_references</a>;<a name="l00175"></a>00175     };<a name="l00176"></a>00176 <a name="l00177"></a>00177     <a name="l00179"></a><a class="code" href="classpion_1_1_pion_plugin.html#e48aa98706b350c0c163c7473a77acf4">00179</a>     <a class="code" href="classpion_1_1_pion_plugin.html#e48aa98706b350c0c163c7473a77acf4" title="default constructor is private (use PionPluginPtr class to create objects)">PionPlugin</a>(<span class="keywordtype">void</span>) : m_plugin_data(NULL) {}<a name="l00180"></a>00180     <a name="l00182"></a><a class="code" href="classpion_1_1_pion_plugin.html#c0cb7583f75f3979850d756a4e80559d">00182</a>     <a class="code" href="classpion_1_1_pion_plugin.html#e48aa98706b350c0c163c7473a77acf4" title="default constructor is private (use PionPluginPtr class to create objects)">PionPlugin</a>(<span class="keyword">const</span> <a class="code" href="classpion_1_1_pion_plugin.html">PionPlugin</a>&amp; p) : m_plugin_data(NULL) { <a class="code" href="classpion_1_1_pion_plugin.html#9a76dc0c0fdf0ca4b19f719c122ae424" title="grabs a reference to another plug-in's shared library symbols">grabData</a>(p); }<a name="l00183"></a>00183 <a name="l00185"></a><a class="code" href="classpion_1_1_pion_plugin.html#d875b723a57311289a77f9c9dbb11137">00185</a>     <a class="code" href="classpion_1_1_pion_plugin.html">PionPlugin</a>&amp; <a class="code" href="classpion_1_1_pion_plugin.html#d875b723a57311289a77f9c9dbb11137" title="assignment operator">operator=</a>(<span class="keyword">const</span> <a class="code" href="classpion_1_1_pion_plugin.html">PionPlugin</a>&amp; p) { <a class="code" href="classpion_1_1_pion_plugin.html#9a76dc0c0fdf0ca4b19f719c122ae424" title="grabs a reference to another plug-in's shared library symbols">grabData</a>(p); <span class="keywordflow">return</span> *<span class="keyword">this</span>; }<a name="l00186"></a>00186 <a name="l00188"></a><a class="code" href="classpion_1_1_pion_plugin.html#072e8c34ecffa3202c8e0782415b5de0">00188</a>     <span class="keyword">inline</span> <span class="keywordtype">void</span> *<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>(<span class="keywordtype">void</span>) {<a name="l00189"></a>00189         <span class="keywordflow">return</span> (<a class="code" href="classpion_1_1_pion_plugin.html#f7f1e9162c9788d7c84eee023c5db825" title="returns true if a shared library is loaded/open">is_open</a>() ? m_plugin_data-&gt;<a class="code" href="structpion_1_1_pion_plugin_1_1_pion_plugin_data.html#d46a17a7084ee32c1b3c833b8efd353f" title="function used to create instances of the plug-in object">m_create_func</a> : NULL);<a name="l00190"></a>00190     }<a name="l00191"></a>00191 <a name="l00193"></a><a class="code" href="classpion_1_1_pion_plugin.html#563e914ec913f5114774495ff85eca2b">00193</a>     <span class="keyword">inline</span> <span class="keywordtype">void</span> *<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>(<span class="keywordtype">void</span>) {<a name="l00194"></a>00194         <span class="keywordflow">return</span> (<a class="code" href="classpion_1_1_pion_plugin.html#f7f1e9162c9788d7c84eee023c5db825" title="returns true if a shared library is loaded/open">is_open</a>() ? m_plugin_data-&gt;<a class="code" href="structpion_1_1_pion_plugin_1_1_pion_plugin_data.html#78e11ae5befde8406a663ed687ddd8bb" title="function used to destroy instances of the plug-in object">m_destroy_func</a> : NULL);<a name="l00195"></a>00195     }<a name="l00196"></a>00196 <a name="l00198"></a>00198     <span class="keywordtype">void</span> <a class="code" href="classpion_1_1_pion_plugin.html#1a4d45d0870f435e2b64242062db8e2d" title="releases the plug-in's shared library symbols">releaseData</a>(<span class="keywordtype">void</span>);<a name="l00199"></a>00199     <a name="l00201"></a>00201     <span class="keywordtype">void</span> <a class="code" href="classpion_1_1_pion_plugin.html#9a76dc0c0fdf0ca4b19f719c122ae424" title="grabs a reference to another plug-in's shared library symbols">grabData</a>(<span class="keyword">const</span> <a class="code" href="classpion_1_1_pion_plugin.html">PionPlugin</a>&amp; p);<a name="l00202"></a>00202 <a name="l00203"></a>00203     <a name="l00204"></a>00204 <span class="keyword">private</span>:<a name="l00205"></a>00205 <a name="l00215"></a>00215     <span class="keyword">static</span> <span class="keywordtype">bool</span> findFile(std::string&amp; path_to_file, <span class="keyword">const</span> std::string&amp; name,                             <a name="l00216"></a>00216                          <span class="keyword">const</span> std::string&amp; extension);<a name="l00217"></a>00217     <a name="l00228"></a>00228     <span class="keyword">static</span> <span class="keywordtype">bool</span> checkForFile(std::string&amp; final_path, <span class="keyword">const</span> std::string&amp; start_path,<a name="l00229"></a>00229                              <span class="keyword">const</span> std::string&amp; name, <span class="keyword">const</span> std::string&amp; extension);<a name="l00230"></a>00230     <a name="l00237"></a>00237     <span class="keyword">static</span> <span class="keywordtype">void</span> openPlugin(<span class="keyword">const</span> std::string&amp; plugin_file,

⌨️ 快捷键说明

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