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

📄 container_8h-source.html

📁 最新版本!fastdb是高效的内存数据库系统
💻 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>container.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.2.18 -->
<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>container.h</h1><div class="fragment"><pre>00001 <span class="comment">//-&lt; CONTAINER.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:     05-Nov-2002  K.A. Knizhnik  * / [] \ *</span>
00006 <span class="comment">//                          Last update: 05-Nov-2002  K.A. Knizhnik  * GARRET *</span>
00007 <span class="comment">//-------------------------------------------------------------------*--------*</span>
00008 <span class="comment">// T-Tree object container</span>
00009 <span class="comment">//-------------------------------------------------------------------*--------*</span>
00010 
00011 <span class="preprocessor">#ifndef __CONTAINER_H__</span>
00012 <span class="preprocessor"></span><span class="preprocessor">#define __CONTAINER_H__</span>
00013 <span class="preprocessor"></span>
00014 BEGIN_FASTDB_NAMESPACE
00015 
00019 <span class="keyword">enum</span> SpatialSearchType { 
00020     SPATIAL_SEARCH_EQUAL,
00021     SPATIAL_SEARCH_OVERLAPS,
00022     SPATIAL_SEARCH_SUPERSET,
00023     SPATIAL_SEARCH_PROPER_SUPERSE,
00024     SPATIAL_SEARCH_SUBSET,
00025     SPATIAL_SEARCH_PROPER_SUBSET
00026 };
00027 
<a name="l00032"></a><a class="code" href="classdbAnyContainer.html">00032</a> <span class="keyword">class </span>FASTDB_DLL_ENTRY <a class="code" href="classdbAnyContainer.html">dbAnyContainer</a> : <span class="keyword">public</span> <a class="code" href="classdbAnyReference.html">dbAnyReference</a> {
00033   <span class="keyword">protected</span>:
00034     <a class="code" href="classdbFieldDescriptor.html">dbFieldDescriptor</a>* fd;
00035 
00036     <span class="keywordtype">void</span> create(<a class="code" href="classdbDatabase.html">dbDatabase</a>* db);
00037     <span class="keywordtype">void</span> purge(<a class="code" href="classdbDatabase.html">dbDatabase</a>* db);
00038     <span class="keywordtype">void</span> free(<a class="code" href="classdbDatabase.html">dbDatabase</a>* db);
00039     <span class="keywordtype">void</span> add(<a class="code" href="classdbDatabase.html">dbDatabase</a>* db, <a class="code" href="classdbAnyReference.html">dbAnyReference</a> <span class="keyword">const</span>&amp; ref);
00040     <span class="keywordtype">void</span> remove(<a class="code" href="classdbDatabase.html">dbDatabase</a>* db, <a class="code" href="classdbAnyReference.html">dbAnyReference</a> <span class="keyword">const</span>&amp; ref);
00041     <span class="keywordtype">int</span>  search(<a class="code" href="classdbAnyCursor.html">dbAnyCursor</a>&amp; cursor, <span class="keywordtype">void</span> <span class="keyword">const</span>* from, <span class="keywordtype">void</span> <span class="keyword">const</span>* till);
00042     <span class="keywordtype">int</span>  prefixSearch(<a class="code" href="classdbAnyCursor.html">dbAnyCursor</a>&amp; cursor, <span class="keywordtype">char</span> <span class="keyword">const</span>* key);
00043     <span class="keywordtype">int</span>  spatialSearch(<a class="code" href="classdbAnyCursor.html">dbAnyCursor</a>&amp; cursor, <a class="code" href="classrectangle.html">rectangle</a> <span class="keyword">const</span>&amp; r, SpatialSearchType type);
00044 
00045     <a class="code" href="classdbAnyContainer.html">dbAnyContainer</a>(<span class="keywordtype">char</span> <span class="keyword">const</span>* fieldName, <a class="code" href="classdbTableDescriptor.html">dbTableDescriptor</a>&amp; desc);
00046 };
00047 
00048 
00052 <span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt;
<a name="l00053"></a><a class="code" href="classdbContainer.html">00053</a> <span class="keyword">class </span><a class="code" href="classdbContainer.html">dbContainer</a> : <span class="keyword">public</span> <a class="code" href="classdbAnyContainer.html">dbAnyContainer</a> {
00054   <span class="keyword">public</span>:
<a name="l00062"></a><a class="code" href="classdbContainer.html#dbContainera0">00062</a>     <span class="keywordtype">int</span> <a class="code" href="classdbContainer.html#dbContainera0">search</a>(<a class="code" href="classdbCursor.html">dbCursor&lt;T&gt;</a>&amp; cursor, <span class="keywordtype">void</span> <span class="keyword">const</span>* from, <span class="keywordtype">void</span> <span class="keyword">const</span>* till) {
00063         <span class="keywordflow">return</span> dbAnyContainer::search(cursor, from, till);
00064     }
<a name="l00071"></a><a class="code" href="classdbContainer.html#dbContainera1">00071</a>     <span class="keywordtype">int</span> <a class="code" href="classdbContainer.html#dbContainera0">search</a>(<a class="code" href="classdbCursor.html">dbCursor&lt;T&gt;</a>&amp; cursor, <span class="keywordtype">void</span> <span class="keyword">const</span>* key) {
00072         <span class="keywordflow">return</span> dbAnyContainer::search(cursor, key, key);
00073     }
00074 
<a name="l00081"></a><a class="code" href="classdbContainer.html#dbContainera2">00081</a>     <span class="keywordtype">int</span> <a class="code" href="classdbContainer.html#dbContainera2">prefixSearch</a>(<a class="code" href="classdbCursor.html">dbCursor&lt;T&gt;</a>&amp; cursor, <span class="keywordtype">char</span> <span class="keyword">const</span>* key) {
00082         <span class="keywordflow">return</span> dbAnyContainer::prefixSearch(cursor, key);
00083     }
00084 
<a name="l00090"></a><a class="code" href="classdbContainer.html#dbContainera3">00090</a>     <span class="keywordtype">int</span> <a class="code" href="classdbContainer.html#dbContainera0">search</a>(<a class="code" href="classdbCursor.html">dbCursor&lt;T&gt;</a>&amp; cursor) {
00091         <span class="keywordflow">return</span> dbAnyContainer::search(cursor, NULL, NULL);
00092     }
00093 
<a name="l00101"></a><a class="code" href="classdbContainer.html#dbContainera4">00101</a>     <span class="keywordtype">int</span> <a class="code" href="classdbContainer.html#dbContainera4">spatialSearch</a>(<a class="code" href="classdbCursor.html">dbCursor&lt;T&gt;</a>&amp; cursor, <a class="code" href="classrectangle.html">rectangle</a> <span class="keyword">const</span>&amp; r, SpatialSearchType type) { 
00102         <span class="keywordflow">return</span> dbAnyContainer::spatialSearch(cursor, r, type);
00103     }
00104 
<a name="l00108"></a><a class="code" href="classdbContainer.html#dbContainera5">00108</a>     <span class="keywordtype">void</span> <a class="code" href="classdbContainer.html#dbContainera5">create</a>() {
00109         dbAnyContainer::create(T::dbDescriptor.getDatabase());
00110     }
00111 
<a name="l00115"></a><a class="code" href="classdbContainer.html#dbContainera6">00115</a>     <span class="keywordtype">void</span> <a class="code" href="classdbContainer.html#dbContainera6">purge</a>() {
00116         dbAnyContainer::purge(T::dbDescriptor.getDatabase());
00117     }
00118 
<a name="l00122"></a><a class="code" href="classdbContainer.html#dbContainera7">00122</a>     <span class="keywordtype">void</span> <a class="code" href="classdbContainer.html#dbContainera7">free</a>() {
00123         dbAnyContainer::free(T::dbDescriptor.getDatabase());
00124     }
00125 
<a name="l00130"></a><a class="code" href="classdbContainer.html#dbContainera8">00130</a>     <span class="keywordtype">void</span> <a class="code" href="classdbContainer.html#dbContainera8">add</a>(<a class="code" href="classdbReference.html">dbReference&lt;T&gt;</a> <span class="keyword">const</span>&amp; ref) {
00131         dbAnyContainer::add(T::dbDescriptor.getDatabase(), ref);
00132     }
00133 
<a name="l00138"></a><a class="code" href="classdbContainer.html#dbContainera9">00138</a>     <span class="keywordtype">void</span> <a class="code" href="classdbContainer.html#dbContainera9">remove</a>(<a class="code" href="classdbReference.html">dbReference&lt;T&gt;</a> <span class="keyword">const</span>&amp; ref) {
00139         dbAnyContainer::remove(T::dbDescriptor.getDatabase(), ref);
00140     }
00141 
<a name="l00146"></a><a class="code" href="classdbContainer.html#dbContainera10">00146</a>     <a class="code" href="classdbContainer.html#dbContainera10">dbContainer</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* fieldName) : <a class="code" href="classdbAnyContainer.html">dbAnyContainer</a>(fieldName, T::dbDescriptor) {}
00147     
<a name="l00152"></a><a class="code" href="classdbContainer.html#dbContainera11">00152</a>     <span class="keywordtype">void</span> <a class="code" href="classdbContainer.html#dbContainera5">create</a>(<a class="code" href="classdbDatabase.html">dbDatabase</a>* db) {
00153         dbAnyContainer::create(db);
00154     }
00155 
<a name="l00160"></a><a class="code" href="classdbContainer.html#dbContainera12">00160</a>     <span class="keywordtype">void</span> <a class="code" href="classdbContainer.html#dbContainera6">purge</a>(<a class="code" href="classdbDatabase.html">dbDatabase</a>* db) {
00161         dbAnyContainer::purge(db);
00162     }
00163 
<a name="l00168"></a><a class="code" href="classdbContainer.html#dbContainera13">00168</a>     <span class="keywordtype">void</span> <a class="code" href="classdbContainer.html#dbContainera7">free</a>(<a class="code" href="classdbDatabase.html">dbDatabase</a>* db) {
00169         dbAnyContainer::free(db);
00170     }
00171 
<a name="l00177"></a><a class="code" href="classdbContainer.html#dbContainera14">00177</a>     <span class="keywordtype">void</span> <a class="code" href="classdbContainer.html#dbContainera8">add</a>(<a class="code" href="classdbDatabase.html">dbDatabase</a>* db, <a class="code" href="classdbReference.html">dbReference&lt;T&gt;</a> <span class="keyword">const</span>&amp; ref) {
00178         dbAnyContainer::add(db, ref);
00179     }
00180 
<a name="l00186"></a><a class="code" href="classdbContainer.html#dbContainera15">00186</a>     <span class="keywordtype">void</span> <a class="code" href="classdbContainer.html#dbContainera9">remove</a>(<a class="code" href="classdbDatabase.html">dbDatabase</a>* db, <a class="code" href="classdbReference.html">dbReference&lt;T&gt;</a> <span class="keyword">const</span>&amp; ref) {
00187         dbAnyContainer::remove(db, ref);
00188     }
00189 
<a name="l00195"></a><a class="code" href="classdbContainer.html#dbContainera16">00195</a>     <a class="code" href="classdbContainer.html#dbContainera10">dbContainer</a>(<a class="code" href="classdbDatabase.html">dbDatabase</a>* db, <span class="keyword">const</span> <span class="keywordtype">char</span>* fieldName) 
00196     : <a class="code" href="classdbAnyContainer.html">dbAnyContainer</a>(fieldName, *db-&gt;lookupTable(&amp;T::dbDescriptor)) {}
00197 };
00198 
00199 END_FASTDB_NAMESPACE
00200 
00201 <span class="preprocessor">#endif</span>
00202 <span class="preprocessor"></span>
00203 
00204 
00205 
</pre></div><hr><address style="align: right;"><small>Generated on Thu Feb 14 12:42:30 2008 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 + -