📄 _pion_plugin_8hpp-source.html
字号:
<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& final_path,<a name="l00101"></a>00101 <span class="keyword">const</span> std::string& 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& 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-><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& 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& 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>& 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>& 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>& <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>& 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-><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-><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>& 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& path_to_file, <span class="keyword">const</span> std::string& name, <a name="l00216"></a>00216 <span class="keyword">const</span> std::string& extension);<a name="l00217"></a>00217 <a name="l00228"></a>00228 <span class="keyword">static</span> <span class="keywordtype">bool</span> checkForFile(std::string& final_path, <span class="keyword">const</span> std::string& start_path,<a name="l00229"></a>00229 <span class="keyword">const</span> std::string& name, <span class="keyword">const</span> std::string& 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& plugin_file,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -