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 Class Reference

Manages dynamic libraries. More...

#include <DynamicLibraryManager.h>

List of all members.

Public Types

typedef void * Symbol
typedef void * LibraryHandle

Public Member Functions

 DynamicLibraryManager (const std::string &libraryFileName)
 Loads the specified library.
 ~DynamicLibraryManager ()
 Releases the loaded library..
Symbol findSymbol (const std::string &symbol)
 Returns a pointer on the specified symbol exported by the library.

Private Member Functions

void loadLibrary (const std::string &libraryName)
void releaseLibrary ()
LibraryHandle doLoadLibrary (const std::string &libraryName)
void doReleaseLibrary ()
Symbol doFindSymbol (const std::string &symbol)
std::string getLastErrorDetail () const
 DynamicLibraryManager (const DynamicLibraryManager &copy)
 Prevents the use of the copy constructor.
void operator= (const DynamicLibraryManager &copy)
 Prevents the use of the copy operator.

Private Attributes

LibraryHandle m_libraryHandle
std::string m_libraryName


Detailed Description

Manages dynamic libraries.

The Dynamic Library Manager provides a platform independent way to work with dynamic library. It load a specific dynamic library, and can returns specific symbol exported by the dynamic library.

If an error occurs, a DynamicLibraryManagerException is thrown.


Member Typedef Documentation

typedef void* DynamicLibraryManager::LibraryHandle
 

typedef void* DynamicLibraryManager::Symbol
 


Constructor & Destructor Documentation

CPPUNIT_NS_BEGIN DynamicLibraryManager::DynamicLibraryManager const std::string &  libraryFileName  ) 
 

Loads the specified library.

Parameters:
libraryFileName Name of the library to load.
Exceptions:
DynamicLibraryManagerException if a failure occurs while loading the library (fail to found or load the library).

DynamicLibraryManager::~DynamicLibraryManager  ) 
 

Releases the loaded library..

DynamicLibraryManager::DynamicLibraryManager const DynamicLibraryManager copy  )  [private]
 

Prevents the use of the copy constructor.


Member Function Documentation

Symbol DynamicLibraryManager::doFindSymbol const std::string &  symbol  )  [private]
 

Returns a pointer on the specified symbol exported by the library.

May throw any exceptions (indicates failure).

Parameters:
symbol Name of the symbol exported by the library.
Returns:
Pointer on the symbol. NULL indicates failure.

LibraryHandle DynamicLibraryManager::doLoadLibrary const std::string &  libraryName  )  [private]
 

Loads the specified library.

May throw any exceptions (indicates failure).

Parameters:
libraryName Name of the library to load.
Returns:
Handle of the loaded library. NULL indicates failure.

void DynamicLibraryManager::doReleaseLibrary  )  [private]
 

Releases the loaded library.

The handle of the library to free is in m_libraryHandle. It is never NULL.

Warning:
Must NOT throw any exceptions (called from destructor).

DynamicLibraryManager::Symbol DynamicLibraryManager::findSymbol const std::string &  symbol  ) 
 

Returns a pointer on the specified symbol exported by the library.

Parameters:
symbol Name of the symbol exported by the library.
Returns:
Pointer on the symbol. Should be casted to the actual type. Never NULL.
Exceptions:
DynamicLibraryManagerException if the symbol is not found.

std::string DynamicLibraryManager::getLastErrorDetail  )  const [private]
 

Returns detailed information about doLoadLibrary() failure.

Called just after a failed call to doLoadLibrary() to get extra error information.

Returns:
Detailed information about the failure of the call to doLoadLibrary() that just failed.

void DynamicLibraryManager::loadLibrary const std::string &  libraryName  )  [private]
 

Loads the specified library.

Parameters:
libraryName Name of the library to load.
Exceptions:
DynamicLibraryManagerException if a failure occurs while loading the library (fail to found or load the library).

void DynamicLibraryManager::operator= const DynamicLibraryManager copy  )  [private]
 

Prevents the use of the copy operator.

void DynamicLibraryManager::releaseLibrary  )  [private]
 

Releases the loaded library.

Warning:
Must NOT throw any exceptions (called from destructor).


Member Data Documentation

LibraryHandle DynamicLibraryManager::m_libraryHandle [private]
 

std::string DynamicLibraryManager::m_libraryName [private]
 


The documentation for this class was generated from the following files:
SourceForge Logo hosts this site. Send comments to:
CppUnit Developers