gephex--main--0.4--patch-1878
[email protected] Mon, 11 Apr 2005 21:54:43 +0200 (CEST)
| Newsgroups | gmane.comp.video.gephex.devel |
|---|---|
| Message-ID | <[email protected]> |
Archive: [email protected] New revision: gephex--main--0.4--patch-1878 -- Revision: gephex--main--0.4--patch-1878 Archive: [email protected] Creator: The Gephex Source Archive <[email protected]> Date: Mon Apr 11 21:51:36 CEST 2005 Standard-date: 2005-04-11 19:51:36 GMT Removed-files: base/src/interfaces/.arch-ids/moduleclassloadercontrol.if.id base/src/interfaces/.arch-ids/typeclassloadercontrol.if.id base/src/interfaces/.arch-ids/typeclassname.if.id base/src/interfaces/moduleclassloadercontrol.if base/src/interfaces/typeclassloadercontrol.if base/src/interfaces/typeclassname.if qtgui/src/gui/dialogs/.arch-ids/dllselectordialog.cpp.id qtgui/src/gui/dialogs/.arch-ids/dllselectordialog.h.id qtgui/src/gui/dialogs/dllselectordialog.cpp qtgui/src/gui/dialogs/dllselectordialog.h Modified-files: base/src/interfaces/Makefile.am base/src/netinterfaces/Makefile.am engine/src/dllloader/c_module.cpp engine/src/dllloader/c_module.h engine/src/dllloader/c_moduleclass.cpp engine/src/dllloader/c_moduleclass.h engine/src/dllloader/dllloader.cpp engine/src/dllloader/dllloader.h engine/src/dllloader/typedllloader.cpp engine/src/dllloader/typedllloader.h engine/src/engine/controller.cpp engine/src/engine/controller.h engine/src/renderer/renderer.h qtgui/src/gui/dialogs/Makefile.am qtgui/src/gui/vjmainwindow.cpp qtgui/src/gui/vjmainwindow.h qtgui/src/guimodel/enginewrapper.cpp qtgui/src/guimodel/enginewrapper.h New-patches: [email protected]/gephex--main--0.4--patch-1878 [email protected]/gephex--frei0r--0.4--patch-2 [email protected]/gephex--frei0r--0.4--patch-3 [email protected]/gephex--frei0r--0.4--patch-4 [email protected]/gephex--frei0r--0.4--patch-5 [email protected]/gephex--frei0r--0.4--patch-6 [email protected]/gephex--frei0r--0.4--patch-7 [email protected]/gephex--frei0r--0.4--patch-8 [email protected]/gephex--frei0r--0.4--patch-9 [email protected]/gephex--frei0r--0.4--patch-10 Summary: [MERGE-REQUEST] refactor plugin handling Keywords: Patches applied: * [email protected]/gephex--frei0r--0.4--patch-2 tag of [email protected]/gephex--main--0.4--patch-1877 * [email protected]/gephex--frei0r--0.4--patch-3 remove plugin manager dialog * [email protected]/gephex--frei0r--0.4--patch-4 remove most plugin loading stuff from gui and controller * [email protected]/gephex--frei0r--0.4--patch-5 syncronize on connect * [email protected]/gephex--frei0r--0.4--patch-6 remove unused moduleclassname... code * [email protected]/gephex--frei0r--0.4--patch-7 remove typeclassname interface * [email protected]/gephex--frei0r--0.4--patch-8 refactor step dllloader * [email protected]/gephex--frei0r--0.4--patch-9 move the plugin scanning code to dllloader * [email protected]/gephex--frei0r--0.4--patch-10 remove segfault at exit * removed files base/src/interfaces/.arch-ids/moduleclassloadercontrol.if.id base/src/interfaces/.arch-ids/typeclassloadercontrol.if.id base/src/interfaces/.arch-ids/typeclassname.if.id base/src/interfaces/moduleclassloadercontrol.if base/src/interfaces/typeclassloadercontrol.if base/src/interfaces/typeclassname.if qtgui/src/gui/dialogs/.arch-ids/dllselectordialog.cpp.id qtgui/src/gui/dialogs/.arch-ids/dllselectordialog.h.id qtgui/src/gui/dialogs/dllselectordialog.cpp qtgui/src/gui/dialogs/dllselectordialog.h * added files {arch}/gephex/gephex--frei0r/gephex--frei0r--0.4/[email protected]/patch-log/patch-10 {arch}/gephex/gephex--frei0r/gephex--frei0r--0.4/[email protected]/patch-log/patch-2 {arch}/gephex/gephex--frei0r/gephex--frei0r--0.4/[email protected]/patch-log/patch-3 {arch}/gephex/gephex--frei0r/gephex--frei0r--0.4/[email protected]/patch-log/patch-4 {arch}/gephex/gephex--frei0r/gephex--frei0r--0.4/[email protected]/patch-log/patch-5 {arch}/gephex/gephex--frei0r/gephex--frei0r--0.4/[email protected]/patch-log/patch-6 {arch}/gephex/gephex--frei0r/gephex--frei0r--0.4/[email protected]/patch-log/patch-7 {arch}/gephex/gephex--frei0r/gephex--frei0r--0.4/[email protected]/patch-log/patch-8 {arch}/gephex/gephex--frei0r/gephex--frei0r--0.4/[email protected]/patch-log/patch-9 {arch}/gephex/gephex--main/gephex--main--0.4/[email protected]/patch-log/patch-1878 * modified files --- orig/base/src/interfaces/Makefile.am +++ mod/base/src/interfaces/Makefile.am @@ -7,7 +7,6 @@ modelstatus.if \ moduleclass.if \ moduleclassinfo.if \ - moduleclassloadercontrol.if \ moduleclassname.if \ moduleclassspec.if \ moduleconstructiondumb.if \ @@ -21,9 +20,7 @@ serializedgraph.if \ smartcontrolvalue.if \ typeclass.if \ - typeclassinfo.if \ - typeclassloadercontrol.if \ - typeclassname.if + typeclassinfo.if EXTRA_DIST = interfaces.dsp interfaces.mak interfaces.dep $(INTERFACE_FILES) --- orig/base/src/netinterfaces/Makefile.am +++ mod/base/src/netinterfaces/Makefile.am @@ -7,15 +7,11 @@ libnetinterfaces_a_SOURCES = \ enginecontrolsendernet.cpp \ enginecontrolreceivernet.cpp \ - moduleclassloadercontrolsendernet.cpp \ - moduleclassloadercontrolreceivernet.cpp \ renderercontrolreceivernet.cpp \ renderercontrolsendernet.cpp \ modelcontrolreceivernet.cpp \ moduledatareceivernet.cpp \ moduledatasendernet.cpp \ - moduleclassnamereceivernet.cpp \ - moduleclassnamesendernet.cpp \ moduleconstructiondumbreceivernet.cpp \ modelcontrolsendernet.cpp \ moduleconstructiondumbsendernet.cpp \ @@ -49,10 +45,6 @@ modelcontrolsendernet.h \ moduleclassinforeceivernet.h \ moduleclassinfosendernet.h \ - moduleclassloadercontrolreceivernet.h \ - moduleclassloadercontrolsendernet.h \ - moduleclassnamereceivernet.h \ - moduleclassnamesendernet.h \ moduleconstructiondumbreceivernet.h \ moduleconstructiondumbsendernet.h \ moduledatareceivernet.h \ --- orig/engine/src/dllloader/c_module.cpp +++ mod/engine/src/dllloader/c_module.cpp @@ -208,7 +208,7 @@ CModuleVTable& vtable, const CModuleAttributes& attributes, const ITypeFactory& tfactory_, - const std::vector<ITypePtr>& defaultInputTypes, + const std::vector<IType*>& defaultInputTypes, const std::string& module_class_name) : IModule(-1), m_instance(instance), m_vtable(&vtable), inputs(attributes.inputs.size()),outputs(attributes.outputs.size()), --- orig/engine/src/dllloader/c_module.h +++ mod/engine/src/dllloader/c_module.h @@ -42,7 +42,7 @@ public: CModule(void* instance,CModuleVTable&, const CModuleAttributes& attributes,const ITypeFactory&, - const std::vector<ITypePtr>& defaultInputTypes, + const std::vector<IType*>& defaultInputTypes, const std::string& module_class_name); virtual ~CModule(); --- orig/engine/src/dllloader/c_moduleclass.cpp +++ mod/engine/src/dllloader/c_moduleclass.cpp @@ -103,7 +103,7 @@ for (unsigned int i = 0; i < defaultInputValues.size(); ++i) { - ITypePtr tmp(tFactory.buildNew(attributes->inputs[i])); + IType* tmp(tFactory.buildNew(attributes->inputs[i])); //TODO const TypeAttributes* attr = attributes->fixedAttributes[i]; --- orig/engine/src/dllloader/c_moduleclass.h +++ mod/engine/src/dllloader/c_moduleclass.h @@ -59,8 +59,7 @@ CModuleFunctionTable* functionTable; CModuleAttributes* attributes; - typedef utils::AutoPtr<IType> ITypePtr; - mutable std::vector<ITypePtr> defaultInputValues; + mutable std::vector<IType*> defaultInputValues; std::string m_name; frei0r_funs_t* m_frei0r; int m_frei0r_plugin_type; --- orig/engine/src/dllloader/dllloader.cpp +++ mod/engine/src/dllloader/dllloader.cpp @@ -31,6 +31,7 @@ #include <sstream> #include <stdexcept> #include <iostream> +#include <list> #include "nameresolver.h" @@ -49,6 +50,10 @@ #include "utils/autoptr.h" #include "utils/sharedlibrary.h" #include "utils/ilogger.h" +#include "utils/filesystem.h" +#include "utils/stringtokenizer.h" + + #include "interfaces/imoduleclassreceiver.h" #include "interfaces/imoduleclassspecreceiver.h" @@ -57,7 +62,6 @@ #include "interfaces/itypeclassreceiver.h" #include "interfaces/itypeclassinforeceiver.h" -#include "interfaces/itypeclassnamereceiver.h" #include "frei0rwrapper.h" @@ -68,8 +72,6 @@ void moduleLog(int level, const char* sender, const char* msg); }; - - void readFrei0rFuns(DllLoader::SharedLibraryPtr sl, frei0r_funs_t& f0r) { f0r.init = (f0r_init_t) sl->loadSymbol("f0r_init"); @@ -166,38 +168,127 @@ } } - - DllLoader::DllLoader(utils::AutoPtr<utils::ILogger>& logger) - : resolver(new NameResolver()), m_infoReceiver(0), m_classReceiver(0), - m_specReceiver(0), m_typeInfoReceiver(0), m_typeClassReceiver(0), - m_logger(logger) + + #if defined(OS_WIN32) + static const char* MODULE_ENDING = ".dll"; + static const char* TYPE_ENDING = ".dll"; +#elif defined(OS_POSIX) + static const char* MODULE_ENDING = ".so"; + static const char* TYPE_ENDING = ".so"; +#else +#error "unknown OS" +#endif + + std::vector<std::string> getFilesInPath(const std::string& dirName, + const std::string& ending) { - s_logger = logger; + std::vector<std::string> fileNames; + + std::list<utils::DirEntry> entries; + utils::FileSystem::listDir(dirName, entries); + + for (std::list<utils::DirEntry>::const_iterator it = entries.begin(); + it != entries.end(); ++it) + { + std::string name = it->getName(); + + if (name == "." || name == "..") + continue; + + if (it->getType() == utils::DirEntry::DIRECTORY) + { + std::vector<std::string> + subfiles= getFilesInPath(name, ending); + + fileNames.insert(fileNames.end(), + subfiles.begin(), subfiles.end()); + } + else + { + if (name.length() > ending.length() + && name.substr(name.length()-ending.length(), + ending.length()) == ending) + { + fileNames.push_back(dirName + name); + } + } + } + return fileNames; } - - DllLoader::~DllLoader() + + /** + * Returns a vector of all files in a list of paths, that have a certain + * file ending. + * Files can be listed more than once if a path of the list is a subpath + * of another path in the list. + */ + std::vector<std::string> getFilesInPathList(const std::string& pathList, + const std::string& ending) { - delete resolver; + std::vector<std::string> files; + + utils::StringTokenizer st(pathList); + std::string path; + + while ((path = st.next(";")) != "") + try + { + std::vector<std::string> fs = getFilesInPath(path, ending); + files.insert(files.end(),fs.begin(), fs.end()); + } + catch (...) + { + // we ignore all paths we cannot open + } + + return files; } - void DllLoader::unloadAll() + + DllLoader::DllLoader(utils::AutoPtr<utils::ILogger>& logger, + IModuleClassInfoReceiver& infoReceiver, + IModuleClassSpecReceiver& specReceiver, + IModuleClassReceiver& classReceiver, + // ITypeClassInfoReceiver& typeInfoReceiver, + ITypeClassReceiver& typeClassReceiver, + const std::string& module_path, + const std::string& type_path, + const std::string& frei0r_path + ) + : resolver(new NameResolver()), + m_infoReceiver(infoReceiver), + m_classReceiver(classReceiver), + m_specReceiver(specReceiver), + // m_typeInfoReceiver(typeInfoReceiver), + m_typeClassReceiver(typeClassReceiver), m_logger(logger) { - //unload all loaded modules - typedef std::vector<std::pair<std::string, void*> > Fotze; - Fotze names(m_moduleHandles.size()); + s_logger = logger; - std::copy(m_moduleHandles.begin(), m_moduleHandles.end(), - names.begin()); + // load stuff + std::vector<std::string> modules = getFilesInPathList(module_path, + MODULE_ENDING); + + std::vector<std::string> types = getFilesInPathList(type_path, + TYPE_ENDING); + + std::vector<std::string> frei0rs; + if (frei0r_path != "") + frei0rs = getFilesInPathList(frei0r_path, MODULE_ENDING); - for (Fotze::const_iterator it = names.begin() ;it != names.end(); ++it) - { - std::string name = it->first; -#if (ENGINE_VERBOSITY > 1) - std::cout << "Unloading " << name << std::endl; -#endif - unloadModuleClass(name); - } - //TODO: unload type classes + std::cout << "Reading plugins..."; + std::cout.flush(); + readDlls(modules, types, frei0rs); + std::cout << " done "; + } + + DllLoader::~DllLoader() + { + // TODO + // + // 1. call cleanup/deinit methods of all types/effects/plugins + // 2. release shared library + + delete resolver; } void DllLoader::readDlls(const std::vector<std::string>& modules, @@ -212,14 +303,14 @@ #if (ENGINE_VERBOSITY > 0) std::cout << "processing typ file: " << *it << std::endl; #endif - processTypFile(*it); + processTypeFile(*it); } catch (std::runtime_error& e) { std::cerr << e.what() << std::endl; } } - + for (std::vector<std::string>::const_iterator it = modules.begin(); it != modules.end(); ++it) { @@ -244,9 +335,10 @@ { std::cerr << e.what() << std::endl; } - } + } } - + + //TODO: Fehlerbehandlung! void DllLoader::loadModule(SharedLibraryPtr sl, const std::string& moduleName) @@ -315,137 +407,52 @@ } } - void DllLoader::loadModuleClass(const std::string& moduleName) - { - try - { - std::map<std::string,std::string>::const_iterator it = - m_mod2fileName.find(moduleName); - - if (it == m_mod2fileName.end()) - { - it = m_f0r2fileName.find(moduleName); - - if (it == m_f0r2fileName.end()) - throw std::runtime_error("ModuleClass gibts halt nicht"); - - std::string filename = it->second; - - frei0r_funs_t f0r; - SharedLibraryPtr sl = this->loadDll(filename); - - readFrei0rFuns(sl, f0r); - - loadFrei0r(f0r, sl, moduleName); - return; - } - - std::string filename = it->second; - - SharedLibraryPtr sl = this->loadDll(filename); - if (sl->loadSymbol("update") != 0) - { - loadModule(sl, moduleName); - } - else - { - throw std::runtime_error("Unbekannter Dll Type."); - } - } - catch (std::runtime_error& e) - { - m_logger->error("LoadModuleClass", e.what()); - } - } - void DllLoader::unloadModuleClass(const std::string& name) - { - std::map<std::string,SharedLibraryPtr>::iterator it - = m_moduleHandles.find(name); - std::map<std::string,utils::AutoPtr<utils::Buffer> >::iterator - it2 = m_moduleInfos.find(name); - - if (it == m_moduleHandles.end() || it2 == m_moduleInfos.end()) - { - throw std::runtime_error("unbekannte moduleclass " - "bei unloadmoduleclass"); - } - - m_specReceiver->moduleClassUnloaded(name); - m_classReceiver->moduleClassUnloaded(name); - m_infoReceiver->moduleClassUnloaded(name); - - SharedLibraryPtr sl = it->second; - - // Call the shutdown function of the dll - shutDownT shutDown = (shutDownT) sl->loadSymbol("shutDown"); - - if (shutDown != 0) - shutDown(); - - - m_moduleInfos.erase(it2); - m_moduleHandles.erase(it); - - } - void DllLoader::synchronize() { - //TODO: bis jetzt wird nur der moduleClassNameReceiver - // und der moduleClassInfoReceiver benachrichtigt! + //TODO: bis jetzt wird nur moduleClassInfoReceiver benachrichtigt! #if (ENGINE_VERBOSITY > 0) std::cout << "sync dllloader" << std::endl; #endif - m_infoReceiver->syncStarted(); -// m_nameReceiver->syncStarted(); - - for (std::map<std::string,std::string>::const_iterator nameIt - = m_mod2fileName.begin(); - nameIt != m_mod2fileName.end(); ++nameIt) - { - m_nameReceiver->moduleClassNameExists(nameIt->first); - } - - - for (std::map<std::string,std::string>::const_iterator nameIt - = m_f0r2fileName.begin(); - nameIt != m_f0r2fileName.end(); ++nameIt) - { - m_nameReceiver->moduleClassNameExists(nameIt->first); - } + m_infoReceiver.syncStarted(); for (std::map<std::string,utils::AutoPtr<utils::Buffer> >::const_iterator modIt = m_moduleInfos.begin(); modIt != m_moduleInfos.end(); ++modIt) { - m_infoReceiver->moduleClassLoaded(modIt->first, *modIt->second); + m_infoReceiver.moduleClassLoaded(modIt->first, *modIt->second); } - //m_nameReceiver->syncFinished(); - m_infoReceiver->syncFinished(); + m_infoReceiver.syncFinished(); } - void DllLoader::loadTypeClass(const std::string& typeName) + void DllLoader::processTypeFile(const std::string& filename) { - // get the filename of the type - std::map<std::string,std::string>::const_iterator it = - m_typ2fileName.find(typeName); - - if (it == m_typ2fileName.end()) + std::string typeName = getDllName(filename); + + std::map<std::string,std::string>::const_iterator + it = m_typ2fileName.find(typeName); + + if (it != m_typ2fileName.end()) { - throw std::runtime_error("unknown type:" + typeName); + throw std::runtime_error("typname '" + typeName +"' doppelt bei processtypFile"); } - std::string filename = it->second; + m_typ2fileName[typeName] = filename; // load the type and create class - CTypeFunctionTable ft = loadTypeDll(filename); + std::pair<CTypeFunctionTable,utils::AutoPtr<utils::SharedLibrary> > p + = loadTypeDll(filename); + CTypeFunctionTable ft= p.first; + + // lets get the name of the type utils::StructReader spec(ft.getSpec()); std::string name = spec.getStringValue("name"); + // and the typeinfo int bufLen = ft.getInfo(0,0); // how big is it? char* data = new char[bufLen]; @@ -467,52 +474,7 @@ CTypeClass tc(ft, name, id); // distribute the new typeclass to the typefactory - if ( m_typeClassReceiver != 0 ) - m_typeClassReceiver->typeClassLoaded(id, tc); - - // broadcast that there is a new type - if ( m_typeInfoReceiver != 0 ) - m_typeInfoReceiver->typeClassLoaded(id,mi); - } - - void DllLoader::unloadTypeClass(const std::string& /*name*/) - { - //TODO - } - - void DllLoader::registerModuleClassInfoReceiver(IModuleClassInfoReceiver& r) - { - m_infoReceiver = &r; - } - - void DllLoader::registerModuleClassSpecReceiver(IModuleClassSpecReceiver& r) - { - m_specReceiver = &r; - } - - void DllLoader::registerModuleClassReceiver(IModuleClassReceiver& r) - { - m_classReceiver = &r; - } - - void DllLoader::registerModuleClassNameReceiver(IModuleClassNameReceiver& r) - { - m_nameReceiver = &r; - } - - void DllLoader::registerTypeClassInfoReceiver(ITypeClassInfoReceiver& r) - { - m_typeInfoReceiver = &r; - } - - void DllLoader::registerTypeClassReceiver(ITypeClassReceiver& r) - { - m_typeClassReceiver = &r; - } - - void DllLoader::registerTypeClassNameReceiver(ITypeClassNameReceiver& r) - { - m_typeNameReceiver = &r; + m_typeClassReceiver.typeClassLoaded(id, tc); } void DllLoader::constructModuleClass(CModuleFunctionTable* fTable, @@ -792,12 +754,12 @@ m_moduleHandles[name] = sl; - m_infoReceiver->moduleClassLoaded(name,mi); + m_infoReceiver.moduleClassLoaded(name,mi); CModuleClass cm(*fTable,attributes,name, frei0r, frei0r_plugin_type); - m_classReceiver->moduleClassLoaded(name, cm); + m_classReceiver.moduleClassLoaded(name, cm); - m_specReceiver->moduleClassLoaded(name,ModuleClassSpec(name,inputs, + m_specReceiver.moduleClassLoaded(name,ModuleClassSpec(name,inputs, defaultVals, inputIDs, outputs, @@ -877,7 +839,23 @@ m_mod2fileName[name] = fname; - m_nameReceiver->moduleClassNameExists(name); + // and load it + try + { + SharedLibraryPtr sl = this->loadDll(fname); + if (sl->loadSymbol("update") != 0) + { + loadModule(sl, name); + } + else + { + throw std::runtime_error("Unknown Dll Type."); + } + } + catch (std::runtime_error& e) + { + m_logger->error("LoadModuleClass", e.what()); + } } @@ -912,24 +890,23 @@ m_f0r2fileName[name] = fname; - m_nameReceiver->moduleClassNameExists(name); - } - - void DllLoader::processTypFile(const std::string& fname) - { - std::string name = getDllName(fname); - - std::map<std::string,std::string>::const_iterator - it = m_typ2fileName.find(name); - - if (it != m_typ2fileName.end()) + // and load it + try + { + frei0r_funs_t f0r; + SharedLibraryPtr sl = this->loadDll(fname); + + readFrei0rFuns(sl, f0r); + + loadFrei0r(f0r, sl, name); + } + catch (std::runtime_error& e) { - throw std::runtime_error("typname '" + name +"' doppelt bei processtypFile"); + m_logger->error("LoadModuleClass", e.what()); } - - m_typ2fileName[name] = fname; - - m_typeNameReceiver->typeClassNameExists(name); } + + + } --- orig/engine/src/dllloader/dllloader.h +++ mod/engine/src/dllloader/dllloader.h @@ -27,17 +27,13 @@ #include <string> #include <stdexcept> #include <vector> +#include <cassert> -#include "interfaces/imoduleclassloadercontrolreceiver.h" #include "interfaces/imoduleclassinfosender.h" #include "interfaces/imoduleclasssender.h" #include "interfaces/imoduleclassspecsender.h" -#include "interfaces/imoduleclassnamesender.h" -#include "interfaces/itypeclassloadercontrolreceiver.h" -#include "interfaces/itypeclassinfosender.h" #include "interfaces/itypeclasssender.h" -#include "interfaces/itypeclassnamesender.h" #include "utils/autoptr.h" @@ -62,15 +58,10 @@ * von Typ und Modul dlls. */ class DllLoader: - public IModuleClassLoaderControlReceiver, - public ITypeClassLoaderControlReceiver, public IModuleClassInfoSender, public IModuleClassSpecSender, public IModuleClassSender, - public ITypeClassInfoSender, - public ITypeClassSender, - public IModuleClassNameSender, - public ITypeClassNameSender + public ITypeClassSender { public: @@ -81,54 +72,57 @@ * Erzeugt neuen DllLoader. * @param logger used for reporting errors */ - DllLoader(utils::AutoPtr<utils::ILogger>& logger); + DllLoader(utils::AutoPtr<utils::ILogger>& logger, + IModuleClassInfoReceiver&, + IModuleClassSpecReceiver&, + IModuleClassReceiver&, + ITypeClassReceiver&, + const std::string& module_path, + const std::string& type_path, + const std::string& frei0r_path); virtual ~DllLoader(); + /** - * Liest und verarbeitet die module und die typ dateien. - * Davor sollte der ModuleClassNameReceiver registriert sein !! + * call this on connect of ModuleClassInfoReceiver */ - void readDlls(const std::vector<std::string>& modules, - const std::vector<std::string>& types, - const std::vector<std::string>& frei0rs); - - virtual void loadModuleClass(const std::string& name); - virtual void loadFrei0r(frei0r_funs_t&, SharedLibraryPtr sl, - const std::string moduleName); - virtual void unloadModuleClass(const std::string& name); - - //TODO: war mal const virtual void synchronize(); + + // TODO remove these functions from the public interfaces + void registerModuleClassInfoReceiver(IModuleClassInfoReceiver& r) + {assert(false);} + void registerModuleClassSpecReceiver(IModuleClassSpecReceiver& r) + {assert(false);} + void registerModuleClassReceiver(IModuleClassReceiver& r) + {assert(false);} + void registerTypeClassReceiver(ITypeClassReceiver&) + {assert(false);} + + private: /** - * Unloads all module and type dlls. Should be called before - * the listeners are destroyed. + * Liest und verarbeitet die module und die typ dateien. */ - void unloadAll(); - - virtual void registerModuleClassInfoReceiver(IModuleClassInfoReceiver&); - virtual void registerModuleClassSpecReceiver(IModuleClassSpecReceiver&); - virtual void registerModuleClassReceiver(IModuleClassReceiver&); - virtual void registerModuleClassNameReceiver(IModuleClassNameReceiver&); - - virtual void loadTypeClass(const std::string& name); - virtual void unloadTypeClass(const std::string& name); - virtual void registerTypeClassInfoReceiver(ITypeClassInfoReceiver&); - virtual void registerTypeClassReceiver(ITypeClassReceiver&); - virtual void registerTypeClassNameReceiver(ITypeClassNameReceiver&); + void readDlls(const std::vector<std::string>& modules, + const std::vector<std::string>& types, + const std::vector<std::string>& frei0rs); - private: + SharedLibraryPtr loadDll(const std::string& filename); std::string getDllName(const std::string& filename); + void loadFrei0r(frei0r_funs_t&, SharedLibraryPtr sl, + const std::string moduleName); + void loadModule(SharedLibraryPtr, const std::string& moduleName); void processModFile(const std::string&); void processFrei0rFile(const std::string&); - void processTypFile(const std::string&); - + void processTypeFile(const std::string& name); + + void constructModuleClass(CModuleFunctionTable* fTable, SharedLibraryPtr sl, const std::string& moduleName, @@ -136,14 +130,10 @@ NameResolver* resolver; - IModuleClassInfoReceiver* m_infoReceiver; - IModuleClassReceiver* m_classReceiver; - IModuleClassSpecReceiver* m_specReceiver; - IModuleClassNameReceiver* m_nameReceiver; - - ITypeClassInfoReceiver* m_typeInfoReceiver; - ITypeClassReceiver* m_typeClassReceiver; - ITypeClassNameReceiver* m_typeNameReceiver; + IModuleClassInfoReceiver& m_infoReceiver; + IModuleClassReceiver& m_classReceiver; + IModuleClassSpecReceiver& m_specReceiver; + ITypeClassReceiver& m_typeClassReceiver; std::map<std::string,std::string> m_mod2fileName; std::map<std::string,std::string> m_typ2fileName; @@ -152,11 +142,8 @@ std::map<std::string,SharedLibraryPtr> m_moduleHandles; std::map<std::string,utils::AutoPtr<utils::Buffer> > m_moduleInfos; - //std::map<std::string,SharedLibraryPtr> m_typeHandles; - utils::AutoPtr<utils::ILogger> m_logger; }; - } #endif --- orig/engine/src/dllloader/typedllloader.cpp +++ mod/engine/src/dllloader/typedllloader.cpp @@ -64,7 +64,8 @@ } } - CTypeFunctionTable loadTypeDll(const std::string& filename) + std::pair<CTypeFunctionTable,utils::AutoPtr<utils::SharedLibrary> > + loadTypeDll(const std::string& filename) { // load shared library file typedef utils::AutoPtr<utils::SharedLibrary> SharedLibraryPtr; @@ -125,6 +126,6 @@ throw std::runtime_error("symbol deSerialize missing"); // all symbols are defined - return ft; + return std::make_pair(ft,sl); } } --- orig/engine/src/dllloader/typedllloader.h +++ mod/engine/src/dllloader/typedllloader.h @@ -28,7 +28,8 @@ namespace dllloader { - CTypeFunctionTable loadTypeDll(const std::string& filename); + std::pair<CTypeFunctionTable,utils::AutoPtr<utils::SharedLibrary> > + loadTypeDll(const std::string& filename); } #endif --- orig/engine/src/engine/controller.cpp +++ mod/engine/src/engine/controller.cpp @@ -35,8 +35,6 @@ #include "netlogger.h" #include "buffer.h" -#include "filesystem.h" -#include "stringtokenizer.h" namespace engine { @@ -53,46 +51,6 @@ net::ISocket** m_socket; }; - /** - * Just a hack to automatically load all types that exist. - */ - class AutoTypeLoader : public ITypeClassNameReceiver - { - public: - AutoTypeLoader(ITypeClassLoaderControlReceiver& typLoader) - : m_typLoader(typLoader) - { - } - - void typeClassNameExists(const std::string& name) - { - m_typLoader.loadTypeClass(name); - } - private: - ITypeClassLoaderControlReceiver& m_typLoader; - }; - - -/** - * Just a hack to automatically load all types that exist. - */ - class AutoModuleLoader : public IModuleClassNameReceiver - { - public: - AutoModuleLoader(IModuleClassLoaderControlReceiver& moduleLoader) - : m_moduleLoader(moduleLoader) - { - } - - void moduleClassNameExists(const std::string& name) - { - m_moduleLoader.loadModuleClass(name); - } - private: - IModuleClassLoaderControlReceiver& m_moduleLoader; - }; - - auto_stop_task::auto_stop_task(Controller* ctrl, unsigned int ttl) : m_ctrl(ctrl), m_ttl(ttl), m_time(0) { @@ -112,14 +70,6 @@ - /** - * Returns a vector of all files in a list of paths, that have a certain - * file ending. - * Files can be listed more than once if a path of the list is a subpath - * of another path in the list. - */ - std::vector<std::string> getFilesInPathList(const std::string& dirName, - const std::string& ending); // connect a porttagger and a commandtagger with their receiving // and sending objects @@ -127,74 +77,6 @@ net::Protocol& protocol, PortDispatcher& portDispatcher, int port); -#if defined(OS_WIN32) - static const char* MODULE_ENDING = ".dll"; - static const char* TYPE_ENDING = ".dll"; -#elif defined(OS_POSIX) - static const char* MODULE_ENDING = ".so"; - static const char* TYPE_ENDING = ".so"; -#else -#error "unknown OS" -#endif - - std::vector<std::string> getFilesInPath(const std::string& dirName, - const std::string& ending) - { - std::vector<std::string> fileNames; - - std::list<utils::DirEntry> entries; - utils::FileSystem::listDir(dirName, entries); - - for (std::list<utils::DirEntry>::const_iterator it = entries.begin(); - it != entries.end(); ++it) - { - std::string name = it->getName(); - - if (name == "." || name == "..") - continue; - - if (it->getType() == utils::DirEntry::DIRECTORY) - { - std::vector<std::string> - subfiles= getFilesInPath(name, ending); - - fileNames.insert(fileNames.end(), - subfiles.begin(), subfiles.end()); - } - else - { - if (name.length() > ending.length() - && name.substr(name.length()-ending.length(), - ending.length()) == ending) - { - fileNames.push_back(dirName + name); - } - } - } - return fileNames; - } - -std::vector<std::string> getFilesInPathList(const std::string& pathList, - const std::string& ending) - { - std::vector<std::string> files; - - utils::StringTokenizer st(pathList); - std::string path; - - while ((path = st.next(";")) != "") - try - { - std::vector<std::string> fs = getFilesInPath(path, ending); - files.insert(files.end(),fs.begin(), fs.end()); - } - catch (...) - { - // we ignore all paths we cannot open - } - - return files; - } void initTaggers(PortTagger& portTagger, CommandTagger& commandTagger, net::Protocol& protocol, @@ -216,7 +98,6 @@ tagger3(engineControlSender), tagger4(modelControlSender), tagger5(modelControlSender), - tagger6(moduleClassLoaderControlSender), tagger7(modelControlSender), tagger10(modelControlSender), @@ -236,7 +117,6 @@ graphDataReceiver(tagger15), controlValueReceiver(tagger4), moduleStatisticsReceiver(tagger5), - moduleClassNameReceiver(tagger6), graphNameReceiver(tagger7), errorReceiver(tagger10), @@ -248,12 +128,10 @@ pModel(config.get_string_param("graph_path"), logger), pRenderer(logger), - pDllLoader(logger), first_time(true), ttl(config.get_int_param("ttl")), auto_stop(this,ttl) { - net::IServerSocket* serverSocket; std::string ipcType = config.get_string_param("ipc_type"); @@ -308,7 +186,6 @@ initTaggers(portTagger3, tagger3, protocol, portDispatcher, m_port+2); initTaggers(portTagger4, tagger4, protocol, portDispatcher, m_port+3); initTaggers(portTagger5, tagger5, protocol, portDispatcher, m_port+4); - initTaggers(portTagger6, tagger6, protocol, portDispatcher, m_port+5); initTaggers(portTagger7, tagger7, protocol, portDispatcher, m_port+6); initTaggers(portTagger10, tagger10, protocol, portDispatcher, m_port+9); initTaggers(portTagger13, tagger13, protocol, portDispatcher, m_port+12); @@ -330,22 +207,8 @@ pRenderer.registerModuleStatisticsSmartReceiver(pModel); pRenderer.registerRendererStatusReceiver(rendererStatusReceiver); - pDllLoader.registerModuleClassReceiver(pRenderer); - pDllLoader.registerModuleClassSpecReceiver(pModel); - pDllLoader.registerModuleClassInfoReceiver(moduleClassInfoReceiver); - pDllLoader.registerTypeClassReceiver(pRenderer); - modelControlSender.registerModelControlReceiver(pModel); rendererControlSender.registerRendererControlReceiver(pRenderer); - moduleClassLoaderControlSender.registerModuleClassLoaderControlReceiver(pDllLoader); - - sf = utils::AutoPtr<AutoTypeLoader>(new AutoTypeLoader(pDllLoader)); - - aml=utils::AutoPtr<AutoModuleLoader>(new AutoModuleLoader(pDllLoader)); - pDllLoader.registerModuleClassNameReceiver(*aml); - - pDllLoader.registerTypeClassNameReceiver(*sf); - engineControlSender.registerEngineControlReceiver(*this); @@ -365,29 +228,17 @@ scheduler.addTask(*augmented_render_task,rendererInterval); - - // load stuff - std::string module_path = config.get_string_param("module_path"); - std::vector<std::string> modules = getFilesInPathList(module_path, - MODULE_ENDING); - - std::string type_path = config.get_string_param("type_path"); - std::vector<std::string> types = getFilesInPathList(type_path, - TYPE_ENDING); - - - std::string frei0r_path = config.get_string_param("frei0r_path"); - std::vector<std::string> frei0rs; - if (frei0r_path != "") - frei0rs = getFilesInPathList(frei0r_path, MODULE_ENDING); + // load plugins + pDllLoader= utils::AutoPtr<dllloader::DllLoader> + (new dllloader::DllLoader(logger, + moduleClassInfoReceiver, + pModel, + pRenderer, + pRenderer, + config.get_string_param("module_path"), + config.get_string_param("type_path"), + config.get_string_param("frei0r_path"))); - std::cout << "Reading plugins..."; - std::cout.flush(); - pDllLoader.readDlls(modules, types, frei0rs); - std::cout << " done "; - - pDllLoader.registerModuleClassNameReceiver(moduleClassNameReceiver); - std::cout << "Reading graphs..."; std::cout.flush(); pModel.updateFileSystem(); @@ -429,7 +280,6 @@ { try { - this->pDllLoader.unloadAll(); disconnect(); } catch (std::runtime_error& e) @@ -496,6 +346,9 @@ connection_down = false; first_time = false; + + // announce loaded plugins + pDllLoader->synchronize(); } if (connection_down && !first_time) --- orig/engine/src/engine/controller.h +++ mod/engine/src/engine/controller.h @@ -24,8 +24,6 @@ #define INCLUDED_CONTROLLER_H #include "ienginecontrolreceiver.h" -#include "itypeclassnamereceiver.h" -#include "imoduleclassnamereceiver.h" #include "itask.h" #include "isocket.h" @@ -35,7 +33,6 @@ #include "graphdatareceivernet.h" #include "controlvaluereceivernet.h" #include "modulestatisticsreceivernet.h" -#include "moduleclassnamereceivernet.h" #include "modelstatusreceivernet.h" #include "graphnamereceivernet.h" #include "errorreceivernet.h" @@ -51,7 +48,6 @@ #include "modelcontrolsendernet.h" #include "renderercontrolsendernet.h" -#include "moduleclassloadercontrolsendernet.h" #include "enginecontrolsendernet.h" #include "autoptr.h" @@ -76,8 +72,6 @@ typedef net::Tagger<uint_32, net::UInt32TagUtil> PortTagger; typedef net::TagDispatcher<uint_32> PortDispatcher; - class AutoTypeLoader; - class AutoModuleLoader; class Acceptor; class Controller; @@ -128,7 +122,6 @@ CommandTagger tagger3; CommandTagger tagger4; CommandTagger tagger5; - CommandTagger tagger6; CommandTagger tagger7; CommandTagger tagger10; @@ -166,7 +159,6 @@ ModelControlSenderNet modelControlSender; RendererControlSenderNet rendererControlSender; - ModuleClassLoaderControlSenderNet moduleClassLoaderControlSender; EngineControlSenderNet engineControlSender; ModuleConstructionDumbReceiverNet moduleReceiver; @@ -175,7 +167,6 @@ GraphDataReceiverNet graphDataReceiver; ControlValueReceiverNet controlValueReceiver; ModuleStatisticsReceiverNet moduleStatisticsReceiver; - ModuleClassNameReceiverNet moduleClassNameReceiver; GraphNameReceiverNet graphNameReceiver; @@ -187,11 +178,10 @@ utils::AutoPtr<utils::ILogger> logger; model::Model pModel; + + utils::AutoPtr<dllloader::DllLoader> pDllLoader; renderer::Renderer pRenderer; - dllloader::DllLoader pDllLoader; - - utils::AutoPtr<AutoTypeLoader> sf; - utils::AutoPtr<AutoModuleLoader> aml; + utils::AutoPtr<synced_tasks> augmented_render_task; engine::Scheduler scheduler; --- orig/engine/src/renderer/renderer.h +++ mod/engine/src/renderer/renderer.h @@ -124,13 +124,8 @@ void synchronize(); private: - typedef std::map<const std::string,utils::AutoPtr<RuntimeSystem> > RuntimeSystemMap; - RuntimeSystemMap graphs; - - bool isStarted; - - utils::AutoPtr<RuntimeSystem> activeGraph; - std::string activeGraphName; //TODO + bool isStarted; + std::string activeGraphName; //TODO ISmartControlValueReceiver* cvr; IModuleStatisticsSmartReceiver* msr; @@ -143,6 +138,11 @@ utils::AutoPtr<RuntimeSystem> find(const std::string& graphID) const; utils::AutoPtr<utils::ILogger> m_logger; + + typedef std::map<const std::string,utils::AutoPtr<RuntimeSystem> > RuntimeSystemMap; + RuntimeSystemMap graphs; + + utils::AutoPtr<RuntimeSystem> activeGraph; }; } --- orig/qtgui/src/gui/dialogs/Makefile.am +++ mod/qtgui/src/gui/dialogs/Makefile.am @@ -11,7 +11,6 @@ changesdialog.cpp \ changesdialog.h \ changesdialog_h_moc.cpp \ - dllselectordialog_h_moc.cpp \ newgraphdialog_h_moc.cpp libdialogs_a_SOURCES = \ @@ -21,8 +20,6 @@ changesdialog.ui \ changesdialogimpl.cpp \ changesdialogimpl.h \ - dllselectordialog.cpp \ - dllselectordialog.h \ newgraphdialog.cpp \ newgraphdialog.h --- orig/qtgui/src/gui/vjmainwindow.cpp +++ mod/qtgui/src/gui/vjmainwindow.cpp @@ -45,8 +45,6 @@ #include "picswitch.h" -#include "dialogs/dllselectordialog.h" - #include "dialogs/aboutdialogimpl.h" #include "dialogs/changesdialogimpl.h" #include "dialogs/newgraphdialog.h" @@ -127,7 +125,6 @@ m_kbManager(0), m_conf_base_dir(conf_base_dir) { - createWindows(); createActions(); buildMenuBar(); @@ -206,7 +203,6 @@ void VJMainWindow::connectToRealEngine() throw (std::runtime_error) { engineWrapper->connect(); - showPlugInManagerAction->setEnabled(true); rendererStateAction->setEnabled(true); //keyGrabStateAction->setEnabled(true); @@ -222,7 +218,6 @@ void VJMainWindow::disconnectFromRealEngine() throw (std::runtime_error) { engineWrapper->disconnect(); - showPlugInManagerAction->setEnabled(false); rendererStateAction->setEnabled(false); // keyGrabStateAction->setEnabled(false); @@ -252,14 +247,6 @@ newGraphAction->setEnabled(false); connect(newGraphAction,SIGNAL(activated()),this,SLOT(newGraph())); - showPlugInManagerAction= new QAction(this,"ShowPlugInManagerAction",false); - showPlugInManagerAction->setText("PlugIn Manager"); - showPlugInManagerAction->setToolTip ("show the plugin-manager dialog"); - showPlugInManagerAction->setEnabled(false); - showPlugInManagerAction->setToggleAction ( true ); - connect(showPlugInManagerAction,SIGNAL(toggled(bool)), - m_dllSelector,SLOT(setShown ( bool ))); - rendererStateAction= new QAction(this,"RendererStateAction",false); rendererStateAction->setText("start/stop rendering"); rendererStateAction->setToolTip ("starts and stops the renderer"); @@ -320,23 +307,6 @@ connect(changesAction,SIGNAL(activated()),this,SLOT(changesSlot())); } - - void VJMainWindow::createWindows() - { - m_dllSelector = - new DllSelectorDialog(this,"PlugIn Manager Dialog",0, - engineWrapper->moduleClassLoaderControlReceiver(), - true); - - connect(m_dllSelector, SIGNAL(status(const std::string&)), - this, SLOT(displayStatusText(const std::string&))); - - connect(m_dllSelector, SIGNAL(closed()), - this, SLOT(dll_selector_closed())); - - } - - void VJMainWindow::buildMenuBar(void) { QPopupMenu* file = new QPopupMenu(this); @@ -364,10 +334,6 @@ menuBar()->insertItem("Keyboard", keyboard,4,4); keyGrabStateAction->addTo(keyboard);*/ - windows = new QPopupMenu(this); - menuBar()->insertItem("Windows",windows,5,5); - showPlugInManagerAction->addTo(windows); - effectMenue = new QPopupMenu(this); menuBar()->insertItem("Effects",effectMenue,6,6); @@ -386,28 +352,22 @@ moduleClassView = new ModuleClassView(effectMenue); - - engineWrapper->moduleClassNameSender().registerModuleClassNameReceiver(*m_dllSelector); - // moduleClassView->show(); engineWrapper->moduleClassModel().registerModuleClassView(*moduleClassView); - engineWrapper->moduleClassModel().registerModuleClassView(*m_dllSelector); //engineWrapper->moduleClassModel().registerModuleClassView(*moduleClassTabView); } void VJMainWindow::unbuildModuleBar() { - // the dllselector and effectmenue clear themselves + // the effectmenue clears itself // when they receive the syncStarted call engineWrapper->moduleClassModel().unregisterModuleClassViews(); //engineWrapper->moduleClassNameSender().unregisterModuleClassNameReceiver(); //TODO der wird beim naechsten register automatisch ueberschrieben - //delete m_dllSelector; //delete effectMenue; effectMenue->clear(); - m_dllSelector->clear(); } void VJMainWindow::buildSceleton() @@ -700,11 +660,6 @@ dlg->show(); } - void VJMainWindow::dll_selector_closed() - { - showPlugInManagerAction->setOn(false); - } - void VJMainWindow::shutDown() { if (connected) --- orig/qtgui/src/gui/vjmainwindow.h +++ mod/qtgui/src/gui/vjmainwindow.h @@ -55,7 +55,6 @@ class PropertyView; class IPropertyDescription; class EditorWidget; - class DllSelectorDialog; class LogWindow; class KeyboardManager; @@ -108,12 +107,10 @@ void shutDown(); void synchronize(); void aboutSlot(); - void changesSlot(); - void dll_selector_closed(); + void changesSlot(); private: void createActions(void); - void createWindows(); void buildMenuBar(void); void buildModuleBar(void); void buildSceleton(void); @@ -127,7 +124,6 @@ // Actions QAction* quitAction; - QAction* showPlugInManagerAction; QAction* newGraphAction; QAction* rendererStateAction; @@ -161,7 +157,7 @@ enum {CONNECT_ENGINE, DISCONNECT_ENGINE, SHUTDOWN_ENGINE, SYNCHRONIZE_ENGINE, - STARTSTOP_ENGINE, WINDOW_DLL_SELECTOR, + STARTSTOP_ENGINE, KEYGRAB_ON, KEYGRAB_OFF}; QPopupMenu* effectMenue; @@ -170,13 +166,10 @@ PropertyView* propertyView; - QPopupMenu* windows; - QPopupMenu* help; + QPopupMenu* help; int propertyTabID; - DllSelectorDialog* m_dllSelector; - const utils::ConfigManager& m_config; KeyboardManager* m_kbManager; --- orig/qtgui/src/guimodel/enginewrapper.cpp +++ mod/qtgui/src/guimodel/enginewrapper.cpp @@ -28,7 +28,6 @@ #include "netinterfaces/controlvaluesendernet.h" #include "netinterfaces/modulestatisticssendernet.h" -#include "netinterfaces/moduleclassnamesendernet.h" #include "netinterfaces/moduleclassinfosendernet.h" #include "netinterfaces/moduledatasendernet.h" #include "netinterfaces/graphdatasendernet.h" @@ -42,7 +41,6 @@ #include "netinterfaces/modelcontrolreceivernet.h" #include "netinterfaces/modelcontrolreceivernet.h" #include "netinterfaces/renderercontrolreceivernet.h" -#include "netinterfaces/moduleclassloadercontrolreceivernet.h" #include "netinterfaces/enginecontrolreceivernet.h" #include "net/isocket.h" @@ -78,7 +76,6 @@ gdsn(new GraphDataSenderNet()), cvsn(new ControlValueSenderNet()), mssn(new ModuleStatisticsSenderNet()), - mcnsn(new ModuleClassNameSenderNet()), gnsn(new GraphNameSenderNet()), esn(new ErrorSenderNet()), mstsn(new ModelStatusSenderNet()), @@ -89,7 +86,6 @@ tagger3(new CommandTagger(*mdsn)), tagger4(new CommandTagger(*cvsn)), tagger5(new CommandTagger(*mssn)), - tagger6(new CommandTagger(*mcnsn)), tagger7(new CommandTagger(*gnsn)), tagger10(new CommandTagger(*esn)), tagger13(new CommandTagger(*mstsn)), @@ -102,7 +98,6 @@ portTagger3(new PortTagger()), portTagger4(new PortTagger()), portTagger5(new PortTagger()), - portTagger6(new PortTagger()), portTagger7(new PortTagger()), portTagger10(new PortTagger()), portTagger13(new PortTagger()), @@ -118,7 +113,6 @@ mcrn(new ModelControlReceiverNet(*tagger1)), rcrn(new RendererControlReceiverNet(*tagger2)), - mclcrn(new ModuleClassLoaderControlReceiverNet(*tagger6)), ecrn(new EngineControlReceiverNet(*tagger3)), gModel(new GraphModel(*mcrn)), @@ -135,7 +129,6 @@ initTaggers(*portTagger3, *tagger3, *protocol, *portDispatcher, m_port+2); initTaggers(*portTagger4, *tagger4, *protocol, *portDispatcher, m_port+3); initTaggers(*portTagger5, *tagger5, *protocol, *portDispatcher, m_port+4); - initTaggers(*portTagger6, *tagger6, *protocol, *portDispatcher, m_port+5); initTaggers(*portTagger7, *tagger7, *protocol, *portDispatcher, m_port+6); initTaggers(*portTagger10,*tagger10,*protocol, *portDispatcher, m_port+9); initTaggers(*portTagger13,*tagger13,*protocol, *portDispatcher, m_port+12); @@ -226,7 +219,6 @@ void EngineWrapper::synchronize() const { - mclcrn->synchronize(); mcrn->synchronize(); rcrn->synchronize(); } @@ -236,11 +228,6 @@ return *cvsn; } - IModuleClassNameSender& EngineWrapper::moduleClassNameSender() - { - return *mcnsn; - } - IModuleStatisticsSender& EngineWrapper::moduleStatisticsSender() { return *mssn; @@ -267,13 +254,6 @@ return *rssn; } - - IModuleClassLoaderControlReceiver& - EngineWrapper::moduleClassLoaderControlReceiver() - { - return *mclcrn; - } - IRendererControlReceiver& EngineWrapper::rendererControlReceiver() { return *rcrn; --- orig/qtgui/src/guimodel/enginewrapper.h +++ mod/qtgui/src/guimodel/enginewrapper.h @@ -27,7 +27,6 @@ //#include "interfaces/icontrolvaluesender.h" //#include "interfaces/imodulestatisticssender.h" -//#include "interfaces/imoduleclassnamesender.h" #include "utils/autoptr.h" @@ -39,7 +38,6 @@ class GraphDataSenderNet; class ControlValueSenderNet; class ModuleStatisticsSenderNet; -class ModuleClassNameSenderNet; class GraphNameSenderNet; class ErrorSenderNet; @@ -49,11 +47,9 @@ class ModelControlReceiverNet; class RendererControlReceiverNet; -class ModuleClassLoaderControlReceiverNet; class EngineControlReceiverNet; class IControlValueSender; -class IModuleClassNameSender; class IModuleStatisticsSender; class IGraphNameSender; @@ -62,7 +58,6 @@ class IRendererStatusSender; -class IModuleClassLoaderControlReceiver; class IRendererControlReceiver; class IEngineControlReceiver; @@ -115,7 +110,6 @@ void synchronize() const; IControlValueSender& controlValueSender(); - IModuleClassNameSender& moduleClassNameSender(); IModuleStatisticsSender& moduleStatisticsSender(); IGraphNameSender& graphNameSender(); @@ -123,7 +117,6 @@ IModelStatusSender& modelStatusSender(); IRendererStatusSender& rendererStatusSender(); - IModuleClassLoaderControlReceiver& moduleClassLoaderControlReceiver(); IRendererControlReceiver& rendererControlReceiver(); IEngineControlReceiver& engineControlReceiver(); @@ -145,7 +138,6 @@ utils::AutoPtr<GraphDataSenderNet> gdsn; utils::AutoPtr<ControlValueSenderNet> cvsn; utils::AutoPtr<ModuleStatisticsSenderNet> mssn; - utils::AutoPtr<ModuleClassNameSenderNet> mcnsn; utils::AutoPtr<GraphNameSenderNet> gnsn; utils::AutoPtr<ErrorSenderNet> esn; @@ -192,7 +184,6 @@ utils::AutoPtr<ModelControlReceiverNet> mcrn; utils::AutoPtr<RendererControlReceiverNet> rcrn; - utils::AutoPtr<ModuleClassLoaderControlReceiverNet> mclcrn; utils::AutoPtr<EngineControlReceiverNet> ecrn; utils::AutoPtr<GraphModel> gModel;