BALL  1.4.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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 
97  private:
98  mutable QReadWriteLock mutex_;
99  std::list<BALLPlugin*> running_plugins_;
100  };
101 }
102 
103 #endif //BALL_PLUGIN_PLUGINHANDLER_H
104