00001 #ifndef _Q_DLL_MANAGER_HH 00002 #define _Q_DLL_MANAGER_HH 00003 00011 #include <string> 00012 #include <map> 00013 #include "QError.hh" 00014 00015 class QDLLManager 00016 { 00017 public: 00018 QDLLManager( const char *fname ); 00019 virtual ~QDLLManager(); 00020 00021 00022 QError GetSymbol( void **, const char *sym_name ); 00023 00024 const char *LastError() 00025 { 00026 return err; 00027 } 00028 00029 protected: 00030 void *h; 00031 const char *err; 00032 }; 00033 00047 class QDLLLoader 00048 { 00049 public: 00050 QDLLLoader(); 00051 00052 QError Init(const std::string& pluginlist, const std::string& pluginPrefix); 00053 00054 QError LoadPlugin(const std::string& name); 00055 00056 private: 00057 std::map<std::string, std::string> fPluginsLib; 00058 std::string fPluginPrefix; 00059 00060 }; 00061 00062 #endif