Main Page   Class Hierarchy   Compound List   File List   Compound Members  

reflect.h

00001 #ifndef __REFLECT_H__
00002 #define __REFLECT_H__
00003 
00004 #ifdef USE_RTTI
00005 #include <typeinfo>
00006 #endif
00007 
00008 #ifdef RTTI_DLL
00009 #ifdef INSIDE_RTTI
00010 #define RTTI_DLL_ENTRY __declspec(dllexport)
00011 #else
00012 #define RTTI_DLL_ENTRY __declspec(dllimport)
00013 #endif
00014 #else
00015 #define RTTI_DLL_ENTRY
00016 #endif
00017 
00018 
00019 #include "type.h"
00020 #include "class.h"
00021 #include "field.h"
00022 #include "method.h"
00023 
00024 const int RTTI_CLASS_HASH_SIZE = 1013;
00025 
00029 class RTTI_DLL_ENTRY RTTIRepository { 
00030   public:
00037     RTTIClassDescriptor* getFirstClass() { 
00038         return classes;
00039     }
00040 
00046     RTTIClassDescriptor*               findClass(char const* name);
00047 
00048 #ifdef USE_RTTI
00049 
00054      * 
00055     RTTIClassDescriptor*               findClass(class type_info const& tinfo) { 
00056         return findClass(tinfo.getName());
00057     }
00058 #endif
00059 
00064     static RTTIRepository* getInstance() { 
00065         return &theRepository;
00066     }
00067 
00072     bool addClass(RTTIClassDescriptor* cls); 
00073 
00083     virtual bool load(char const* filePath);
00084 
00085   protected:
00086     static RTTIRepository theRepository;
00087     RTTIClassDescriptor*  classes;
00088     RTTIClassDescriptor*  hashTable[RTTI_CLASS_HASH_SIZE];    
00089 };
00090 
00091 
00092 #endif
00093 
00094 

Generated on Fri Apr 26 17:39:24 2002 for CppReflection by doxygen1.2.15