📄 type_8h-source.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>type.h Source File</title><link href="doxygen.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.2.15 --><center><a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="annotated.html">Compound List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </center><hr><h1>type.h</h1><div class="fragment"><pre>00001 <font class="preprocessor">#ifndef __TYPE_H__</font>00002 <font class="preprocessor"></font><font class="preprocessor">#define __TYPE_H__</font>00003 <font class="preprocessor"></font>00004 <font class="preprocessor">#include <string.h></font>00005 00006 <font class="keyword">class </font><a class="code" href="classRTTIClassDescriptor.html">RTTIClassDescriptor</a>;00007 <font class="keyword">class </font><a class="code" href="classRTTIFieldDescriptor.html">RTTIFieldDescriptor</a>;00008 <a name="l00012"></a><a class="code" href="classRTTIType.html">00012</a> <font class="keyword">class </font>RTTI_DLL_ENTRY <a class="code" href="classRTTIType.html">RTTIType</a> { 00013 <font class="keyword">public</font>:<a name="l00018"></a><a class="code" href="classRTTIType.html#RTTITypea0">00018</a> <font class="keywordtype">int</font> getTag() { 00019 <font class="keywordflow">return</font> tag;00020 }00021 00026 <font class="keyword">virtual</font> <font class="keywordtype">void</font> getTypeName(<font class="keywordtype">char</font>* buf);00027 00028 <font class="keyword">static</font> <a class="code" href="classRTTIType.html">RTTIType</a> voidType;00029 <font class="keyword">static</font> <a class="code" href="classRTTIType.html">RTTIType</a> charType;00030 <font class="keyword">static</font> <a class="code" href="classRTTIType.html">RTTIType</a> ucharType;00031 <font class="keyword">static</font> <a class="code" href="classRTTIType.html">RTTIType</a> scharType;00032 <font class="keyword">static</font> <a class="code" href="classRTTIType.html">RTTIType</a> shortType;00033 <font class="keyword">static</font> <a class="code" href="classRTTIType.html">RTTIType</a> ushortType;00034 <font class="keyword">static</font> <a class="code" href="classRTTIType.html">RTTIType</a> intType;00035 <font class="keyword">static</font> <a class="code" href="classRTTIType.html">RTTIType</a> uintType;00036 <font class="keyword">static</font> <a class="code" href="classRTTIType.html">RTTIType</a> longType;00037 <font class="keyword">static</font> <a class="code" href="classRTTIType.html">RTTIType</a> ulongType;00038 <font class="keyword">static</font> <a class="code" href="classRTTIType.html">RTTIType</a> floatType;00039 <font class="keyword">static</font> <a class="code" href="classRTTIType.html">RTTIType</a> doubleType;00040 <font class="keyword">static</font> <a class="code" href="classRTTIType.html">RTTIType</a> boolType;00041 <font class="keyword">static</font> <a class="code" href="classRTTIType.html">RTTIType</a> unknownType;00042 00043 <font class="keyword">enum</font> TypeTag { 00044 RTTI_UNKNOWN, 00045 RTTI_VOID, 00046 RTTI_CHAR, 00047 RTTI_UCHAR, 00048 RTTI_SCHAR, 00049 RTTI_SHORT, 00050 RTTI_USHORT, 00051 RTTI_INT, 00052 RTTI_UINT, 00053 RTTI_LONG, 00054 RTTI_ULONG, 00055 RTTI_FLOAT, 00056 RTTI_DOUBLE, 00057 RTTI_BOOL, 00058 RTTI_ARRAY, 00059 RTTI_STRUCT, 00060 RTTI_PTR, 00061 RTTI_DERIVED,00062 RTTI_METHOD 00063 };00064 <a name="l00068"></a><a class="code" href="classRTTIType.html#RTTITypea2">00068</a> <font class="keywordtype">bool</font> isBuiltin() { 00069 <font class="keywordflow">return</font> tag <= RTTI_BOOL;00070 }00071 <a name="l00075"></a><a class="code" href="classRTTIType.html#RTTITypea3">00075</a> <font class="keywordtype">bool</font> isScalar() { 00076 <font class="keywordflow">return</font> tag > RTTI_VOID && tag <= RTTI_BOOL;00077 } 00078 <a name="l00082"></a><a class="code" href="classRTTIType.html#RTTITypea4">00082</a> <font class="keywordtype">bool</font> isArray() { 00083 <font class="keywordflow">return</font> tag == RTTI_ARRAY;00084 }00085 <a name="l00089"></a><a class="code" href="classRTTIType.html#RTTITypea5">00089</a> <font class="keywordtype">bool</font> isPointer() { 00090 <font class="keywordflow">return</font> tag == RTTI_PTR;00091 }00092 <a name="l00096"></a><a class="code" href="classRTTIType.html#RTTITypea6">00096</a> <font class="keywordtype">bool</font> isClass() { 00097 <font class="keywordflow">return</font> tag == RTTI_STRUCT;00098 }00099 <a name="l00103"></a><a class="code" href="classRTTIType.html#RTTITypea7">00103</a> <font class="keywordtype">bool</font> isBaseClass() { 00104 <font class="keywordflow">return</font> tag == RTTI_DERIVED;00105 }00106 00110 ~<a class="code" href="classRTTIType.html">RTTIType</a>();00111 00112 <font class="keyword">protected</font>:00113 <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="classRTTIClassDescriptor.html">RTTIClassDescriptor</a>;00114 <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="classRTTIFieldDescriptor.html">RTTIFieldDescriptor</a>;00115 <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="classRTTIMethodDescriptor.html">RTTIMethodDescriptor</a>;00116 00117 <font class="keywordtype">int</font> tag;00118 00119 <font class="keywordtype">void</font> destroy() {00120 <font class="keywordflow">if</font> (!isBuiltin()) { 00121 <font class="keyword">delete</font> <font class="keyword">this</font>;00122 }00123 }00124 00125 <a class="code" href="classRTTIType.html">RTTIType</a>(<font class="keywordtype">int</font> tag) { 00126 this->tag = tag;00127 }00128 };00129 00130 <a name="l00134"></a><a class="code" href="classRTTIPtrType.html">00134</a> <font class="keyword">class </font>RTTI_DLL_ENTRY RTTIPtrType : <font class="keyword">public</font> <a class="code" href="classRTTIType.html">RTTIType</a> { 00135 <font class="keyword">public</font>:00136 RTTIPtrType(<a class="code" href="classRTTIType.html">RTTIType</a>* ptrType) : <a class="code" href="classRTTIType.html">RTTIType</a>(RTTI_PTR) {00137 this->ptrType = ptrType;00138 }00139 <font class="keywordtype">void</font> <a class="code" href="classRTTIType.html#RTTITypea1">getTypeName</a>(<font class="keywordtype">char</font>* buf);00140 <font class="keyword">protected</font>:00141 <a class="code" href="classRTTIType.html">RTTIType</a>* ptrType;00142 };00143 <a name="l00147"></a><a class="code" href="classRTTIArrayType.html">00147</a> <font class="keyword">class </font>RTTI_DLL_ENTRY RTTIArrayType : <font class="keyword">public</font> <a class="code" href="classRTTIType.html">RTTIType</a> { 00148 <font class="keyword">public</font>:00149 RTTIArrayType(<a class="code" href="classRTTIType.html">RTTIType</a>* elemType, <font class="keywordtype">int</font> nElems) : <a class="code" href="classRTTIType.html">RTTIType</a>(RTTI_ARRAY) {00150 this->elemType = elemType;00151 this->nElems = nElems;00152 }00153 <font class="keywordtype">void</font> <a class="code" href="classRTTIType.html#RTTITypea1">getTypeName</a>(<font class="keywordtype">char</font>* buf);00154 00155 <font class="keywordtype">int</font> getArraySize() { 00156 <font class="keywordflow">return</font> nElems;00157 }00158 00159 <a class="code" href="classRTTIType.html">RTTIType</a>* getElementType() { 00160 <font class="keywordflow">return</font> elemType;00161 }00162 00163 <font class="keyword">protected</font>:00164 <a class="code" href="classRTTIType.html">RTTIType</a>* elemType;00165 <font class="keywordtype">int</font> nElems;00166 };00167 <a name="l00171"></a><a class="code" href="classRTTIDerivedType.html">00171</a> <font class="keyword">class </font>RTTI_DLL_ENTRY RTTIDerivedType : <font class="keyword">public</font> <a class="code" href="classRTTIType.html">RTTIType</a> { 00172 <font class="keyword">public</font>:00173 RTTIDerivedType(<a class="code" href="classRTTIClassDescriptor.html">RTTIClassDescriptor</a>* baseClass) : <a class="code" href="classRTTIType.html">RTTIType</a>(RTTI_DERIVED) {00174 this->baseClass = baseClass;00175 }00176 00177 <a class="code" href="classRTTIClassDescriptor.html">RTTIClassDescriptor</a>* getBaseClass() { 00178 <font class="keywordflow">return</font> baseClass;00179 }00180 00181 <font class="keywordtype">void</font> <a class="code" href="classRTTIType.html#RTTITypea1">getTypeName</a>(<font class="keywordtype">char</font>* buf);00182 00183 <font class="keyword">protected</font>:00184 <a class="code" href="classRTTIClassDescriptor.html">RTTIClassDescriptor</a>* baseClass;00185 };00186 <a name="l00190"></a><a class="code" href="classRTTIMethodType.html">00190</a> <font class="keyword">class </font>RTTI_DLL_ENTRY RTTIMethodType : <font class="keyword">public</font> <a class="code" href="classRTTIType.html">RTTIType</a> { 00191 <font class="keyword">public</font>:00192 <font class="keywordtype">void</font> <a class="code" href="classRTTIType.html#RTTITypea1">getTypeName</a>(<font class="keywordtype">char</font>* buf);00193 00194 <font class="keywordtype">void</font> getMethodDeclaration(<font class="keywordtype">char</font>* buf, <font class="keywordtype">char</font> <font class="keyword">const</font>* name);00195 00196 <font class="keyword">virtual</font> <font class="keywordtype">void</font> invoke(<font class="keywordtype">void</font>* result, <font class="keywordtype">void</font>* obj, <font class="keywordtype">void</font>* parameters[]) = 0;00197 00198 <a class="code" href="classRTTIClassDescriptor.html">RTTIClassDescriptor</a>* getClass() { 00199 <font class="keywordflow">return</font> methodClass;00200 }00201 00202 <a class="code" href="classRTTIType.html">RTTIType</a>* getReturnType() { 00203 <font class="keywordflow">return</font> returnType;00204 }00205 00206 <a class="code" href="classRTTIType.html">RTTIType</a>** getParameterTypes() { 00207 <font class="keywordflow">return</font> paramTypes;00208 }00209 00210 <font class="keywordtype">int</font> getNumberOfParameters() { 00211 <font class="keywordflow">return</font> nParams;00212 }00213 00214 RTTIMethodType() : <a class="code" href="classRTTIType.html">RTTIType</a>(RTTI_METHOD) {}00215 ~RTTIMethodType() { 00216 <font class="keyword">delete</font>[] paramTypes;00217 }00218 <font class="keyword">protected</font>:00219 <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="classRTTIMethodDescriptor.html">RTTIMethodDescriptor</a>;00220 <font class="keyword">friend</font> <font class="keyword">class </font>RTTIBfdRepository;00221 00222 <a class="code" href="classRTTIType.html">RTTIType</a>* returnType;00223 <font class="keywordtype">int</font> nParams;00224 <a class="code" href="classRTTIType.html">RTTIType</a>** paramTypes;00225 <a class="code" href="classRTTIClassDescriptor.html">RTTIClassDescriptor</a>* methodClass;00226 <font class="keywordtype">bool</font> isStatic;00227 };00228 00229 00230 <font class="preprocessor">#endif</font>00231 <font class="preprocessor"></font></pre></div><hr><address align="right"><small>Generated on Fri Apr 26 17:39:24 2002 for CppReflection by<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0 width=110 height=53></a>1.2.15 </small></address></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -