reference_8h-source.html

来自「一个功能强大的内存数据库源代码,c++编写,有详细的注释」· HTML 代码 · 共 123 行

HTML
123
字号
<!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>reference.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> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </center><hr><h1>reference.h</h1><div class="fragment"><pre>00001 <font class="comment">//-&lt; REFERENCE.H &gt;---------------------------------------------------*--------*</font>00002 <font class="comment">// FastDB                    Version 1.0         (c) 1999  GARRET    *     ?  *</font>00003 <font class="comment">// (Main Memory Database Management System)                          *   /\|  *</font>00004 <font class="comment">//                                                                   *  /  \  *</font>00005 <font class="comment">//                          Created:     20-Nov-98    K.A. Knizhnik  * / [] \ *</font>00006 <font class="comment">//                          Last update: 15-Feb-99    K.A. Knizhnik  * GARRET *</font>00007 <font class="comment">//-------------------------------------------------------------------*--------*</font>00008 <font class="comment">// Database table field reference type</font>00009 <font class="comment">//-------------------------------------------------------------------*--------*</font>00010 00011 <font class="preprocessor">#ifndef __REFERENCE_H__</font>00012 <font class="preprocessor"></font><font class="preprocessor">#define __REFERENCE_H__</font>00013 <font class="preprocessor"></font><a name="l00017"></a><a class="code" href="classdbAnyReference.html">00017</a> <font class="keyword">class </font>FASTDB_DLL_ENTRY <a class="code" href="classdbAnyReference.html">dbAnyReference</a> {  00018     <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="classdbAnyCursor.html">dbAnyCursor</a>;00019     <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="classdbDatabase.html">dbDatabase</a>;00020     <font class="keyword">friend</font> <font class="keyword">class </font><a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>;00021   <font class="keyword">protected</font>:00022     oid_t       oid;00023 00024   <font class="keyword">public</font>: 00025     <a class="code" href="classdbAnyReference.html">dbAnyReference</a>(oid_t oid = 0) { 00026         this-&gt;oid = oid;00027     }<a name="l00032"></a><a class="code" href="classdbAnyReference.html#dbReference_3_01Version_01_4a10">00032</a>     oid_t getOid()<font class="keyword"> const </font>{ 00033         <font class="keywordflow">return</font> oid;00034     }00035 <a name="l00039"></a><a class="code" href="classdbAnyReference.html#dbReference_3_01Version_01_4l0">00039</a>     <font class="keyword">friend</font> <font class="keywordtype">bool</font> isNull(<a class="code" href="classdbAnyReference.html">dbAnyReference</a> <font class="keyword">const</font>&amp; ref) { 00040         <font class="keywordflow">return</font> ref.<a class="code" href="classdbAnyReference.html#dbReference_3_01Version_01_4n0">oid</a> == 0; 00041     }00042     <a name="l00046"></a><a class="code" href="classdbAnyReference.html#dbReference_3_01Version_01_4a11">00046</a>     <font class="keywordtype">bool</font> isNull()<font class="keyword"> const </font>{ <font class="keywordflow">return</font> oid == 0; }00047 };00048 <a name="l00052"></a><a class="code" href="classdbNullReference.html">00052</a> <font class="keyword">class </font>FASTDB_DLL_ENTRY dbNullReference {};00053 00057 <font class="keyword">extern</font> FASTDB_DLL_ENTRY dbNullReference null;00058 00059 <font class="preprocessor">#if (defined(_MSC_VER) &amp;&amp; _MSC_VER+0 &lt;= 1100)</font>00060 <font class="preprocessor"></font><font class="comment">//</font>00061 <font class="comment">// Visual C++ prior to 5.0 version (with applied Service Pack 3)</font>00062 <font class="comment">// didn't support lazy template instantiation. As far as VC has bug</font>00063 <font class="comment">// with treating local function prototypes, we have to use friend function.</font>00064 <font class="comment">//</font>00065 <font class="keyword">template</font>&lt;<font class="keyword">class</font> T&gt;00066 <font class="keyword">extern</font> <a class="code" href="classdbTableDescriptor.html">dbTableDescriptor</a>* dbGetTableDescriptor(T*);00067 <font class="preprocessor">#endif</font>00068 <font class="preprocessor"></font>00069 00073 <font class="keyword">template</font>&lt;<font class="keyword">class</font> T&gt;<a name="l00074"></a><a class="code" href="classdbReference.html">00074</a> <font class="keyword">class </font><a class="code" href="classdbReference.html">dbReference</a> : <font class="keyword">public</font> <a class="code" href="classdbAnyReference.html">dbAnyReference</a> { 00075   <font class="keyword">public</font>:<a name="l00079"></a><a class="code" href="classdbReference.html#dbReferencea0">00079</a>     <a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>* <a class="code" href="classdbReference.html#dbReferencea0">dbDescribeComponents</a>(<a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>* fd) { 00080         fd-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm14">type</a> = fd-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm15">appType</a> = dbField::tpReference;00081 <font class="preprocessor">#if defined(_MSC_VER) &amp;&amp; _MSC_VER+0 &lt;= 1100 </font>00082 <font class="preprocessor"></font>        fd-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm10">refTable</a> = dbGetTableDescriptor((T*)0);00083 <font class="preprocessor">#else</font>00084 <font class="preprocessor"></font><font class="preprocessor">#if defined(__GNUC__) &amp;&amp; __GNUC_MINOR__ &lt;= 95</font>00085 <font class="preprocessor"></font>        <font class="keyword">extern</font> <a class="code" href="classdbTableDescriptor.html">dbTableDescriptor</a>* dbGetTableDescriptor(T*);00086         fd-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm10">refTable</a> = dbGetTableDescriptor((T*)0);00087 <font class="preprocessor">#else</font>00088 <font class="preprocessor"></font>        fd-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm10">refTable</a> = &amp;T::dbDescriptor;00089 <font class="preprocessor">#endif</font>00090 <font class="preprocessor"></font><font class="preprocessor">#endif</font>00091 <font class="preprocessor"></font>        fd-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm22">dbsSize</a> = fd-&gt;<a class="code" href="classdbFieldDescriptor.html#dbFieldDescriptorm24">alignment</a> = <font class="keyword">sizeof</font>(oid_t);00092         <font class="keywordflow">return</font> NULL;00093     }00094 <a name="l00100"></a><a class="code" href="classdbReference.html#dbReferencea1">00100</a>     <a class="code" href="classdbReference.html">dbReference</a>&amp; <a class="code" href="classdbReference.html#dbReferencea1">operator = </a>(<a class="code" href="classdbReference.html">dbReference</a> <font class="keyword">const</font>&amp; ref) { 00101         oid = ref.<a class="code" href="classdbAnyReference.html#dbReference_3_01Version_01_4n0">oid</a>;00102         <font class="keywordflow">return</font> *<font class="keyword">this</font>;00103     }00104 <a name="l00109"></a><a class="code" href="classdbReference.html#dbReferencea2">00109</a>     <a class="code" href="classdbReference.html">dbReference</a>&amp; <a class="code" href="classdbReference.html#dbReferencea1">operator = </a>(dbNullReference <font class="keyword">const</font>&amp;) { 00110         oid = 0;00111         <font class="keywordflow">return</font> *<font class="keyword">this</font>;00112     }00113 <a name="l00117"></a><a class="code" href="classdbReference.html#dbReferencea3">00117</a>     <font class="keywordtype">bool</font> <a class="code" href="classdbReference.html#dbReferencea3">operator == </a>(<a class="code" href="classdbReference.html">dbReference</a> <font class="keyword">const</font>&amp; ref)<font class="keyword"> const </font>{ 00118         <font class="keywordflow">return</font> oid == ref.<a class="code" href="classdbAnyReference.html#dbReference_3_01Version_01_4n0">oid</a>; 00119     }00120 <a name="l00124"></a><a class="code" href="classdbReference.html#dbReferencea4">00124</a>     <font class="keywordtype">bool</font> <a class="code" href="classdbReference.html#dbReferencea4">operator != </a>(<a class="code" href="classdbReference.html">dbReference</a> <font class="keyword">const</font>&amp; ref)<font class="keyword"> const </font>{ 00125         <font class="keywordflow">return</font> oid != ref.<a class="code" href="classdbAnyReference.html#dbReference_3_01Version_01_4n0">oid</a>; 00126     }00127 <a name="l00131"></a><a class="code" href="classdbReference.html#dbReferencea5">00131</a>     <font class="keywordtype">bool</font> <a class="code" href="classdbReference.html#dbReferencea3">operator == </a>(dbNullReference <font class="keyword">const</font>&amp;)<font class="keyword"> const </font>{ 00132         <font class="keywordflow">return</font> oid == 0;00133     }00134 <a name="l00138"></a><a class="code" href="classdbReference.html#dbReferencea6">00138</a>     <font class="keywordtype">bool</font> <a class="code" href="classdbReference.html#dbReferencea4">operator != </a>(dbNullReference <font class="keyword">const</font>&amp;)<font class="keyword"> const </font>{ 00139         <font class="keywordflow">return</font> oid != 0;00140     }00141 <a name="l00145"></a><a class="code" href="classdbReference.html#dbReferencea7">00145</a>     <a class="code" href="classdbReference.html#dbReferencea7">dbReference</a>(dbNullReference <font class="keyword">const</font>&amp;) : <a class="code" href="classdbAnyReference.html">dbAnyReference</a>(0) {}00146 <a name="l00150"></a><a class="code" href="classdbReference.html#dbReferencea8">00150</a>     <a class="code" href="classdbReference.html#dbReferencea7">dbReference</a>(<a class="code" href="classdbReference.html">dbReference</a> <font class="keyword">const</font>&amp; ref) : <a class="code" href="classdbAnyReference.html">dbAnyReference</a>(ref.oid) {}00151     <a name="l00158"></a><a class="code" href="classdbReference.html#dbReferencea9">00158</a>     <a class="code" href="classdbReference.html#dbReferencea7">dbReference</a>(oid_t oid=0) : <a class="code" href="classdbAnyReference.html">dbAnyReference</a>(oid) {}00159 };00160 00161 <font class="preprocessor">#endif</font>00162 <font class="preprocessor"></font>00163 00164 00165 00166 </pre></div><hr><address align="right"><small>Generated on Fri Nov 15 21:06:29 2002 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.15 </small></address></body></html>

⌨️ 快捷键说明

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