CppUnit project page FAQ

Public Types | Public Member Functions | Private Member Functions | Private Attributes
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


Constructor & Destructor Documentation

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

Loads the specified library.

Parameters:
libraryFileNameName of the library to load.
Exceptions:
DynamicLibraryManagerExceptionif 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:
symbolName 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:
libraryNameName 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:
symbolName of the symbol exported by the library.
Returns:
Pointer on the symbol. Should be casted to the actual type. Never NULL.
Exceptions:
DynamicLibraryManagerExceptionif 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:
libraryNameName of the library to load.
Exceptions:
DynamicLibraryManagerExceptionif 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:

Send comments to:
CppUnit Developers