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


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

AltStyle によって変換されたページ (->オリジナル) /