00001 // $Id: SLPluginDynLoader.hpp,v 1.2 2004/04/05 23:42:41 mr_lex Exp $ 00002 #ifndef SL_PLUGIN_DYN_LOADER_HPP 00003 #define SL_PLUGIN_DYN_LOADER_HPP 00004 00005 #include "segusoland.hpp" 00006 #include "SLIOException.hpp" 00007 #include "SLDirectoryList.hpp" 00008 #include "SLFileList.hpp" 00009 #include "SLPlugin.hpp" 00010 00011 SL_NAMESPACE_BEGIN 00012 00022 class SLPluginDynLoader { 00023 public: 00027 class IOException : public SLIOException { 00028 public: 00033 IOException(const SLString &message) 00034 : 00035 SLIOException(message) { } 00036 }; 00037 00038 00042 SLPluginDynLoader(); 00043 00049 void loadPlugins(SLDirectory &pluginsDir) const 00050 throw(IOException, SLDirectory::IOException); 00051 00065 void unloadPlugin(SLPlugin *plugin) const 00066 throw(IOException); 00067 00068 protected: 00069 }; // class SLPluginDynLoader 00070 00071 SL_NAMESPACE_END 00072 #endif // #ifndef SL_PLUGIN_DYN_LOADER_HPP 00073 // $Log: SLPluginDynLoader.hpp,v $ 00074 // Revision 1.2 2004/04/05 23:42:41 mr_lex 00075 // FIX: various Exceptions issues + unloading of plugins 00076 // 00077 // Revision 1.1 2004/04/03 15:07:34 mr_lex 00078 // NEW: plugin system and toolkit nearly mature 00079 // 00080