00001
00002
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00022
00028 #ifndef _exotkPlugin_Plugin_HeaderFile
00029 #define _exotkPlugin_Plugin_HeaderFile
00030
00031 #if _MSC_VER > 1000
00032 #pragma once
00033 #endif // _MSC_VER > 1000
00034
00035 #ifndef _MMgt_TShared_HeaderFile
00036 #include <MMgt_TShared.hxx>
00037 #endif
00038 #ifndef _Handle_exotkPlugin_Plugin_HeaderFile
00039 #include <Handle_exotkPlugin_Plugin.hxx>
00040 #endif
00041 #ifndef _OSD_SharedLibrary_HeaderFile
00042 #include <OSD_SharedLibrary.hxx>
00043 #endif
00044 #ifndef _TCollection_AsciiString_HeaderFile
00045 #include <TCollection_AsciiString.hxx>
00046 #endif
00047
00053 class exotkPlugin_Plugin : public MMgt_TShared
00054 {
00055 public:
00056
00064 inline void* operator new(size_t,void* anAddress)
00065 {
00066 return anAddress;
00067 }
00068
00075 inline void* operator new(size_t size)
00076 {
00077 return Standard::Allocate(size);
00078 }
00079
00086 inline void operator delete(void *anAddress)
00087 {
00088 if (anAddress) Standard::Free((Standard_Address&)anAddress);
00089 }
00090
00096 Standard_EXPORT exotkPlugin_Plugin(const TCollection_AsciiString& aFilename);
00097
00102 Standard_EXPORT virtual ~exotkPlugin_Plugin();
00103
00104
00110 Standard_EXPORT virtual Standard_Boolean IsValid();
00111
00118 Standard_EXPORT OSD_Function Function(const TCollection_AsciiString& aFunctionName);
00119
00125 Standard_EXPORT TCollection_AsciiString Filename() { return myFilename;};
00126
00132 Standard_EXPORT friend Handle_Standard_Type& exotkPlugin_Plugin_Type_();
00133
00139 Standard_EXPORT const Handle_Standard_Type& DynamicType() const;
00140
00147 Standard_EXPORT Standard_Boolean IsKind(const Handle_Standard_Type&) const;
00148 private:
00149
00150
00156 Standard_Boolean OpenLibrary();
00158 OSD_SharedLibrary myLibrary;
00160 TCollection_AsciiString myFilename;
00162 Standard_Boolean myLibraryIsOpened;
00163 };
00164
00165 #endif