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

📄 cliproto_8h-source.html

📁 FastDb是高效的内存数据库系统
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>FastDB: cliproto.h Source File</title><link href="doxygen.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.3.5 --><div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div><h1>cliproto.h</h1><div class="fragment"><pre>00001 <span class="comment">//-&lt; CLIPROTO.H &gt;----------------------------------------------------*--------*</span>00002 <span class="comment">// FastDB                    Version 1.0         (c) 1999  GARRET    *     ?  *</span>00003 <span class="comment">// (Main Memory Database Management System)                          *   /\|  *</span>00004 <span class="comment">//                                                                   *  /  \  *</span>00005 <span class="comment">//                          Created:     13-Jan-2000  K.A. Knizhnik  * / [] \ *</span>00006 <span class="comment">//                          Last update: 13-Jan-2000  K.A. Knizhnik  * GARRET *</span>00007 <span class="comment">//-------------------------------------------------------------------*--------*</span>00008 <span class="comment">// Client-server communication protocol</span>00009 <span class="comment">//-------------------------------------------------------------------*--------*</span>00010 00011 <span class="preprocessor">#ifndef __CLIPROTO_H__</span>00012 <span class="preprocessor"></span><span class="preprocessor">#define __CLIPROTO_H__</span>00013 <span class="preprocessor"></span>00014 <span class="keyword">enum</span> cli_commands { 00015     cli_cmd_close_session, 00016     cli_cmd_prepare_and_execute,00017     cli_cmd_execute,00018     cli_cmd_get_first, 00019     cli_cmd_get_last, 00020     cli_cmd_get_next,00021     cli_cmd_get_prev,00022     cli_cmd_free_statement,00023     cli_cmd_abort,00024     cli_cmd_commit,00025     cli_cmd_update,00026     cli_cmd_remove,00027     cli_cmd_insert,00028     cli_cmd_prepare_and_insert,00029     cli_cmd_describe_table,00030     cli_cmd_show_tables,00031     cli_cmd_precommit,00032     cli_cmd_skip,00033     cli_cmd_create_table,00034     cli_cmd_drop_table,00035     cli_cmd_alter_index,00036     cli_cmd_freeze,00037     cli_cmd_unfreeze,00038     cli_cmd_seek,00039     cli_cmd_alter_table,00040     cli_cmd_last00041 };00042 00043 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> sizeof_type[] = { 00044     <span class="keyword">sizeof</span>(cli_oid_t), 00045     <span class="keyword">sizeof</span>(cli_bool_t), 00046     <span class="keyword">sizeof</span>(cli_int1_t), 00047     <span class="keyword">sizeof</span>(cli_int2_t), 00048     <span class="keyword">sizeof</span>(cli_int4_t), 00049     <span class="keyword">sizeof</span>(cli_int8_t), 00050     <span class="keyword">sizeof</span>(cli_real4_t), 00051     <span class="keyword">sizeof</span>(cli_real8_t),00052     <span class="keyword">sizeof</span>(cli_real8_t), <span class="comment">// cli_decimal</span>00053     <span class="keyword">sizeof</span>(<span class="keywordtype">char</span>*), <span class="comment">// cli_asciiz, </span>00054     <span class="keyword">sizeof</span>(<span class="keywordtype">char</span>*), <span class="comment">// cli_pasciiz,</span>00055     <span class="keyword">sizeof</span>(<span class="keywordtype">char</span>*), <span class="comment">// cli_cstring,</span>00056     <span class="keyword">sizeof</span>(cli_array_t), <span class="comment">// cli_array_of_oid,</span>00057     <span class="keyword">sizeof</span>(cli_array_t), <span class="comment">// cli_array_of_bool,</span>00058     <span class="keyword">sizeof</span>(cli_array_t), <span class="comment">// cli_array_of_int1,</span>00059     <span class="keyword">sizeof</span>(cli_array_t), <span class="comment">// cli_array_of_int2,</span>00060     <span class="keyword">sizeof</span>(cli_array_t), <span class="comment">// cli_array_of_int4,</span>00061     <span class="keyword">sizeof</span>(cli_array_t), <span class="comment">// cli_array_of_int8,</span>00062     <span class="keyword">sizeof</span>(cli_array_t), <span class="comment">// cli_array_of_real4,</span>00063     <span class="keyword">sizeof</span>(cli_array_t), <span class="comment">// cli_array_of_real8, </span>00064     <span class="keyword">sizeof</span>(cli_array_t), <span class="comment">// cli_array_of_decimal, </span>00065     <span class="keyword">sizeof</span>(cli_array_t), <span class="comment">// cli_array_of_string,</span>00066     0, <span class="comment">// cli_any,</span>00067     <span class="keyword">sizeof</span>(cli_int8_t), <span class="comment">// cli_datetime,</span>00068     <span class="keyword">sizeof</span>(cli_int4_t), <span class="comment">// cli_autoincrement,</span>00069     0, <span class="comment">// cli_rectangle,</span>00070     0  <span class="comment">// cli_unknown</span>00071 };00072 00073 <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> fd2cli_type_mapping[] = {00074     cli_bool,00075     cli_int1,00076     cli_int2,00077     cli_int4,00078     cli_int8,00079     cli_real4,00080     cli_real8,00081     cli_asciiz,00082     cli_oid00083 };00084 00085 <span class="preprocessor">#if defined(__FreeBSD__)</span>00086 <span class="preprocessor"></span><span class="preprocessor">#include &lt;sys/param.h&gt;</span>00087 <span class="preprocessor">#include &lt;netinet/in.h&gt;</span>00088 <span class="preprocessor">#define USE_HTON_NTOH</span>00089 <span class="preprocessor"></span><span class="preprocessor">#elif defined(__linux__)</span>00090 <span class="preprocessor"></span><span class="comment">//</span>00091 <span class="comment">// At Linux inline assembly declarations of ntohl, htonl... are available</span>00092 <span class="comment">//</span>00093 <span class="preprocessor">#include &lt;netinet/in.h&gt;</span>00094 <span class="preprocessor">#define USE_HTON_NTOH</span>00095 <span class="preprocessor"></span><span class="preprocessor">#else</span>00096 <span class="preprocessor"></span><span class="preprocessor">#if defined(_WIN32) &amp;&amp; _M_IX86 &gt;= 400</span>00097 <span class="preprocessor"></span><span class="preprocessor">#pragma warning(disable:4035) // disable "no return" warning</span>00098 <span class="preprocessor"></span><span class="preprocessor">#ifdef __BORLANDC__</span>00099 <span class="preprocessor"></span><span class="keyword">static</span>00100 <span class="preprocessor">#else</span>00101 <span class="preprocessor"></span><span class="keyword">inline</span> 00102 <span class="preprocessor">#endif</span>00103 <span class="preprocessor"></span><span class="keywordtype">int</span> swap_bytes_in_dword(<span class="keywordtype">int</span> val) {00104     __asm {00105           mov eax, val00106           bswap eax00107     }00108 }00109 <span class="preprocessor">#ifdef __BORLANDC__</span>00110 <span class="preprocessor"></span><span class="keyword">static</span>00111 <span class="preprocessor">#else</span>00112 <span class="preprocessor"></span><span class="keyword">inline</span> 00113 <span class="preprocessor">#endif</span>00114 <span class="preprocessor"></span><span class="keywordtype">short</span> swap_bytes_in_word(<span class="keywordtype">short</span> val) {00115     __asm {00116           mov ax, val00117           xchg al,ah00118     }00119 }00120 <span class="preprocessor">#pragma warning(default:4035)</span>00121 <span class="preprocessor"></span><span class="preprocessor">#define ntohl(w) swap_bytes_in_dword(w)</span>00122 <span class="preprocessor"></span><span class="preprocessor">#define htonl(w) swap_bytes_in_dword(w)</span>00123 <span class="preprocessor"></span><span class="preprocessor">#define ntohs(w) swap_bytes_in_word(w)</span>00124 <span class="preprocessor"></span><span class="preprocessor">#define htons(w) swap_bytes_in_word(w)</span>00125 <span class="preprocessor"></span>00126 <span class="preprocessor">#define USE_HTON_NTOH</span>00127 <span class="preprocessor"></span><span class="preprocessor">#endif</span>00128 <span class="preprocessor"></span><span class="preprocessor">#endif</span>00129 <span class="preprocessor"></span>00130 00131 00132 00133 <span class="keyword">inline</span> <span class="keywordtype">char</span>* pack2(<span class="keywordtype">char</span>* dst, int2 val) { 00134     *dst++ = char(val &gt;&gt; 8);00135     *dst++ = char(val);     00136     <span class="keywordflow">return</span> dst;00137 }00138 00139 <span class="keyword">inline</span> <span class="keywordtype">char</span>* pack2(<span class="keywordtype">char</span>* dst, <span class="keywordtype">char</span>* src) { 00140     <span class="keywordflow">return</span> pack2(dst, *(int2*)src); 00141 }

⌨️ 快捷键说明

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