Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > bad97183153701b09df5fae1052b1c30 > files > 3454

crystalspace-doc-1.2.1-5mdv2010.0.i586.rpm

<!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>Crystal Space 1.2.1: iPluginManager Struct Reference (Crystal Space 1.2.1 Public API Reference)</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="head">
 <tr height="59">
  <td class="head" width="202" valign="bottom" style="padding-left:0;"><a href="http://www.crystalspace3d.org/"><img src="csblur.png" width="236" height="59" alt="CrystalSpace" border="0"></a></td>
  <td class="head"><h2>Public API Reference</h2></td>
 </tr>
 <tr height="11">
  <td colspan="2" class="headshadow" valign="top" style="padding-left:0;"><img src="csblurb.png" width="236" height="11" alt="" border="0"></td>
 </tr>
</table>
<div class="content">
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="namespaces.html"><span>Namespaces</span></a></li>
    <li class="current"><a href="classes.html"><span>Classes</span></a></li>
    <li><a href="files.html"><span>Files</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
  </ul>
</div>
<div class="tabs">
  <ul>
    <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
    <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
    <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
    <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
  </ul>
</div>
<h1>iPluginManager Struct Reference<br>
<small>
[<a class="el" href="group__scf.html">Shared Class Facility (SCF)</a>]</small>
</h1><!-- doxytag: class="iPluginManager" --><!-- doxytag: inherits="iBase" -->This is the plugin manager.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="plugin_8h-source.html">iutil/plugin.h</a>&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for iPluginManager:</div>
<div class="dynsection">
<p><center><img src="structiPluginManager__inherit__graph.png" border="0" usemap="#iPluginManager__inherit__map" alt="Inheritance graph"></center>
<map name="iPluginManager__inherit__map">
<area shape="rect" href="classscfImplementation1.html" title="scfImplementation1\&lt; csPluginManager, iPluginManager \&gt;" alt="" coords="5,161,400,188"><area shape="rect" href="structiBase.html" title="This is the basic interface: all other interfaces should be derived from this one..." alt="" coords="175,7,231,33"><area shape="rect" href="classcsPluginManager.html" title="This is the standard implementation of the plugin manager." alt="" coords="137,239,268,265"></map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>

<p>
<a href="structiPluginManager-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 Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiPluginManager.html#c5581c3f292637f76b6408320618db15">Clear</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Unload all plugins from this plugin manager.  <a href="#c5581c3f292637f76b6408320618db15"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classcsPtr.html">csPtr</a><br>
&lt; <a class="el" href="structiPluginIterator.html">iPluginIterator</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiPluginManager.html#040b2fd1933404bbcbd5bf6ffd542d97">GetPlugins</a> ()=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get an iterator to iterate over all loaded plugins in the plugin manager.  <a href="#040b2fd1933404bbcbd5bf6ffd542d97"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="structiBase.html">iBase</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiPluginManager.html#8b4f2992fe9fc0621becac1dd5161271">LoadPlugin</a> (const char *classID, bool init=true)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Load a plugin and (optionally) initialize it.  <a href="#8b4f2992fe9fc0621becac1dd5161271"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiPluginManager.html#1870603a9cea6230abdff8f427514c29">QueryOptions</a> (<a class="el" href="structiComponent.html">iComponent</a> *object)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Query all options supported by given plugin and place into OptionList.  <a href="#1870603a9cea6230abdff8f427514c29"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="structiBase.html">iBase</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiPluginManager.html#76623dae5de0c0ceaabbd678e4ffd382">QueryPlugin</a> (const char *classID, const char *iInterface, int iVersion)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find a plugin given his class ID.  <a href="#76623dae5de0c0ceaabbd678e4ffd382"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="structiBase.html">iBase</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiPluginManager.html#88974fb098d664b992252bc4019f235d">QueryPlugin</a> (const char *iInterface, int iVersion)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get first of the loaded plugins that supports given interface ID.  <a href="#88974fb098d664b992252bc4019f235d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiPluginManager.html#65dd34e5a1e6363cbdf008cbac0a250f">RegisterPlugin</a> (const char *classID, <a class="el" href="structiComponent.html">iComponent</a> *obj)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Register a object that implements the <a class="el" href="structiComponent.html" title="This interface describes a generic component in Crystal Space.">iComponent</a> interface as a plugin.  <a href="#65dd34e5a1e6363cbdf008cbac0a250f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structiPluginManager.html#4006d49d3bafd0d0868a130a9b007c70">UnloadPlugin</a> (<a class="el" href="structiComponent.html">iComponent</a> *obj)=0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove a plugin from system driver's plugin list.  <a href="#4006d49d3bafd0d0868a130a9b007c70"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
This is the plugin manager. 
<p>
The plugin manager is guaranteed thread-safe.<p>
Main creators of instances implementing this interface:<ul>
<li><a class="el" href="classcsInitializer.html#61494a85e1807c790070d36f5a055f10" title="Create everything needed to get a CS application operational.">csInitializer::CreateEnvironment()</a></li><li><a class="el" href="classcsInitializer.html#abf9802ed5ffa9cc5901d1e931dd14d6" title="You will almost certainly want to call this function.">csInitializer::CreatePluginManager()</a></li></ul>
<p>
Main ways to get pointers to this interface:<ul>
<li><a class="el" href="iutil_2objreg_8h.html#ee5a756951eeb09857882b549a563261" title="Query an interface from the registry.">csQueryRegistry()</a> </li></ul>

<p>Definition at line <a class="el" href="plugin_8h-source.html#l00062">62</a> of file <a class="el" href="plugin_8h-source.html">plugin.h</a>.</p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="c5581c3f292637f76b6408320618db15"></a><!-- doxytag: member="iPluginManager::Clear" ref="c5581c3f292637f76b6408320618db15" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iPluginManager::Clear           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Unload all plugins from this plugin manager. 
<p>

<p>Implemented in <a class="el" href="classcsPluginManager.html#868097d308ec8c36c3e859f9fa4355e9">csPluginManager</a>.</p>

</div>
</div><p>
<a class="anchor" name="040b2fd1933404bbcbd5bf6ffd542d97"></a><!-- doxytag: member="iPluginManager::GetPlugins" ref="040b2fd1933404bbcbd5bf6ffd542d97" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classcsPtr.html">csPtr</a>&lt;<a class="el" href="structiPluginIterator.html">iPluginIterator</a>&gt; iPluginManager::GetPlugins           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get an iterator to iterate over all loaded plugins in the plugin manager. 
<p>
This iterator will contain a copy of the plugins so it will not lock the plugin manager while looping over the plugins. 
<p>Implemented in <a class="el" href="classcsPluginManager.html#cf95613cde62356c9f24c3da4d3b1be6">csPluginManager</a>.</p>

</div>
</div><p>
<a class="anchor" name="8b4f2992fe9fc0621becac1dd5161271"></a><!-- doxytag: member="iPluginManager::LoadPlugin" ref="8b4f2992fe9fc0621becac1dd5161271" args="(const char *classID, bool init=true)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structiBase.html">iBase</a>* iPluginManager::LoadPlugin           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>classID</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>init</em> = <code>true</code></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Load a plugin and (optionally) initialize it. 
<p>
If 'init' is true then the plugin will be initialized and <a class="el" href="structiPluginManager.html#1870603a9cea6230abdff8f427514c29" title="Query all options supported by given plugin and place into OptionList.">QueryOptions()</a> will be called. 
<p>Implemented in <a class="el" href="classcsPluginManager.html#1a20c6f612cd7ced6fcbd8d622b1a7dd">csPluginManager</a>.</p>

<p>Referenced by <a class="el" href="plugin_8h-source.html#l00149">csLoadPlugin()</a>, and <a class="el" href="plugin_8h-source.html#l00241">csLoadPluginAlways()</a>.</p>

</div>
</div><p>
<a class="anchor" name="1870603a9cea6230abdff8f427514c29"></a><!-- doxytag: member="iPluginManager::QueryOptions" ref="1870603a9cea6230abdff8f427514c29" args="(iComponent *object)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void iPluginManager::QueryOptions           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structiComponent.html">iComponent</a> *&nbsp;</td>
          <td class="paramname"> <em>object</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Query all options supported by given plugin and place into OptionList. 
<p>
Normally this is done automatically by <a class="el" href="structiPluginManager.html#8b4f2992fe9fc0621becac1dd5161271" title="Load a plugin and (optionally) initialize it.">LoadPlugin()</a> if 'init' is true. If 'init' is not true then you can call this function AFTER calling object-&gt;Initialize(). 
<p>Implemented in <a class="el" href="classcsPluginManager.html#28bb2c3568de1f501c22aef662d21907">csPluginManager</a>.</p>

</div>
</div><p>
<a class="anchor" name="76623dae5de0c0ceaabbd678e4ffd382"></a><!-- doxytag: member="iPluginManager::QueryPlugin" ref="76623dae5de0c0ceaabbd678e4ffd382" args="(const char *classID, const char *iInterface, int iVersion)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structiBase.html">iBase</a>* iPluginManager::QueryPlugin           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>classID</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>iInterface</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>iVersion</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Find a plugin given his class ID. 
<p>

<p>Implemented in <a class="el" href="classcsPluginManager.html#95d3d1065eeabeab3d87241cc73056a9">csPluginManager</a>.</p>

</div>
</div><p>
<a class="anchor" name="88974fb098d664b992252bc4019f235d"></a><!-- doxytag: member="iPluginManager::QueryPlugin" ref="88974fb098d664b992252bc4019f235d" args="(const char *iInterface, int iVersion)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="structiBase.html">iBase</a>* iPluginManager::QueryPlugin           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>iInterface</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>iVersion</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get first of the loaded plugins that supports given interface ID. 
<p>
Warning! Usage of this function is usually not safe since multiple plugins can implement the same interface and there is no way to know which one is the correct one. It is better to use the object registry to find about single loaded components. 
<p>Implemented in <a class="el" href="classcsPluginManager.html#d5f97947b8ca0e88c8dcfbc6a87c0e5a">csPluginManager</a>.</p>

<p>Referenced by <a class="el" href="plugin_8h-source.html#l00117">csQueryPluginClass()</a>.</p>

</div>
</div><p>
<a class="anchor" name="65dd34e5a1e6363cbdf008cbac0a250f"></a><!-- doxytag: member="iPluginManager::RegisterPlugin" ref="65dd34e5a1e6363cbdf008cbac0a250f" args="(const char *classID, iComponent *obj)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool iPluginManager::RegisterPlugin           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>classID</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structiComponent.html">iComponent</a> *&nbsp;</td>
          <td class="paramname"> <em>obj</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Register a object that implements the <a class="el" href="structiComponent.html" title="This interface describes a generic component in Crystal Space.">iComponent</a> interface as a plugin. 
<p>

<p>Implemented in <a class="el" href="classcsPluginManager.html#07583b7fde9a535db91fd68bb5d14f28">csPluginManager</a>.</p>

</div>
</div><p>
<a class="anchor" name="4006d49d3bafd0d0868a130a9b007c70"></a><!-- doxytag: member="iPluginManager::UnloadPlugin" ref="4006d49d3bafd0d0868a130a9b007c70" args="(iComponent *obj)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool iPluginManager::UnloadPlugin           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structiComponent.html">iComponent</a> *&nbsp;</td>
          <td class="paramname"> <em>obj</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Remove a plugin from system driver's plugin list. 
<p>

<p>Implemented in <a class="el" href="classcsPluginManager.html#aef2166515f989c8c1383bf5c3463b46">csPluginManager</a>.</p>

</div>
</div><p>
<hr>The documentation for this struct was generated from the following file:<ul>
<li>iutil/<a class="el" href="plugin_8h-source.html">plugin.h</a></ul>
<hr size="1"><address><small>Generated for Crystal Space 1.2.1 by 
<a href="http://www.doxygen.org/index.html">doxygen</a> 1.5.3 
</small></address> </div></body> </html>