📄 container_8h-source.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> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="annotated.html">Compound List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </center>
<hr><h1>container.h</h1><div class="fragment"><pre>00001 <span class="comment">//-< CONTAINER.H >---------------------------------------------------*--------*</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>& 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>& ref);
00041 <span class="keywordtype">int</span> search(<a class="code" href="classdbAnyCursor.html">dbAnyCursor</a>& 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>& 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>& cursor, <a class="code" href="classrectangle.html">rectangle</a> <span class="keyword">const</span>& 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>& desc);
00046 };
00047
00048
00052 <span class="keyword">template</span><<span class="keyword">class</span> T>
<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<T></a>& 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<T></a>& 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<T></a>& 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<T></a>& 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<T></a>& cursor, <a class="code" href="classrectangle.html">rectangle</a> <span class="keyword">const</span>& 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<T></a> <span class="keyword">const</span>& 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<T></a> <span class="keyword">const</span>& 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<T></a> <span class="keyword">const</span>& 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<T></a> <span class="keyword">const</span>& 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->lookupTable(&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 + -