ML Reference
|
00001 // **InsertLicense** code 00002 //------------------------------------------------------------------------- 00012 00017 //------------------------------------------------------------------------- 00018 #ifndef __mlRuntime_H 00019 #define __mlRuntime_H 00020 00021 //ML-includes 00022 #ifndef __mlUtilsSystem_H 00023 #include "mlUtilsSystem.h" 00024 #endif 00025 #ifndef __mlRuntimeType_H 00026 #include "mlRuntimeType.h" 00027 #endif 00028 00029 ML_UTILS_START_NAMESPACE 00030 00032 class RuntimeDict; 00034 00035 //------------------------------------------------------------------------- 00046 //------------------------------------------------------------------------- 00047 class ML_UTILS_EXPORT Runtime { 00048 00049 public: 00051 static void init(); 00052 00054 static void destroy(); 00055 00059 static const RuntimeType* fromName(const char* name); 00060 00074 static const RuntimeType* initType(const RuntimeType *classType, 00075 const char *parentName, 00076 const char *classPrefix, 00077 const char *className, 00078 RuntimeType::RuntimeTypeCreateCB *createCB); 00079 00082 static void destroyType(const char* name); 00083 00085 static const RuntimeType* badType(); 00086 00088 static const RuntimeType* getFirstEntry(); 00089 00091 static const RuntimeType* getNextEntry(); 00092 00093 00096 static void setRecentlyLoadedDllName(const char* name); 00097 00100 static const char* getRecentlyLoadedDllName(); 00101 00105 static void destroyRuntimeTypesOfDll(const char* dllName); 00106 00113 static std::list<const RuntimeType*> getAllDerivedFrom(const RuntimeType *parentType, 00114 bool onlyFromDifferentDlls=false); 00115 00116 protected: 00125 static const RuntimeType* createType(const char *parentName, 00126 const char *name, 00127 RuntimeType::RuntimeTypeCreateCB* callback); 00128 }; 00129 00130 00131 ML_UTILS_END_NAMESPACE 00132 00133 #endif // __mlRuntime_H 00134 00135 00136 00137 00138 00139 00140