crystalspace.jbind.interfaces.iutil.plugin
Interface iPluginManager

All Superinterfaces:
iBase, iPointer
All Known Implementing Classes:
csPluginManager

public interface iPluginManager
extends iBase

This is the plugin manager. The plugin manager is guaranteed thread-safe.

Author:
Java wrapper - Quentin Anciaux, c++ version -

Method Summary
 void clear()
          Unload all plugins from this plugin manager.
 iPluginIterator getPlugins()
          Get an iterator to iterate over all loaded plugins in the plugin manager.
 iBase loadPlugin(java.lang.String classID)
          Load a plugin and (optionally); initialize it.
 iBase loadPlugin(java.lang.String classID, java.lang.String iInterface)
          Load a plugin and (optionally); initialize it.
 iBase loadPlugin(java.lang.String classID, java.lang.String iInterface, int iVersion)
          Load a plugin and (optionally); initialize it.
 iBase loadPlugin(java.lang.String classID, java.lang.String iInterface, int iVersion, boolean init)
          Load a plugin and (optionally); initialize it.
 void queryOptions(iComponent object)
          Query all options supported by given plugin and place into OptionList.
 iBase queryPlugin(java.lang.String iInterface, int iVersion)
          Get first of the loaded plugins that supports given interface ID.
 iBase queryPlugin(java.lang.String classID, java.lang.String iInterface, int iVersion)
          Find a plugin given his class ID.
 boolean registerPlugin(java.lang.String classID, iComponent obj)
          Register a object that implements the iComponent interface as a plugin.
 boolean unloadPlugin(iComponent obj)
          Remove a plugin from system driver's plugin list.
 
Methods inherited from interface crystalspace.jbind.interfaces.iutil.scf.iBase
decRef, getName, getRefCount, getVersion, incRef, queryInterface, queryInterfaceSafe
 
Methods inherited from interface crystalspace.jbind.interfaces.iPointer
changePointer, getPointer, isMemoryOwner, setMemoryOwner
 

Method Detail

clear

public void clear()
Unload all plugins from this plugin manager. Implemented in csPluginManager.


getPlugins

public iPluginIterator getPlugins()
Get an iterator to iterate over all loaded plugins in the plugin manager. This iterator will contain a copy of the plugins so it will not lock the plugin manager while looping over the plugins. Implemented in csPluginManager.

Returns:

loadPlugin

public iBase loadPlugin(java.lang.String classID)
Load a plugin and (optionally); initialize it. If 'init' is true then the plugin will be initialized and QueryOptions(); will be called. Implemented in csPluginManager.

Parameters:
classID -
Returns:

loadPlugin

public iBase loadPlugin(java.lang.String classID,
                        java.lang.String iInterface)
Load a plugin and (optionally); initialize it. If 'init' is true then the plugin will be initialized and QueryOptions(); will be called. Implemented in csPluginManager.

Parameters:
classID -
iInterface -
Returns:

loadPlugin

public iBase loadPlugin(java.lang.String classID,
                        java.lang.String iInterface,
                        int iVersion)
Load a plugin and (optionally); initialize it. If 'init' is true then the plugin will be initialized and QueryOptions(); will be called. Implemented in csPluginManager.

Parameters:
classID -
iInterface -
iVersion -
Returns:

loadPlugin

public iBase loadPlugin(java.lang.String classID,
                        java.lang.String iInterface,
                        int iVersion,
                        boolean init)
Load a plugin and (optionally); initialize it. If 'init' is true then the plugin will be initialized and QueryOptions(); will be called. Implemented in csPluginManager.

Parameters:
classID -
iInterface -
iVersion -
init -
Returns:

queryOptions

public void queryOptions(iComponent object)
Query all options supported by given plugin and place into OptionList. Normally this is done automatically by LoadPlugin(); if 'init' is true. If 'init' is not true then you can call this function AFTER calling object->Initialize();. Implemented in csPluginManager.

Parameters:
object -

queryPlugin

public iBase queryPlugin(java.lang.String classID,
                         java.lang.String iInterface,
                         int iVersion)
Find a plugin given his class ID. Implemented in csPluginManager.

Parameters:
classID -
iInterface -
iVersion -
Returns:

queryPlugin

public iBase queryPlugin(java.lang.String iInterface,
                         int iVersion)
Get first of the loaded plugins that supports given interface ID. 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. Implemented in csPluginManager.

Parameters:
iInterface -
iVersion -
Returns:

registerPlugin

public boolean registerPlugin(java.lang.String classID,
                              iComponent obj)
Register a object that implements the iComponent interface as a plugin. Implemented in csPluginManager.

Parameters:
classID -
obj -
Returns:

unloadPlugin

public boolean unloadPlugin(iComponent obj)
Remove a plugin from system driver's plugin list. Implemented in csPluginManager.

Parameters:
obj -
Returns: