CppUnit project page FAQ CppUnit home page

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

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