#ifndef PLUGINTHREAD_H_ #define PLUGINTHREAD_H_ #include "SocketServer.h" /* sofern lua aktiviert ist ? -> ifdef noetig ? */ #include "lua.hpp" /* * PluginThread */ class PluginThread : public ThreadBase { public: PluginThread(int LOCKNUM, std::string dllfile,XMLNode *pConfig=NULL); PluginThread(); virtual ~PluginThread(); virtual void *Thread() ; bool initPlugin(int LOCKNUM, std::string,XMLNode *pConfig=NULL) ; std::string getPluginName() ; void setPluginName(std::string pluginName) ; MonitorBlockingSignal m_signal ; virtual void addResult(ModuleResultBase* pRes) ; bool m_bStop ; private: MonitorPlugIn* m_plugin ; MODULERESULTSET m_queue ; DLLFactory<MonitorPlugInFactory>* dll ; std::string m_pluginName ; } ; typedef std::vector<PluginThread*> tMonitorPluginThreadVector ; /** * @brief Verwaltet alle Nicht-Audio Plugins */ class MonitorPluginsManager { public: MonitorPluginsManager() ; bool loadScriptFilter(std::string FilterFileName) ; virtual ~MonitorPluginsManager() ; bool addModule(PluginThread* pThread) ; bool removeModule(PluginThread* pThread); bool dispatchResult(ModuleResultBase *pRes) ; bool loadPlugin(std::string dllfile, XMLNode *pConfig, std::string pluginName); bool loadPluginsFromConfigNode(XMLNode *pConfig); protected: MEMLOCK m_MemLock ; tMonitorPluginThreadVector m_Modules ; bool m_bStop ; bool m_bSkipDispatching ; #ifdef LUA lua_State *L; bool m_bUseLUAScript ; #endif }; MonitorPluginsManager& GetPluginsManager() ; #endif /*PLUGINTHREAD_H_*/