00001
00002 #ifndef SL_PLUGIN_HPP
00003 #define SL_PLUGIN_HPP
00004
00005 #include <string>
00006
00007 #include "segusoland.hpp"
00008
00009 #include "SLPluginFeature.hpp"
00010 #include "SLConfig.hpp"
00011
00012 SL_NAMESPACE_BEGIN
00013 using namespace std;
00014
00015
00029 class SLPlugin {
00030 public:
00040 virtual void init(SLConfig &config) = 0;
00041
00047 virtual void finish() = 0;
00048
00060 virtual SLPluginFeature *getFeature() = 0;
00061
00066 virtual void disposeFeature(SLPluginFeature *feature) = 0;
00067
00078 virtual unsigned int getVersionMajor() const = 0;
00079
00081 virtual unsigned int getVersionMinor() const = 0;
00082
00084 virtual const SLString &getName() const = 0;
00085
00087 virtual SLPluginFeature::Type::Types getType() const = 0;
00088
00090 virtual void set_dl_handle(void *dl_handle) = 0;
00091
00093 virtual void *get_dl_handle() const = 0;
00094
00095 };
00096
00097
00098 SL_NAMESPACE_END
00099 #endif // #ifndef SL_PLUGIN_HPP
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126