BALL::PluginHandler Class Reference

#include <BALL/PLUGIN/pluginHandler.h>

Inheritance diagram for BALL::PluginHandler:
Inheritance graph
[legend]

List of all members.

Public Member Functions

virtual ~PluginHandler ()
virtual bool canHandle (BALLPlugin *plugin) const =0
bool startPlugin (BALLPlugin *plugin)
bool stopPlugin (BALLPlugin *plugin)
virtual bool isRunning (BALLPlugin *plugin) const

Protected Member Functions

virtual bool specificSetup_ (BALLPlugin *plugin)=0
virtual bool specificShutdown_ (BALLPlugin *plugin)=0

Private Attributes

QReadWriteLock mutex_
std::list< BALLPlugin * > running_plugins_

Detailed Description

A PluginHandler is a class that is responsible for initializing a certain plugin type. It provides the method canHandle() that checks whether a plugin can be initialized by the handler and has the purely virtual methods specificSetup_() and specificShutdown_() that provide plugin type specific initializations.

Implementing a suitable PluginHandler is the second step besides defining the plugin interface itsself that is needed to create a new plugin api for BALL.

Definition at line 27 of file pluginHandler.h.


Constructor & Destructor Documentation

virtual BALL::PluginHandler::~PluginHandler (  )  [virtual]

A virtual destructor. Does nothing at the moment.


Member Function Documentation

virtual bool BALL::PluginHandler::canHandle ( BALLPlugin plugin  )  const [pure virtual]

This function is used to check whether this PluginHandler can initialize the passed plugin. A usual implementation would be something like:

return qobject_cast<MyPlugin*>(plugin) != 0;

Returns:
true if the handler can make use of the plugin, false otherwise

Implemented in BALL::VIEW::InputDevPluginHandler.

virtual bool BALL::PluginHandler::isRunning ( BALLPlugin plugin  )  const [virtual]

This function must check if the passed plugin has been started by this handler

Returns:
true if the handler started the plugin, false otherwise
virtual bool BALL::PluginHandler::specificSetup_ ( BALLPlugin plugin  )  [protected, pure virtual]

A purely virtual function which is responsible for properly initialising the passed plugin instance.

The passed plugin may be assumed to be of a type that can be handled by this PluginHandler.

Returns:
true if the setup succeeded, false otherwise

Implemented in BALL::VIEW::InputDevPluginHandler.

virtual bool BALL::PluginHandler::specificShutdown_ ( BALLPlugin plugin  )  [protected, pure virtual]

A purely virtual function which is responsible for properly deinitialising the passed plugin instance.

The passed plugin may be assumed to be of a type that can be handled by this PluginHandler.

Returns:
true if the deinitialization succeeded, false otherwise

Implemented in BALL::VIEW::InputDevPluginHandler.

bool BALL::PluginHandler::startPlugin ( BALLPlugin plugin  ) 

This function checks whether the plugin can be handled and if it is not already running. Then the specificSetup()_ routine is called which should take care of all plugin specific initilizations.

If specificSetup_() returns true, the plugin is added to the list of already running plugins.

Returns:
true if the plugin could be started, false otherwise.
bool BALL::PluginHandler::stopPlugin ( BALLPlugin plugin  ) 

This function checks whether the plugin is currently running and atempts to stop it via the specificShutdown_() method. On success the plugin is removed from the list of running plugins.

Returns:
true if the plugin could be stopped, false otherwise.

Member Data Documentation

QReadWriteLock BALL::PluginHandler::mutex_ [mutable, private]

Definition at line 98 of file pluginHandler.h.

Definition at line 99 of file pluginHandler.h.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines
Generated by  doxygen 1.6.3