BALL  1.5.0
pluginHandler.h
Go to the documentation of this file.
1 #ifndef BALL_PLUGIN_PLUGINHANDLER_H
2 #define BALL_PLUGIN_PLUGINHANDLER_H
3 
4 
5 #ifndef BALL_COMMON_GLOBAL_H
6 # include <BALL/COMMON/global.h>
7 #endif
8 
9 #include <list>
10 #include <QtCore/QReadWriteLock>
11 
12 namespace BALL
13 {
14  class BALLPlugin;
15 
28  {
29  public:
33  virtual ~PluginHandler();
34 
43  virtual bool canHandle(BALLPlugin* plugin) const = 0;
44 
55  bool startPlugin(BALLPlugin* plugin);
56 
64  bool stopPlugin(BALLPlugin* plugin);
65 
72  virtual bool isRunning(BALLPlugin* plugin) const;
73 
74  protected:
84  virtual bool specificSetup_(BALLPlugin* plugin) = 0;
85 
95  virtual bool specificShutdown_(BALLPlugin* plugin) = 0;
96 
101  std::list<BALLPlugin*> running_plugins_;
102  private:
103  mutable QReadWriteLock mutex_;
104  };
105 }
106 
107 #endif //BALL_PLUGIN_PLUGINHANDLER_H
108 
BALL_EXPORT
#define BALL_EXPORT
Definition: COMMON/global.h:50
global.h
BALL::PluginHandler::running_plugins_
std::list< BALLPlugin * > running_plugins_
Definition: pluginHandler.h:101
BALL::PluginHandler::~PluginHandler
virtual ~PluginHandler()
BALL::PluginHandler::canHandle
virtual bool canHandle(BALLPlugin *plugin) const =0
BALL::BALLPlugin
Definition: BALLPlugin.h:21
BALL
Definition: constants.h:13
BALL::PluginHandler::isRunning
virtual bool isRunning(BALLPlugin *plugin) const
BALL::PluginHandler
Definition: pluginHandler.h:28
BALL::PluginHandler::startPlugin
bool startPlugin(BALLPlugin *plugin)
BALL::PluginHandler::specificShutdown_
virtual bool specificShutdown_(BALLPlugin *plugin)=0
BALL::PluginHandler::specificSetup_
virtual bool specificSetup_(BALLPlugin *plugin)=0
BALL::PluginHandler::stopPlugin
bool stopPlugin(BALLPlugin *plugin)