CppUnit project page FAQ CppUnit home page

Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

DynamicLibraryManager.h

Go to the documentation of this file.
00001 #ifndef CPPUNIT_PLUGIN_DYNAMICLIBRARYMANAGER_H
00002 #define CPPUNIT_PLUGIN_DYNAMICLIBRARYMANAGER_H
00003 
00004 #include <cppunit/Portability.h>
00005 #include <string>
00006 
00007 #if !defined(CPPUNIT_NO_TESTPLUGIN)
00008 
00009 CPPUNIT_NS_BEGIN
00010 
00011 
00034 class DynamicLibraryManager
00035 {
00036 public:
00037   typedef void *Symbol;
00038   typedef void *LibraryHandle;
00039 
00045   DynamicLibraryManager( const std::string &libraryFileName );
00046 
00048   ~DynamicLibraryManager();
00049 
00055   Symbol findSymbol( const std::string &symbol );
00056 
00057 private:
00063   void loadLibrary( const std::string &libraryName );
00064 
00069   void releaseLibrary();
00070 
00077   LibraryHandle doLoadLibrary( const std::string &libraryName );
00078 
00085   void doReleaseLibrary();
00086 
00093   Symbol doFindSymbol( const std::string &symbol );
00094 
00103   std::string getLastErrorDetail() const;
00104 
00106   DynamicLibraryManager( const DynamicLibraryManager &copy );
00107 
00109   void operator =( const DynamicLibraryManager &copy );
00110 
00111 private:
00112   LibraryHandle m_libraryHandle;
00113   std::string m_libraryName;
00114 };
00115 
00116 
00117 CPPUNIT_NS_END
00118 
00119 #endif // !defined(CPPUNIT_NO_TESTPLUGIN)
00120 
00121 #endif  // CPPUNIT_PLUGIN_DYNAMICLIBRARYMANAGER_H

SourceForge Logo hosts this site. Send comments to:
CppUnit Developers