CppUnit project page FAQ CppUnit home page

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).
\param symbol Name of the symbol exported by the library.
\return Pointer on the symbol. \c NULL indicates failure.
LibraryHandle DynamicLibraryManager::doLoadLibrary ( const std::string &  libraryName)
private

Loads the specified library.

May throw any exceptions (indicates failure).
\param libraryName Name of the library to load.
\return Handle of the loaded library. \c NULL indicates failure.
void DynamicLibraryManager::doReleaseLibrary ( )
private

Releases the loaded library.

The handle of the library to free is in \c m_libraryHandle. It is never
\c 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.

\return 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:

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