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

📄 stdtp_8h-source.html

📁 FastDb是高效的内存数据库系统
💻 HTML
📖 第 1 页 / 共 2 页
字号:
00138 <span class="preprocessor">#if !defined(bool) &amp;&amp; (defined(__SUNPRO_CC) || defined(__IBMCPP__))</span>00139 <span class="preprocessor"></span><span class="preprocessor">#define bool  char</span>00140 <span class="preprocessor"></span><span class="preprocessor">#define true  (1)</span>00141 <span class="preprocessor"></span><span class="preprocessor">#define false (0)</span>00142 <span class="preprocessor"></span><span class="preprocessor">#endif</span>00143 <span class="preprocessor"></span>00144 <span class="preprocessor">#define nat8_low_part(x)  ((nat4)(x))</span>00145 <span class="preprocessor"></span><span class="preprocessor">#define nat8_high_part(x) ((nat4)((nat8)(x)&gt;&gt;32))</span>00146 <span class="preprocessor"></span><span class="preprocessor">#define int8_low_part(x)  ((int4)(x))</span>00147 <span class="preprocessor"></span><span class="preprocessor">#define int8_high_part(x) ((int4)((db_int8)(x)&gt;&gt;32))</span>00148 <span class="preprocessor"></span><span class="preprocessor">#define cons_nat8(hi, lo) ((((nat8)(hi)) &lt;&lt; 32) | (nat4)(lo))</span>00149 <span class="preprocessor"></span><span class="preprocessor">#define cons_int8(hi, lo) ((((db_int8)(hi)) &lt;&lt; 32) | (nat4)(lo))</span>00150 <span class="preprocessor"></span> 00151 <span class="preprocessor">#define MAX_NAT8  nat8(-1)</span>00152 <span class="preprocessor"></span>00153 <span class="preprocessor">#ifndef INT8_IS_DEFINED</span>00154 <span class="preprocessor"></span><span class="keyword">typedef</span> db_int8 int8;00155 <span class="preprocessor">#endif</span>00156 <span class="preprocessor"></span><span class="keyword">typedef</span> db_nat8 nat8;00157 00158 <span class="keyword">typedef</span> <span class="keywordtype">float</span>  real4;00159 <span class="keyword">typedef</span> <span class="keywordtype">double</span> real8; 00160 00161 <span class="preprocessor">#ifndef BIG_ENDIAN</span>00162 <span class="preprocessor"></span><span class="preprocessor">#define BIG_ENDIAN      4321    </span><span class="comment">/* most-significant byte first (IBM, net) */</span>00163 <span class="preprocessor">#endif</span>00164 <span class="preprocessor"></span><span class="preprocessor">#ifndef LITTLE_ENDIAN</span>00165 <span class="preprocessor"></span><span class="preprocessor">#define LITTLE_ENDIAN   1234</span>00166 <span class="preprocessor"></span><span class="preprocessor">#endif</span>00167 <span class="preprocessor"></span>00168 <span class="preprocessor">#ifndef BYTE_ORDER</span>00169 <span class="preprocessor"></span><span class="preprocessor">#if defined(__sparc__) || defined(__m68k__)</span>00170 <span class="preprocessor"></span><span class="preprocessor">#define BYTE_ORDER      BIG_ENDIAN </span>00171 <span class="preprocessor"></span><span class="preprocessor">#else</span>00172 <span class="preprocessor"></span><span class="preprocessor">#define BYTE_ORDER      LITTLE_ENDIAN</span>00173 <span class="preprocessor"></span><span class="preprocessor">#endif</span>00174 <span class="preprocessor"></span><span class="preprocessor">#endif</span>00175 <span class="preprocessor"></span>00176 <span class="preprocessor">#ifdef _WIN32</span>00177 <span class="preprocessor"></span><span class="keyword">typedef</span> HANDLE descriptor_t; 00178 <span class="preprocessor">#else</span>00179 <span class="preprocessor"></span><span class="keyword">typedef</span> <span class="keywordtype">int</span> descriptor_t; 00180 <span class="preprocessor">#endif</span>00181 <span class="preprocessor"></span>00182 <span class="preprocessor">#if !defined(_fastcall) &amp;&amp; (!defined(_WIN32) || defined(__IBMCPP__) || defined(__MINGW32__))</span>00183 <span class="preprocessor"></span><span class="preprocessor">#define _fastcall</span>00184 <span class="preprocessor"></span><span class="preprocessor">#endif</span>00185 <span class="preprocessor"></span>00186 <span class="preprocessor">#if defined(_WIN32) || !defined(NO_PTHREADS)</span>00187 <span class="preprocessor"></span><span class="preprocessor">#define THREADS_SUPPORTED 1</span>00188 <span class="preprocessor"></span><span class="preprocessor">#else</span>00189 <span class="preprocessor"></span><span class="preprocessor">#define THREADS_SUPPORTED 0</span>00190 <span class="preprocessor"></span><span class="preprocessor">#endif</span>00191 <span class="preprocessor"></span>00192 <span class="preprocessor">#define itemsof(array) (sizeof(array)/sizeof*(array))</span>00193 <span class="preprocessor"></span>00194 00195 <span class="keyword">extern</span> FASTDB_DLL_ENTRY byte* dbMalloc(size_t size);00196 <span class="keyword">extern</span> FASTDB_DLL_ENTRY <span class="keywordtype">void</span>  dbFree(<span class="keywordtype">void</span>* ptr);00197 00198 <span class="preprocessor">#if !defined(USE_POSIX_MMAP) &amp;&amp; defined(DISKLESS_CONFIGURATION)</span>00199 <span class="preprocessor"></span><span class="comment">// To enable sharing of database in diskless configuration we have to use</span>00200 <span class="comment">// shmap instead of mmap, which anonymous region is private to process.</span>00201 <span class="preprocessor">#define USE_POSIX_MMAP 0</span>00202 <span class="preprocessor"></span><span class="preprocessor">#endif</span>00203 <span class="preprocessor"></span>00204 <span class="preprocessor">#if defined(USE_POSIX_MMAP) &amp;&amp; !USE_POSIX_MMAP</span>00205 <span class="preprocessor"></span><span class="comment">// allocate space for the database using Sys-V shmat</span>00206 <span class="preprocessor">#define USE_SYSV_SHARED_MEMORY 1</span>00207 <span class="preprocessor"></span><span class="preprocessor">#if !defined(NO_MMAP) &amp;&amp; !defined(DISKLESS_CONFIGURATION)</span>00208 <span class="preprocessor"></span><span class="preprocessor">#define NO_MMAP 1</span>00209 <span class="preprocessor"></span><span class="preprocessor">#endif</span>00210 <span class="preprocessor"></span><span class="preprocessor">#endif</span>00211 <span class="preprocessor"></span>00212 <span class="preprocessor">#if !defined(_WIN32)</span>00213 <span class="preprocessor"></span><span class="preprocessor">#define NO_STRICMP  1</span>00214 <span class="preprocessor"></span><span class="preprocessor">#define NO_STRICOLL 1</span>00215 <span class="preprocessor"></span><span class="preprocessor">#endif</span>00216 <span class="preprocessor"></span>00217 <span class="preprocessor">#if defined(IGNORE_CASE) &amp;&amp; defined(NO_STRICMP) </span>00218 <span class="preprocessor"></span><span class="preprocessor">#include &lt;ctype.h&gt;</span>00219 <span class="keyword">inline</span> <span class="keywordtype">int</span> stricmp(<span class="keyword">const</span> <span class="keywordtype">char</span>* p, <span class="keyword">const</span> <span class="keywordtype">char</span>* q)00220 {00221     <span class="keywordflow">while</span> (toupper(*(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>*)p) == toupper(*(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>*)q)) { 00222         <span class="keywordflow">if</span> (*p == <span class="charliteral">'\0'</span>) { 00223             <span class="keywordflow">return</span> 0;00224         }00225         p += 1;00226         q += 1;00227     }00228     <span class="keywordflow">return</span> toupper(*(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>*)p) - toupper(*(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>*)q);00229 }00230 <span class="preprocessor">#endif</span>00231 <span class="preprocessor"></span>00232 <span class="preprocessor">#if defined(IGNORE_CASE) &amp;&amp; defined(USE_LOCALE_SETTINGS) &amp;&amp; defined(NO_STRICOLL) </span>00233 <span class="preprocessor"></span><span class="preprocessor">#include &lt;ctype.h&gt;</span>00234 <span class="keyword">inline</span> <span class="keywordtype">int</span> stricoll(<span class="keyword">const</span> <span class="keywordtype">char</span>* p, <span class="keyword">const</span> <span class="keywordtype">char</span>* q)00235 {00236     <span class="keywordtype">char</span>   p_buf[256];00237     <span class="keywordtype">char</span>   q_buf[256];00238     size_t p_len = strlen(p);00239     size_t q_len = strlen(q);00240     <span class="keywordtype">char</span>*  p_dst = p_buf; 00241     <span class="keywordtype">char</span>*  q_dst = q_buf; 00242     <span class="keywordtype">int</span>    i;00243     <span class="keywordflow">if</span> (p_len &gt;= <span class="keyword">sizeof</span>(p_buf)) { 00244         p_dst = <span class="keyword">new</span> <span class="keywordtype">char</span>[p_len+1];00245     }00246     <span class="keywordflow">if</span> (q_len &gt;= <span class="keyword">sizeof</span>(q_buf)) { 00247         q_dst = <span class="keyword">new</span> <span class="keywordtype">char</span>[q_len+1];00248     }00249     <span class="keywordflow">for</span> (i = 0; p[i] != <span class="charliteral">'\0'</span>; i++) { 00250         p_dst[i] = toupper(p[i] &amp; 0xFF);00251     }00252     p_dst[i] = <span class="charliteral">'\0'</span>;00253 00254     <span class="keywordflow">for</span> (i = 0; q[i] != <span class="charliteral">'\0'</span>; i++) { 00255         q_dst[i] = toupper(q[i] &amp; 0xFF);00256     }00257     q_dst[i] = <span class="charliteral">'\0'</span>;00258 00259     <span class="keywordtype">int</span> diff = strcoll(p_dst, q_dst);00260     <span class="keywordflow">if</span> (p_dst != p_buf) { 00261         <span class="keyword">delete</span>[] p_dst;00262     }00263     <span class="keywordflow">if</span> (q_dst != q_buf) { 00264         <span class="keyword">delete</span>[] q_dst;00265     }00266     <span class="keywordflow">return</span> diff;00267 }00268 <span class="preprocessor">#endif</span>00269 <span class="preprocessor"></span>00270 <span class="preprocessor">#endif</span>00271 <span class="preprocessor"></span>00272 00273 00274 </pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Feb 12 13:04:48 2004 for FastDB by<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0 > </a>1.3.5 </small></address></body></html>

⌨️ 快捷键说明

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