Common/vtkDynamicLoader.h
Go to the documentation of this file.00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00022 #ifndef __vtkDynamicLoader_h
00023 #define __vtkDynamicLoader_h
00024 #include "vtkObject.h"
00025 
00026 
00027 
00028 
00029 #if defined(__hpux)
00030 # include <dl.h> 
00031   typedef shl_t vtkLibHandle;
00032 #elif defined(_WIN32)
00033   typedef HMODULE vtkLibHandle;
00034 #else
00035   typedef void* vtkLibHandle;
00036 #endif
00037 
00038 
00039 
00040 
00041 class VTK_COMMON_EXPORT vtkDynamicLoader : public vtkObject
00042 {
00043 public:
00044   static vtkDynamicLoader* New();
00045   vtkTypeRevisionMacro(vtkDynamicLoader,vtkObject);
00046 
00047   
00050   static vtkLibHandle OpenLibrary(const char*);
00051 
00053 
00055   static int CloseLibrary(vtkLibHandle);
00056   
00058   
00060   static void* GetSymbolAddress(vtkLibHandle, const char*);
00061 
00063   static const char* LibPrefix();
00064 
00066   static const char* LibExtension();
00067 
00069   static const char* LastError();
00070   
00071 protected:
00072   vtkDynamicLoader() {};
00073   ~vtkDynamicLoader() {};
00074 
00075   
00076 private:
00077   vtkDynamicLoader(const vtkDynamicLoader&);  
00078   void operator=(const vtkDynamicLoader&);  
00079 };
00080 
00081 #endif