PTLib  Version 2.12.9
 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:

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 * dllHandle
 
PString name
 
- Protected Attributes inherited from PObject
unsigned m_traceContextIdentifier
 

Load/Unload function

virtual PBoolean Open (const PString &name)
 
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)
 Get a pointer to the function in the dynamically loadable module. More...
 
PBoolean GetFunction (const PString &name, Function &func)
 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.

Referenced by PLoadPluginDirectory().

PBoolean PDynaLink::GetFunction ( PINDEX  index,
Function func 
)

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.
funcRefrence to point to function to get.
PBoolean PDynaLink::GetFunction ( const PString name,
Function func 
)

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.
funcRefrence to point to function to get.
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 name)
virtual
Parameters
nameName of the dynamically loadable module.

Member Data Documentation

void* PDynaLink::dllHandle
protected
PString PDynaLink::m_lastError
protected

Referenced by GetLastError().

PString PDynaLink::name
protected

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