CFx SDK Documentation  2023 SP0
Public Member Functions | List of all members
OdRxDynamicLinker Class Referenceabstract

#include <DynamicLinker.h>

Inheritance diagram for OdRxDynamicLinker:
OdRxObject

Public Member Functions

 ODRX_DECLARE_MEMBERS (OdRxDynamicLinker)
 
virtual void addReactor (OdRxDLinkerReactor *pReactor)=0
 
virtual void removeReactor (OdRxDLinkerReactor *pReactor)=0
 
virtual OdRxModulePtr loadModule (const OdString &moduleFileName, bool silent=true)=0
 
virtual bool unloadModule (const OdString &moduleFileName)=0
 
virtual bool unloadUnreferenced ()=0
 
virtual OdRxModulePtr loadApp (const OdString &applicationName, bool silent=true)=0
 
virtual OdRxSystemServicesPtr sysServices () const =0
 
virtual OdRxDictionaryPtr sysRegistry () const =0
 
virtual OdRxModuleloadModuleObj (OdRxModule *pModuleObj, bool bSilent=true)=0
 
virtual int getModuleCount () const =0
 
virtual OdRxModulePtr getModule (int index, OdString &key) const =0
 
virtual OdRxModulePtr getModule (const OdString &key) const =0
 
- Public Member Functions inherited from OdRxObject
 ODRX_HEAP_OPERATORS ()
 
 OdRxObject ()
 
virtual ~OdRxObject ()
 
virtual OdRxObjectqueryX (const OdRxClass *pClass) const
 
virtual OdRxObjectx (const OdRxClass *pClass) const
 
virtual OdRxClassisA () const
 
virtual void addRef ()=0
 
virtual void release ()=0
 
virtual long numRefs () const
 
bool isKindOf (const OdRxClass *pClass) const
 
virtual OdRxObjectPtr clone () const
 
virtual void copyFrom (const OdRxObject *pSource)
 
virtual OdRx::Ordering comparedTo (const OdRxObject *pOther) const
 
virtual bool isEqualTo (const OdRxObject *pOther) const
 

Additional Inherited Members

- Static Public Member Functions inherited from OdRxObject
static OdRxObjectPtr cast (const OdRxObject *pointer)
 
static OdRxClassdesc ()
 

Detailed Description

This class implements Dynamic Linker services for Teigha Xtension(TX) applications:

The following services are implemented: Loading applications by specified by application name. Loading and unloading modules specified by filename. Addition and removal of reactors from the dynamic linker reactor chain.

Remarks
There is exactly one OdRxDynamicLinker class object. It is gloval to Teigha, and thus is non-instantiable for Teigha applications.

A pointer to the OdRxDynamicLinker object will be returned by the global odrxDynamicLinker() function.

<group OdRx_Classes>

Definition at line 71 of file DynamicLinker.h.

Member Function Documentation

◆ addReactor()

virtual void OdRxDynamicLinker::addReactor ( OdRxDLinkerReactor pReactor)
pure virtual

Adds the specified reactor to the dynamic linker reactor chain.

Parameters
pReactor[in] Pointer to the reactor.

◆ getModule() [1/2]

virtual OdRxModulePtr OdRxDynamicLinker::getModule ( const OdString key) const
pure virtual

Returns the specified abstract (platform-independent) module.

◆ getModule() [2/2]

virtual OdRxModulePtr OdRxDynamicLinker::getModule ( int  index,
OdString key 
) const
pure virtual

Returns the specified abstract (platform-independent) module.

◆ getModuleCount()

virtual int OdRxDynamicLinker::getModuleCount ( ) const
pure virtual

Returns the count of loaded modules.

◆ loadApp()

virtual OdRxModulePtr OdRxDynamicLinker::loadApp ( const OdString applicationName,
bool  silent = true 
)
pure virtual

Maps the specfied application name to the a module filename, and loads that module.

Parameters
applicationName[in] TX application name.
silent[in] If and only if true, no load status message will be printed.

◆ loadModule()

virtual OdRxModulePtr OdRxDynamicLinker::loadModule ( const OdString moduleFileName,
bool  silent = true 
)
pure virtual

Loads the specified abstract (platform-independent) module.

Returns
Returns a SmartPointer to the abstract module object.
Parameters
moduleFileName[in] Module filename to load.
silent[in] If true, no load status message will be printed.

◆ loadModuleObj()

virtual OdRxModule* OdRxDynamicLinker::loadModuleObj ( OdRxModule pModuleObj,
bool  bSilent = true 
)
pure virtual

DOM

Special internal method - used for non-standard module loading only

◆ ODRX_DECLARE_MEMBERS()

OdRxDynamicLinker::ODRX_DECLARE_MEMBERS ( OdRxDynamicLinker  )

◆ removeReactor()

virtual void OdRxDynamicLinker::removeReactor ( OdRxDLinkerReactor pReactor)
pure virtual

Removes the specified reactor to the dynamic linker reactor chain.

Parameters
pReactor[in] Pointer to the reactor.

◆ sysRegistry()

virtual OdRxDictionaryPtr OdRxDynamicLinker::sysRegistry ( ) const
pure virtual

Returns a SmartPointer to the OdRxDictionary instance that created by OdInitialize.

◆ sysServices()

virtual OdRxSystemServicesPtr OdRxDynamicLinker::sysServices ( ) const
pure virtual

Returns a SmartPointer to the OdDbSystemServices instance that is used for file creation and access.

See also
odInitialize

◆ unloadModule()

virtual bool OdRxDynamicLinker::unloadModule ( const OdString moduleFileName)
pure virtual

Unoads the specified abstract (platform-independent) module.

Parameters
moduleFileName[in] Module filename to unload.

◆ unloadUnreferenced()

virtual bool OdRxDynamicLinker::unloadUnreferenced ( )
pure virtual

Unoads all unreferenced modules.


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