openscenegraph
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
osgDB::DynamicLibrary Class Reference
Inheritance diagram for osgDB::DynamicLibrary:
osg::Referenced

Public Types

typedef void * HANDLE
typedef void * PROC_ADDRESS

Public Member Functions

const std::string & getName () const
const std::string & getFullName () const
HANDLE getHandle () const
PROC_ADDRESS getProcAddress (const std::string &procName)
- Public Member Functions inherited from osg::Referenced
 Referenced ()
 Referenced (bool threadSafeRefUnref)
 Referenced (const Referenced &)
Referencedoperator= (const Referenced &)
virtual void setThreadSafeRefUnref (bool threadSafe)
bool getThreadSafeRefUnref () const
OpenThreads::MutexgetRefMutex () const
int ref () const
int unref () const
int unref_nodelete () const
int referenceCount () const
ObserverSetgetObserverSet () const
ObserverSetgetOrCreateObserverSet () const
void addObserver (Observer *observer) const
void removeObserver (Observer *observer) const

Static Public Member Functions

static DynamicLibraryloadLibrary (const std::string &libraryName)
- Static Public Member Functions inherited from osg::Referenced
static OpenThreads::MutexgetGlobalReferencedMutex ()
static void setThreadSafeReferenceCounting (bool enableThreadSafeReferenceCounting)
static bool getThreadSafeReferenceCounting ()
static void setDeleteHandler (DeleteHandler *handler)
static DeleteHandlergetDeleteHandler ()

Protected Member Functions

 DynamicLibrary ()
 DynamicLibrary (const DynamicLibrary &)
DynamicLibraryoperator= (const DynamicLibrary &)
 DynamicLibrary (const std::string &name, HANDLE handle)
 ~DynamicLibrary ()
- Protected Member Functions inherited from osg::Referenced
virtual ~Referenced ()
void signalObserversAndDelete (bool signalDelete, bool doDelete) const
void deleteUsingDeleteHandler () const

Static Protected Member Functions

static HANDLE getLibraryHandle (const std::string &libraryName)

Protected Attributes

HANDLE _handle
std::string _name
std::string _fullName
- Protected Attributes inherited from osg::Referenced
OpenThreads::AtomicPtr _observerSet
OpenThreads::Atomic _refCount

Detailed Description

DynamicLibrary - encapsulates the loading and unloading of dynamic libraries, typically used for loading ReaderWriter plug-ins.

Member Typedef Documentation

Constructor & Destructor Documentation

osgDB::DynamicLibrary::DynamicLibrary ( )
inlineprotected

disallow default constructor.

osgDB::DynamicLibrary::DynamicLibrary ( const DynamicLibrary )
inlineprotected

disallow copy constructor.

osgDB::DynamicLibrary::DynamicLibrary ( const std::string &  name,
HANDLE  handle 
)
protected

Disallow public construction so that users have to go through loadLibrary() above which returns NULL on failure, a valid DynamicLibrary object on success.

osgDB::DynamicLibrary::~DynamicLibrary ( )
protected

Member Function Documentation

const std::string& osgDB::DynamicLibrary::getFullName ( ) const
inline

return name of library including full path to it.

HANDLE osgDB::DynamicLibrary::getHandle ( ) const
inline

return handle to .dso/.dll dynamic library itself.

static HANDLE osgDB::DynamicLibrary::getLibraryHandle ( const std::string &  libraryName)
staticprotected

get handle to library file

const std::string& osgDB::DynamicLibrary::getName ( ) const
inline

return name of library stripped of path.

PROC_ADDRESS osgDB::DynamicLibrary::getProcAddress ( const std::string &  procName)

return address of function located in library.

static DynamicLibrary* osgDB::DynamicLibrary::loadLibrary ( const std::string &  libraryName)
static

returns a pointer to a DynamicLibrary object on successfully opening of library returns NULL on failure.

DynamicLibrary& osgDB::DynamicLibrary::operator= ( const DynamicLibrary )
inlineprotected

disallow copy operator.

Member Data Documentation

std::string osgDB::DynamicLibrary::_fullName
protected
HANDLE osgDB::DynamicLibrary::_handle
protected
std::string osgDB::DynamicLibrary::_name
protected

The documentation for this class was generated from the following file: