00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef IVT_PLUGIN
00025 #define IVT_PLUGIN
00026
00028
00029
00030
00032
00033 #include <IvTune/IvTuneExtender/IvtLibName.h>
00034
00035 #include <Inventor/SbString.h>
00036
00037 #include <Inventor/STL/vector>
00038
00039 #ifdef _WIN32
00040 # if !defined(IvTuneExtenderAPI_EXPORTS)
00041 # ifndef OIV_DISABLE_AUTOLINK
00042 # pragma comment(lib,__IVTEXLIB)
00043 # endif
00044 # endif
00045 #endif //win
00046
00047 class IvtExtension;
00048 class IvtShell;
00049
00053 struct IVTEXTENDER_API IvtPluginInfo
00054 {
00055 SbString name;
00056 SbString description;
00057 SbString author;
00058 SbString version;
00059 SbString path;
00060 SbString fileName;
00061 };
00062
00080 class IVTEXTENDER_API IvtPlugin
00081 {
00082 public:
00088 void addExtension( IvtExtension* ext );
00089
00095 IvtExtension* getExtensionByName( const SbString& name );
00096
00100 const std::vector<IvtExtension*>& getExtensions() const;
00101
00105 const IvtPluginInfo& getInfo() const;
00106
00111 virtual void load();
00112
00117 virtual void unload();
00118
00119 private:
00120
00124 IvtPluginInfo m_info;
00125
00127 virtual ~IvtPlugin() {}
00128
00129 private:
00130
00132 std::vector<IvtExtension*> m_extensions;
00133 };
00134
00135 #endif // IVT_PLUGIN
00136
00137
00138