PTLib  Version 2.14.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
PDynaLink Class Reference

A dynamic link library. More...

#include <dynalink.h>

Inheritance diagram for PDynaLink:
Collaboration diagram for PDynaLink:

Classes

class  EntryPoint
 Helper class for creating members to functions in the DLL. More...
 

Public Member Functions

Construction
 PDynaLink ()
 Create a new dyna-link, loading the specified module. More...
 
 PDynaLink (const PString &name)
 Create a new dyna-link, loading the specified module. More...
 
 ~PDynaLink ()
 Destroy the dyna-link, freeing the module. More...
 
- Public Member Functions inherited from PObject
unsigned GetTraceContextIdentifier () const
 Get PTRACE context identifier. More...
 
void SetTraceContextIdentifier (unsigned id)
 
void GetTraceContextIdentifier (PObject &obj)
 
void GetTraceContextIdentifier (PObject *obj)
 
void SetTraceContextIdentifier (const PObject &obj)
 
void SetTraceContextIdentifier (const PObject *obj)
 
virtual ~PObject ()
 
virtual PObjectClone () const
 Create a copy of the class on the heap. More...
 
template<class CLS >
CLS * CloneAs () const
 As for Clone() but converts to specified type. More...
 
virtual PINDEX HashFunction () const
 This function yields a hash value required by the PDictionary class. More...
 
virtual Comparison Compare (const PObject &obj) const
 Compare the two objects and return their relative rank. More...
 
virtual Comparison CompareObjectMemoryDirect (const PObject &obj) const
 Determine the byte wise comparison of two objects. More...
 
bool operator== (const PObject &obj) const
 Compare the two objects. More...
 
bool operator!= (const PObject &obj) const
 Compare the two objects. More...
 
bool operator< (const PObject &obj) const
 Compare the two objects. More...
 
bool operator> (const PObject &obj) const
 Compare the two objects. More...
 
bool operator<= (const PObject &obj) const
 Compare the two objects. More...
 
bool operator>= (const PObject &obj) const
 Compare the two objects. More...
 
virtual const char * GetClass (unsigned ancestor=0) const
 Get the current dynamic type of the object instance. More...
 
PBoolean IsClass (const char *cls) const
 
virtual PBoolean InternalIsDescendant (const char *clsName) const
 Determine if the dynamic type of the current instance is a descendent of the specified class. More...
 
__inline const PObjectPTraceObjectInstance () const
 
virtual void PrintOn (ostream &strm) const
 Output the contents of the object to the stream. More...
 
virtual void ReadFrom (istream &strm)
 Input the contents of the object from the stream. More...
 

Protected Attributes

PString m_lastError
 
void * m_dll
 
PString m_name
 
- Protected Attributes inherited from PObject
unsigned m_traceContextIdentifier
 

Load/Unload function

virtual PBoolean Open (const PString &names)
 
virtual void Close ()
 Close the dyna-link library. More...
 
virtual PBoolean IsLoaded () const
 Dyna-link module is loaded and may be accessed. More...
 
virtual PString GetName (PBoolean full=false) const
 Get the name of the loaded library. More...
 
static PString GetExtension ()
 Get the extension used by this platform for dynamic link libraries. More...
 

DLL entry point functions

typedef void(* Function )()
 Primitive pointer to a function for a dynamic link module. More...
 
PBoolean GetFunction (PINDEX index, Function &func, bool compulsory=false)
 Get a pointer to the function in the dynamically loadable module. More...
 
PBoolean GetFunction (const PString &name, Function &func, bool compulsory=false)
 Get a pointer to the function in the dynamically loadable module. More...
 
const PStringGetLastError () const
 

Additional Inherited Members

- Public Types inherited from PObject
enum  Comparison { LessThan = -1, EqualTo = 0, GreaterThan = 1 }
 Result of the comparison operation performed by the Compare() function. More...
 
- Static Public Member Functions inherited from PObject
static Comparison InternalCompareObjectMemoryDirect (const PObject *obj1, const PObject *obj2, PINDEX size)
 Internal function caled from CompareObjectMemoryDirect() More...
 
static const char * Class ()
 Get the name of the class as a C string. More...
 
static __inline const PObjectPTraceObjectInstance (const char *)
 
static __inline const PObjectPTraceObjectInstance (const PObject *obj)
 
- Protected Member Functions inherited from PObject
 PObject ()
 Constructor for PObject, made protected so cannot ever create one on its own. More...
 
- Friends inherited from PObject

Detailed Description

A dynamic link library.

This allows the loading at run time of code modules for use by an application. MacOS X/darwin supports plugins linked as object file image (linked with the -bundle arg to ld) or dynamic libraries (-dynamic). On all Unix platforms the file name should end in ".so". On Windows the filename should end in ".dll"

Member Typedef Documentation

typedef void(* PDynaLink::Function)()

Primitive pointer to a function for a dynamic link module.

Constructor & Destructor Documentation

PDynaLink::PDynaLink ( )

Create a new dyna-link, loading the specified module.

The first, parameterless, form does load a library.

PDynaLink::PDynaLink ( const PString name)

Create a new dyna-link, loading the specified module.

The first, parameterless, form does load a library.

Parameters
nameName of the dynamically loadable module.
PDynaLink::~PDynaLink ( )

Destroy the dyna-link, freeing the module.

Member Function Documentation

virtual void PDynaLink::Close ( )
virtual

Close the dyna-link library.

static PString PDynaLink::GetExtension ( )
static

Get the extension used by this platform for dynamic link libraries.

Returns
String for file extension.
PBoolean PDynaLink::GetFunction ( PINDEX  index,
Function func,
bool  compulsory = false 
)

Get a pointer to the function in the dynamically loadable module.

Returns
true if function was found.
Parameters
indexOrdinal number of the function to get.
funcReference to point to function to get.
compulsoryif true, close DLL if not present

Referenced by PDynaLink::EntryPoint< FuncPtr >::EntryPoint().

PBoolean PDynaLink::GetFunction ( const PString name,
Function func,
bool  compulsory = false 
)

Get a pointer to the function in the dynamically loadable module.

Returns
true if function was found.Return OS error code for last operation
Parameters
nameName of the function to get.
funcReference to point to function to get.
compulsoryif true, close DLL if not present
const PString& PDynaLink::GetLastError ( ) const
inline

References m_lastError.

virtual PString PDynaLink::GetName ( PBoolean  full = false) const
virtual

Get the name of the loaded library.

If the library is not loaded this may return an empty string.

If full is true then the full pathname of the library is returned otherwise only the name part is returned.

Returns
String for the library name.
Parameters
fullFlag for full or short path name
virtual PBoolean PDynaLink::IsLoaded ( ) const
virtual

Dyna-link module is loaded and may be accessed.

virtual PBoolean PDynaLink::Open ( const PString names)
virtual
Parameters
namesName(s) of the dynamically loadable module.

Member Data Documentation

void* PDynaLink::m_dll
protected
PString PDynaLink::m_lastError
protected

Referenced by GetLastError().

PString PDynaLink::m_name
protected

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