Main Page | Namespace List | Class Hierarchy | Alphabetical List | Compound List | File List | Compound Members | File Members | Related Pages

vlPluginManager Class Reference

This class will store all the plugin info in a database. More...

#include <vlpluginmanager.h>

List of all members.

Public Member Functions

 vlPluginManager ()
 Default constructor.

 ~vlPluginManager ()
 Default destructor.

void loadPlugins (bool force=false)
 Searches for plugins and loads them.

void loadBuiltInPlugins ()
void addPluginDir (const std::string &dir)
 Add the given directory to the search path of plugins.

std::vector< std::string > getPluginDirs () const
 Return the directories where the manager will look for plugins.

bool registerPlugin (const vlPluginInfo &pluginInfo, const std::string &entryFuncName, const std::string &fileName)
 Register a plugin.

bool registerPlugin (const vlPluginInfo &pluginInfo, vlLibFactory *factory, const std::string &fileName="builtin")
 Register a plugin.


Protected Member Functions

std::list< SGNode > & baseList ()
 returns the base list


Private Attributes

std::list< SGNodem_list
 The root of the database - each node is a pointer to a list of SNodes.

std::vector< std::string > m_pluginDir
 The directories in which to search for plugins.

bool m_pluginsLoaded
 Set to true on first call of loadPlugins().


Friends

class vlTrader


Detailed Description

This info will be used by vlTrader to query for the requested plugin. Any plugin will first have to register itself with the plugin manager. To register, the plugin info and the file from which the plugin is to be loaded from has to be stored. If the plugin is built into OpenVL library, then use "builtin" as the filename. The loading/unloading of dynamic library is all carried out by this class. You never have to worry about it. Once a plugin is requested, its associated library (if any) is loaded and the plugin is created using the factory provided by it.

Definition at line 49 of file vlpluginmanager.h.


Constructor & Destructor Documentation

vlPluginManager::vlPluginManager  ) 
 

Definition at line 76 of file vlpluginmanager.cpp.

vlPluginManager::~vlPluginManager  ) 
 

Definition at line 82 of file vlpluginmanager.cpp.

References m_pluginDir.


Member Function Documentation

void vlPluginManager::addPluginDir const std::string &  dir  ) 
 

Definition at line 281 of file vlpluginmanager.cpp.

References m_pluginDir.

Referenced by vlKernel::vlKernel().

std::list<SGNode>& vlPluginManager::baseList  )  [inline, protected]
 

Definition at line 207 of file vlpluginmanager.h.

References m_list.

Referenced by vlTrader::getPlugin(), and vlTrader::getPluginsForGroup().

std::vector< std::string > vlPluginManager::getPluginDirs  )  const
 

Definition at line 292 of file vlpluginmanager.cpp.

References m_pluginDir.

void vlPluginManager::loadBuiltInPlugins  ) 
 

Definition at line 259 of file vlpluginmanager.cpp.

References vlPluginInfo::apiVersion(), vlVolDataLinearFactory::create(), vlPlugin::info(), vlPluginInfo::name(), registerPlugin(), vlPluginInfo::service(), vlPluginInfo::serviceDesc(), vlPluginInfo::serviceGroup(), vlPluginInfo::serviceGroupDesc(), and vlPluginInfo::version().

Referenced by vlKernel::vlKernel().

void vlPluginManager::loadPlugins bool  force = false  ) 
 

Set force to true to reload plugins. If loadPlugins() was called once, then recalling loadPlugins() does not do anything unless force is set to true.

Parameters:
force Forces the plugin manager to reload/re-read plugins

Definition at line 88 of file vlpluginmanager.cpp.

References vlKernel::apiVersion(), vlPluginInfo::apiVersion(), vlLibFactory::create(), entrypoint, extension(), filename, vlVersion::getMajor(), vlVersion::getMinor(), vlPlugin::info(), vlPluginInfo::libAPIVersion(), m_pluginDir, m_pluginsLoaded, moduleType, vlPluginInfo::name(), registerPlugin(), vlPluginInfo::service(), vlPluginInfo::serviceDesc(), vlPluginInfo::serviceGroup(), vlPluginInfo::serviceGroupDesc(), and vlPluginInfo::version().

Referenced by vlTrader::getPlugin(), vlTrader::getPluginsForGroup(), and vlKernel::initialize().

bool vlPluginManager::registerPlugin const vlPluginInfo pluginInfo,
vlLibFactory factory,
const std::string &  fileName = "builtin"
 

This will add the plugin to the database of available plugins.

Definition at line 357 of file vlpluginmanager.cpp.

References m_list, vlPluginInfo::service(), and vlPluginInfo::serviceGroup().

bool vlPluginManager::registerPlugin const vlPluginInfo pluginInfo,
const std::string &  entryFuncName,
const std::string &  fileName
 

This will add the plugin to the database of available plugins.

Definition at line 297 of file vlpluginmanager.cpp.

References m_list, vlPluginInfo::service(), and vlPluginInfo::serviceGroup().

Referenced by loadBuiltInPlugins(), and loadPlugins().


Friends And Related Function Documentation

friend class vlTrader [friend]
 

Definition at line 51 of file vlpluginmanager.h.


Member Data Documentation

std::list<SGNode> vlPluginManager::m_list [private]
 

Definition at line 212 of file vlpluginmanager.h.

Referenced by baseList(), and registerPlugin().

std::vector<std::string> vlPluginManager::m_pluginDir [private]
 

Definition at line 215 of file vlpluginmanager.h.

Referenced by addPluginDir(), getPluginDirs(), loadPlugins(), and ~vlPluginManager().

bool vlPluginManager::m_pluginsLoaded [private]
 

Definition at line 218 of file vlpluginmanager.h.

Referenced by loadPlugins().


The documentation for this class was generated from the following files:
Generated on Fri Mar 18 11:33:19 2005 for OpenVL by doxygen 1.3.3