CFx SDK Documentation  2020SP3
Classes | Macros | Typedefs | Functions
RxDynamicModule.h File Reference
#include "RxModule.h"
#include "TDVersion.h"
#include "OdString.h"
#include "OdAllocOp.h"
#include "Tf/TfSchemaManageriInterface.h"
#include "TD_PackPush.h"
#include "TD_PackPop.h"

Go to the source code of this file.

Classes

class  OdRxStaticModule< T, TInterface >
 
struct  STATIC_MODULE_DESC
 
class  OdRxPseudoStaticModule< T, TInterface >
 

Macros

#define ODRX_STATIC_MODULE_ENTRY_POINT(_UserModuleClass)   odrxCreateModuleObject_For_##_UserModuleClass
 
#define ODRX_DECLARE_STATIC_MODULE_ENTRY_POINT(_UserModuleClass)   OdRxModule* ODRX_STATIC_MODULE_ENTRY_POINT(_UserModuleClass)(const OdString& szModuleName)
 
#define ODRX_BEGIN_STATIC_MODULE_MAP()   STATIC_MODULE_DESC g_ODRX_STATIC_MODULE_MAP[] = {
 
#define ODRX_DEFINE_STATIC_APPLICATION(AppName, ModuleClassName)   { AppName, ODRX_STATIC_MODULE_ENTRY_POINT(ModuleClassName) },
 
#define ODRX_DEFINE_STATIC_APPMODULE(moduleName, ModuleClassName)   ODRX_DEFINE_STATIC_APPLICATION(moduleName, ModuleClassName)
 
#define ODRX_END_STATIC_MODULE_MAP()   { 0, 0 } };
 
#define ODRX_INIT_STATIC_MODULE_MAP()   odrxInitStaticModuleMap(g_ODRX_STATIC_MODULE_MAP)
 
#define ODRX_DEFINE_STATIC_MODULE(_UserModuleClass)
 
#define ODRX_DEFINE_PSEUDO_STATIC_MODULE(_UserModuleClass)
 
#define ODRX_STATIC_MODULE_PATH   ""
 
#define ODRX_STATIC_APP_MODULE_NAME(AppName)   AppName
 
#define ODRX_DEFINE_DYNAMIC_MODULE(_UserModuleClass)   ODRX_DEFINE_STATIC_MODULE(_UserModuleClass)
 
#define ODRX_GET_MODULE_OBJECT(_UserModuleClass)   g_pSingletonModule##_UserModuleClass
 
#define DISABLE_THREAD_LIBRARY_CALLS()
 

Typedefs

typedef OdRxModule *(* StaticModuleEntryPoint) (const OdString &szModuleName)
 

Functions

FIRSTDLL_EXPORT void odrxInitStaticModuleMap (STATIC_MODULE_DESC *pMap)
 

Macro Definition Documentation

◆ DISABLE_THREAD_LIBRARY_CALLS

#define DISABLE_THREAD_LIBRARY_CALLS ( )

Definition at line 709 of file RxDynamicModule.h.

◆ ODRX_BEGIN_STATIC_MODULE_MAP

#define ODRX_BEGIN_STATIC_MODULE_MAP ( )    STATIC_MODULE_DESC g_ODRX_STATIC_MODULE_MAP[] = {

Defines the start of the static module map, which contains entries for all custom Teigha modules that are linked in statically to a Teigha client application.

Definition at line 121 of file RxDynamicModule.h.

◆ ODRX_DECLARE_STATIC_MODULE_ENTRY_POINT

#define ODRX_DECLARE_STATIC_MODULE_ENTRY_POINT (   _UserModuleClass)    OdRxModule* ODRX_STATIC_MODULE_ENTRY_POINT(_UserModuleClass)(const OdString& szModuleName)

This macro is used to create an entry point function for a custom application which are linked in statically to a Teigha client application.

Definition at line 105 of file RxDynamicModule.h.

◆ ODRX_DEFINE_DYNAMIC_MODULE

#define ODRX_DEFINE_DYNAMIC_MODULE (   _UserModuleClass)    ODRX_DEFINE_STATIC_MODULE(_UserModuleClass)

Definition at line 686 of file RxDynamicModule.h.

◆ ODRX_DEFINE_PSEUDO_STATIC_MODULE

#define ODRX_DEFINE_PSEUDO_STATIC_MODULE (   _UserModuleClass)
Value:

Definition at line 229 of file RxDynamicModule.h.

◆ ODRX_DEFINE_STATIC_APPLICATION

#define ODRX_DEFINE_STATIC_APPLICATION (   AppName,
  ModuleClassName 
)    { AppName, ODRX_STATIC_MODULE_ENTRY_POINT(ModuleClassName) },

Defines the entry in the static module map, which contains entries for all custom Teigha modules that are linked in statically to a Teigha client application.

Parameters
AppName[in] Registered application name, that can be later passed to OdRxDynamicLinker::loadModule to load the static application.
ModuleClassName[in] Name of the C++ class derived from OdRxModule, that implements support for this module.

Definition at line 133 of file RxDynamicModule.h.

◆ ODRX_DEFINE_STATIC_APPMODULE

#define ODRX_DEFINE_STATIC_APPMODULE (   moduleName,
  ModuleClassName 
)    ODRX_DEFINE_STATIC_APPLICATION(moduleName, ModuleClassName)

Definition at line 138 of file RxDynamicModule.h.

◆ ODRX_DEFINE_STATIC_MODULE

#define ODRX_DEFINE_STATIC_MODULE (   _UserModuleClass)
Value:
\
static OdRxModule* g_pSingletonModule##_UserModuleClass = 0;\
{\
}

Definition at line 152 of file RxDynamicModule.h.

◆ ODRX_END_STATIC_MODULE_MAP

#define ODRX_END_STATIC_MODULE_MAP ( )    { 0, 0 } };

Defines the end of the static module map, which contains entries for all custom Teigha modules that are linked in statically to a Teigha client application.

Definition at line 145 of file RxDynamicModule.h.

◆ ODRX_GET_MODULE_OBJECT

#define ODRX_GET_MODULE_OBJECT (   _UserModuleClass)    g_pSingletonModule##_UserModuleClass

Definition at line 688 of file RxDynamicModule.h.

◆ ODRX_INIT_STATIC_MODULE_MAP

#define ODRX_INIT_STATIC_MODULE_MAP ( )    odrxInitStaticModuleMap(g_ODRX_STATIC_MODULE_MAP)

Definition at line 150 of file RxDynamicModule.h.

◆ ODRX_STATIC_APP_MODULE_NAME

#define ODRX_STATIC_APP_MODULE_NAME (   AppName)    AppName

Definition at line 684 of file RxDynamicModule.h.

◆ ODRX_STATIC_MODULE_ENTRY_POINT

#define ODRX_STATIC_MODULE_ENTRY_POINT (   _UserModuleClass)    odrxCreateModuleObject_For_##_UserModuleClass

Definition at line 99 of file RxDynamicModule.h.

◆ ODRX_STATIC_MODULE_PATH

#define ODRX_STATIC_MODULE_PATH   ""

Definition at line 682 of file RxDynamicModule.h.

Typedef Documentation

◆ StaticModuleEntryPoint

typedef OdRxModule*(* StaticModuleEntryPoint) (const OdString &szModuleName)

Definition at line 97 of file RxDynamicModule.h.

Function Documentation

◆ odrxInitStaticModuleMap()

FIRSTDLL_EXPORT void odrxInitStaticModuleMap ( STATIC_MODULE_DESC pMap)
ODRX_DECLARE_STATIC_MODULE_ENTRY_POINT
#define ODRX_DECLARE_STATIC_MODULE_ENTRY_POINT(_UserModuleClass)
Definition: RxDynamicModule.h:105
OdRxStaticModule::createModule
static OdRxModule * createModule(const OdString &name)
Definition: RxDynamicModule.h:81
OdRxModule
Definition: RxModule.h:45
OdRxPseudoStaticModule::createModule
static OdRxModule * createModule(const OdString &name)
Definition: RxDynamicModule.h:212