ML Reference
MeVis/Foundation/Sources/MLUtilities/mlRuntime.h
Go to the documentation of this file.
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