Newer
Older
monitord / monitord / .svn / text-base / PluginThread.h.svn-base
  1. #ifndef PLUGINTHREAD_H_
  2. #define PLUGINTHREAD_H_
  3.  
  4. #include "SocketServer.h"
  5.  
  6. /* sofern lua aktiviert ist ? -> ifdef noetig ? */
  7. #include "lua.hpp"
  8.  
  9. /*
  10. * PluginThread
  11. */
  12.  
  13. class PluginThread : public ThreadBase
  14. {
  15. public:
  16. PluginThread(int LOCKNUM, std::string dllfile,XMLNode *pConfig=NULL);
  17. PluginThread();
  18. virtual ~PluginThread();
  19. virtual void *Thread() ;
  20. bool initPlugin(int LOCKNUM, std::string,XMLNode *pConfig=NULL) ;
  21. std::string getPluginName() ;
  22. void setPluginName(std::string pluginName) ;
  23. MonitorBlockingSignal m_signal ;
  24. virtual void addResult(ModuleResultBase* pRes) ;
  25. bool m_bStop ;
  26.  
  27. private:
  28. MonitorPlugIn* m_plugin ;
  29. MODULERESULTSET m_queue ;
  30. DLLFactory<MonitorPlugInFactory>* dll ;
  31. std::string m_pluginName ;
  32. } ;
  33.  
  34. typedef std::vector<PluginThread*> tMonitorPluginThreadVector ;
  35. /**
  36. * @brief Verwaltet alle Nicht-Audio Plugins
  37. */
  38.  
  39. class MonitorPluginsManager
  40. {
  41. public:
  42. MonitorPluginsManager() ;
  43. bool loadScriptFilter(std::string FilterFileName) ;
  44. virtual ~MonitorPluginsManager() ;
  45. bool addModule(PluginThread* pThread) ;
  46. bool removeModule(PluginThread* pThread);
  47. bool dispatchResult(ModuleResultBase *pRes) ;
  48. bool loadPlugin(std::string dllfile, XMLNode *pConfig, std::string pluginName);
  49. bool loadPluginsFromConfigNode(XMLNode *pConfig);
  50. protected:
  51. MEMLOCK m_MemLock ;
  52. tMonitorPluginThreadVector m_Modules ;
  53. bool m_bStop ;
  54. bool m_bSkipDispatching ;
  55. #ifdef LUA
  56. lua_State *L;
  57. bool m_bUseLUAScript ;
  58. #endif
  59. };
  60.  
  61. MonitorPluginsManager& GetPluginsManager() ;
  62.  
  63.  
  64. #endif /*PLUGINTHREAD_H_*/