⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 class_8h-source.html

📁 俄罗斯牛人KK的作品,著名的ORDBMS,这里上传最新的3.39版本源代码.希望了解对象关系数据库的同好,请不要错过.
💻 HTML
📖 第 1 页 / 共 5 页
字号:
01105     <span class="keywordflow">return</span> fd;01106 }01107 <span class="preprocessor">#endif</span>01108 <span class="preprocessor"></span><span class="keyword">inline</span> <a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>* dbDescribeField(<a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>* fd, <span class="keywordtype">char</span> <span class="keyword">const</span>*&amp;) 01109 { 01110     fd-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm14">type</a> = fd-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm15">appType</a> = dbField::tpString; 01111     fd-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm22">dbsSize</a> = <span class="keyword">sizeof</span>(dbVarying); 01112     fd-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm24">alignment</a> = 4;01113     fd-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm19">components</a> = <span class="keyword">new</span> <a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>(<span class="stringliteral">"[]"</span>);01114     fd-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm19">components</a>-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm14">type</a> = fd-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm19">components</a>-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm15">appType</a> = dbField::tpInt1;01115     fd-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm19">components</a>-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm22">dbsSize</a> = fd-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm19">components</a>-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm23">appSize</a> = 1;01116     fd-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm19">components</a>-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm24">alignment</a> = 1; 01117     <span class="keywordflow">return</span> fd;01118 }01119 <span class="keyword">inline</span> <a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>* dbDescribeField(<a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>* fd, <span class="keywordtype">char</span>*&amp;) 01120 { 01121     fd-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm14">type</a> = fd-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm15">appType</a> = dbField::tpString; 01122     fd-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm22">dbsSize</a> = <span class="keyword">sizeof</span>(dbVarying); 01123     fd-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm24">alignment</a> = 4;01124     fd-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm19">components</a> = <span class="keyword">new</span> <a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>(<span class="stringliteral">"[]"</span>);01125     fd-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm19">components</a>-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm14">type</a> = fd-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm19">components</a>-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm15">appType</a> = dbField::tpInt1;01126     fd-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm19">components</a>-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm22">dbsSize</a> = fd-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm19">components</a>-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm23">appSize</a> = 1;01127     fd-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm19">components</a>-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm24">alignment</a> = 1; 01128     <span class="keywordflow">return</span> fd;01129 }01130 01131 <a name="l01135"></a><a class="code" href="classdbAnyMethodTrampoline.html">01135</a> <span class="keyword">class </span>FASTDB_DLL_ENTRY dbAnyMethodTrampoline { 01136   <span class="keyword">public</span>:01137     <a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>* cls;01138 01144     <span class="keyword">virtual</span> <span class="keywordtype">void</span> invoke(byte* data, <span class="keywordtype">void</span>* result) = 0;01145 01152     <span class="keyword">virtual</span> dbAnyMethodTrampoline* optimize() = 0;01153 <a name="l01158"></a><a class="code" href="classdbAnyMethodTrampoline.html#dbAnyMethodTrampolinea2">01158</a>     dbAnyMethodTrampoline(<a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>* fd) { cls = fd; }01159     01160     <span class="keywordtype">void</span>* operator new(size_t size EXTRA_DEBUG_NEW_PARAMS);01161     <span class="keywordtype">void</span>  operator delete(<span class="keywordtype">void</span>* p EXTRA_DEBUG_NEW_PARAMS);01162 01166     <span class="keyword">virtual</span>~dbAnyMethodTrampoline();01167 };01168     01169 01170 <span class="preprocessor">#if defined(__APPLE__) || defined(__VACPP_MULTI__) || defined(__IBMCPP__) || defined(__HP_aCC) || (defined(__SUNPRO_CC) &amp;&amp; __SUNPRO_CC &gt;= 0x510 &amp;&amp; __SUNPRO_CC_COMPAT == 5)</span>01171 <span class="preprocessor"></span>01174 <span class="keyword">template</span>&lt;<span class="keyword">class</span> T, <span class="keyword">class</span> R&gt;01175 <span class="keyword">class </span><a class="code" href="classdbMethodTrampoline.html">dbMethodTrampoline</a> : <span class="keyword">public</span> dbAnyMethodTrampoline {01176   <span class="keyword">public</span>:01177     <span class="keyword">typedef</span> R (T::*mfunc)();01178 01179     mfunc              method;01180     <a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>* cls;01181     <span class="keywordtype">bool</span>               optimized;01182 01183     <span class="keywordtype">void</span> <a class="code" href="classdbMethodTrampoline.html#dbMethodTrampolinea0">invoke</a>(byte* data, <span class="keywordtype">void</span>* result) {01184         <span class="keywordflow">if</span> (optimized) { 01185             *(R*)result = (((T*)(data + this-&gt;cls-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm17">dbsOffs</a>))-&gt;*method)();01186         } <span class="keywordflow">else</span> { 01187             T rec;01188             this-&gt;cls-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm19">components</a>-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptora7">fetchRecordFields</a>((byte*)&amp;rec, data);01189             *(R*)result = (rec.*method)();01190         }01191     }01192     dbAnyMethodTrampoline* <a class="code" href="classdbMethodTrampoline.html#dbMethodTrampolinea1">optimize</a>() { 01193         optimized = <span class="keyword">true</span>;01194         <span class="keywordflow">return</span> <span class="keyword">this</span>;01195     }01196 01197     <a class="code" href="classdbMethodTrampoline.html">dbMethodTrampoline</a>(<a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>* fd, mfunc f)01198     : dbAnyMethodTrampoline(fd)01199     {01200         this-&gt;method = f;01201         this-&gt;cls = fd;01202         this-&gt;optimized = <span class="keyword">false</span>;01203     }01204 };01205 01206 <span class="preprocessor">#else</span>01207 <span class="preprocessor"></span>01211 <span class="keyword">template</span>&lt;<span class="keyword">class</span> T, <span class="keyword">class</span> R&gt;<a name="l01212"></a><a class="code" href="classdbMethodTrampoline.html">01212</a> <span class="keyword">class </span><a class="code" href="classdbMethodTrampoline.html">dbMethodTrampoline</a> : <span class="keyword">public</span> dbAnyMethodTrampoline { 01213   <span class="keyword">public</span>:01214     <span class="keyword">typedef</span> R (T::*mfunc)();01215     mfunc method;<a name="l01216"></a><a class="code" href="classdbMethodTrampoline.html#dbMethodTrampolinea0">01216</a>     <span class="keywordtype">void</span> <a class="code" href="classdbMethodTrampoline.html#dbMethodTrampolinea0">invoke</a>(byte* data, <span class="keywordtype">void</span>* result) {01217         T rec;01218         this-&gt;cls-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm19">components</a>-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptora7">fetchRecordFields</a>((byte*)&amp;rec, data);01219         *(R*)result = (rec.*method)();01220     }01221     dbAnyMethodTrampoline* <a class="code" href="classdbMethodTrampoline.html#dbMethodTrampolinea1">optimize</a>();01222  01223     <a class="code" href="classdbMethodTrampoline.html">dbMethodTrampoline</a>(<a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>* fd, mfunc f) 01224     : dbAnyMethodTrampoline(fd), method(f) {} 01225 };01226 01227 01232 <span class="keyword">template</span>&lt;<span class="keyword">class</span> T, <span class="keyword">class</span> R&gt;<a name="l01233"></a><a class="code" href="classdbMethodFastTrampoline.html">01233</a> <span class="keyword">class </span><a class="code" href="classdbMethodFastTrampoline.html">dbMethodFastTrampoline</a> : <span class="keyword">public</span> dbAnyMethodTrampoline { 01234     <span class="keyword">typedef</span> R (T::*mfunc)();01235     mfunc method;01236   <span class="keyword">public</span>:<a name="l01237"></a><a class="code" href="classdbMethodFastTrampoline.html#dbMethodFastTrampolinea0">01237</a>     dbAnyMethodTrampoline* <a class="code" href="classdbMethodFastTrampoline.html#dbMethodFastTrampolinea0">optimize</a>() { 01238         <span class="keywordflow">return</span> <span class="keyword">this</span>;01239     }<a name="l01240"></a><a class="code" href="classdbMethodFastTrampoline.html#dbMethodFastTrampolinea1">01240</a>     <span class="keywordtype">void</span> <a class="code" href="classdbMethodFastTrampoline.html#dbMethodFastTrampolinea1">invoke</a>(byte* data, <span class="keywordtype">void</span>* result) {01241         *(R*)result = (((T*)(data + this-&gt;cls-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm17">dbsOffs</a>))-&gt;*method)();01242     }01243     <a class="code" href="classdbMethodFastTrampoline.html">dbMethodFastTrampoline</a>(<a class="code" href="classdbMethodTrampoline.html">dbMethodTrampoline&lt;T,R&gt;</a>* mt) 01244     : dbAnyMethodTrampoline(mt-&gt;cls), method(mt-&gt;method) {01245         <span class="keyword">delete</span> mt;01246     }01247 };01248 01249 <span class="keyword">template</span>&lt;<span class="keyword">class</span> T, <span class="keyword">class</span> R&gt;<a name="l01250"></a><a class="code" href="classdbMethodTrampoline.html#dbMethodTrampolinea1">01250</a> <span class="keyword">inline</span> dbAnyMethodTrampoline* <a class="code" href="classdbMethodTrampoline.html#dbMethodTrampolinea1">dbMethodTrampoline&lt;T,R&gt;::optimize</a>() { 01251     <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="classdbMethodFastTrampoline.html">dbMethodFastTrampoline&lt;T,R&gt;</a>(this);01252 }01253     01254 <span class="preprocessor">#endif</span>01255 <span class="preprocessor"></span>01256 <span class="keyword">template</span>&lt;<span class="keyword">class</span> T, <span class="keyword">class</span> R&gt;01257 <span class="keyword">inline</span> <a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>* dbDescribeMethod(<a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>* fd, R (T::*p)()) 01258 { 01259     R ret;01260     dbDescribeField(fd, ret);01261     assert(fd-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm14">type</a> &lt;= dbField::tpReference);01262     fd-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm15">appType</a> = fd-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm14">type</a> += dbField::tpMethodBool;01263     fd-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm30">method</a> = <span class="keyword">new</span> <a class="code" href="classdbMethodTrampoline.html">dbMethodTrampoline&lt;T,R&gt;</a>(fd, p);01264     <span class="keywordflow">return</span> fd;01265 }01266 01267 END_FASTDB_NAMESPACE01268 01269 <span class="preprocessor">#endif</span>01270 <span class="preprocessor"></span>01271 </pre></div><hr><address style="align: right;"><small>Generated on Mon Oct 23 13:23:57 2006 for FastDB 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.18 </small></address></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -