bugdb_8h-source.html

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

HTML
247
字号
<!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>bugdb.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>bugdb.h</h1><div class="fragment"><pre>00001 <font class="comment">//-&lt; BUGDB.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:     27-Mar-99    K.A. Knizhnik  * / [] \ *</font>00006 <font class="comment">//                          Last update: 25-Jun-99    K.A. Knizhnik  * GARRET *</font>00007 <font class="comment">//-------------------------------------------------------------------*--------*</font>00008 <font class="comment">// Example of database Web publishing: Bug Tracking Database</font>00009 <font class="comment">//-------------------------------------------------------------------*--------*</font>00010 00011 <font class="preprocessor">#ifndef __BUGDB_H__</font>00012 <font class="preprocessor"></font><font class="preprocessor">#define __BUGDB_H__</font>00013 <font class="preprocessor"></font>00014 <font class="preprocessor">#include "fastdb.h"</font>00015 <font class="preprocessor">#include "wwwapi.h"</font>00016 00017 <font class="keyword">class </font>Bug;00018 <font class="keyword">class </font>Software;00019 00020 <font class="keyword">class </font>Person00021 {00022   <font class="keyword">public</font>:00023     <font class="keywordtype">char</font> <font class="keyword">const</font>* sName;00024     <font class="keywordtype">char</font> <font class="keyword">const</font>* sEmailAddress;00025     <font class="keywordtype">char</font> <font class="keyword">const</font>* sPassword;00026 00027     <a class="code" href="classdbArray.html">dbArray&lt;dbReference&lt;Software&gt;</a> &gt;  setUsedSoftware;00028     <a class="code" href="classdbArray.html">dbArray&lt;dbReference&lt;Software&gt;</a> &gt;  setProjects;00029     <a class="code" href="classdbArray.html">dbArray&lt;dbReference&lt;Bug&gt;</a> &gt;       setReportedBugs;00030     <a class="code" href="classdbArray.html">dbArray&lt;dbReference&lt;Bug&gt;</a> &gt;       setAssignedBugs;00031 00032     <font class="keyword">enum</font> PersonStatus { 00033         isUser, 00034         isEngineer,00035         isAdministrator00036     };00037     int1 status;00038     int4 nReports;00039 00040     <font class="keywordtype">void</font> print(WWWconnection&amp; con) <font class="keyword">const</font>;00041     00042     <font class="keywordtype">bool</font> checkPassword(<font class="keywordtype">char</font> <font class="keyword">const</font>* password)<font class="keyword"> const </font>{ 00043         <font class="keywordflow">return</font> strcmp(sPassword, password) == 0;00044     }00045 00046 00047     TYPE_DESCRIPTOR((KEY(sName, INDEXED),00048                      FIELD(sEmailAddress),00049                      FIELD(sPassword),00050                      RELATION(setReportedBugs, pReportedBy),00051                      RELATION(setAssignedBugs, pAssignedTo),00052                      RELATION(setUsedSoftware, setUsers), 00053                      RELATION(setProjects, setEngineers), 00054                      FIELD(status),FIELD(nReports)));00055 };00056 00057 00058 <font class="keyword">class </font>Version 00059 {00060   <font class="keyword">public</font>:00061     <font class="keywordtype">char</font> <font class="keyword">const</font>* sLabel;00062     <font class="keywordtype">int</font>         majorVersionNumber;00063     <font class="keywordtype">int</font>         minorVersionNumber;00064     dbDateTime  released;00065     <font class="keywordtype">char</font> <font class="keyword">const</font>* sComment;00066     <a class="code" href="classdbArray.html">dbArray&lt;dbReference&lt;Bug&gt;</a> &gt; setBugs;00067     <a class="code" href="classdbReference.html">dbReference&lt;Version&gt;</a>       pNext;00068 00069     <font class="keywordtype">int</font>   getVersion() <font class="keyword">const</font>; 00070     <font class="keywordtype">char</font>* getVersionString() <font class="keyword">const</font>;00071 00072     <font class="keywordtype">void</font> print(WWWconnection&amp; con) <font class="keyword">const</font>;00073 00074     TYPE_DESCRIPTOR((FIELD(sLabel),00075                      FIELD(majorVersionNumber),00076                      FIELD(minorVersionNumber),00077                      FIELD(released),00078                      FIELD(sComment),00079                      RELATION(setBugs, pVersion),00080                      FIELD(pNext)));00081 };00082 00083 00084 <font class="keyword">class </font>Software00085 {00086   <font class="keyword">public</font>:00087     <font class="keywordtype">char</font> <font class="keyword">const</font>*                   sName;00088     <a class="code" href="classdbArray.html">dbArray&lt;dbReference&lt;Person&gt;</a> &gt; setEngineers;00089     <a class="code" href="classdbArray.html">dbArray&lt;dbReference&lt;Person&gt;</a> &gt; setUsers;00090     <a class="code" href="classdbReference.html">dbReference&lt;Version&gt;</a>          pVersions;00091     <a class="code" href="classdbArray.html">dbArray&lt;dbReference&lt;Bug&gt;</a> &gt;    setBugs;00092 00093     <font class="keywordtype">int</font>     getLastVersion() <font class="keyword">const</font>;00094     <font class="keywordtype">char</font>*   getLastVersionString() <font class="keyword">const</font>;00095 00096     <font class="keywordtype">void</font> print(WWWconnection&amp; con) <font class="keyword">const</font>;00097     00098     TYPE_DESCRIPTOR((KEY(sName, INDEXED),00099                      FIELD(pVersions),00100                      RELATION(setEngineers, setProjects),00101                      RELATION(setUsers, setUsedSoftware),00102                      RELATION(setBugs, pSoftware)));00103 };00104 00105 <font class="keyword">enum</font> eCATEGORY00106 {00107     CATEGORY_NOT_SPECIFIED,00108     CRASH,00109     PROGRAM_HANGS,00110     UI_DISPLAY,00111     UI_BEHAVIOR,00112     CALCULATION,00113     ERROR_HANDLING,00114     PERFORMANCE,00115     LICENSING,00116     INSTALLATION,00117     DOCUMENTATION,00118     ENHANCEMENT,00119     HOW_TO_QUESTION00120 };00121     00122 <font class="keyword">extern</font> <font class="keywordtype">char</font> <font class="keyword">const</font>* <font class="keyword">const</font> eCATEGORY_STRING[];00123     00124 <font class="keyword">enum</font> eSTATUS00125 {00126     STATUS_NOT_SPECIFIED,00127     STATUS_OPENED,00128     STATUS_FIXED,00129     STATUS_CLOSED,00130     STATUS_PENDING_Person,00131     STATUS_PENDING_USER,00132     STATUS_POSTPONED,00133     STATUS_IRREPRODUCIBLE,00134     STATUS_WITHDRAWN,00135     STATUS_AS_DESIGNED00136 };00137 00138 <font class="keyword">extern</font> <font class="keywordtype">char</font> <font class="keyword">const</font>* <font class="keyword">const</font> eSTATUS_STRING[];00139     00140 <font class="keyword">enum</font> eFIXING_PRIORITY00141 {00142     PRIORITY_NOT_SPECIFIED,00143     FIX_IMMEDIATELY,00144     FIX_BEFORE_NEXT_BUILD_RELEASE,00145     FIX_BEFORE_NEXT_MINOR_RELEASE,00146     FIX_BEFORE_NEXT_MAJOR_RELEASE,00147     FIX_IF_POSSIBLE,00148     OPTIONAL00149 };00150 00151 <font class="keyword">extern</font> <font class="keywordtype">char</font> <font class="keyword">const</font>* <font class="keyword">const</font> eFIXING_PRIORITY_STRING[];00152 00153 <font class="keyword">enum</font> eSEVERITY00154 {00155     SEVERITY_NOT_SPECIFIED,00156     FATAL,00157     SERIOUS,00158     MINOR,00159     LAST_SEVERITY00160 };00161 00162 <font class="keyword">extern</font> <font class="keywordtype">char</font> <font class="keyword">const</font>* <font class="keyword">const</font> eSEVERITY_STRING[]; 00163 00164 00165 <font class="keyword">class </font>Report00166 {00167   <font class="keyword">public</font>:00168     <font class="keywordtype">char</font> <font class="keyword">const</font>*         sDescription;00169     <a class="code" href="classdbReference.html">dbReference&lt;Person&gt;</a> pAuthor;00170     <a class="code" href="classdbReference.html">dbReference&lt;Report&gt;</a> pNext;00171     dbDateTime          creationDate;00172     int1                status;00173     int4                index;00174 00175     <font class="keywordtype">void</font> print(WWWconnection&amp; con) <font class="keyword">const</font>;00176 00177     TYPE_DESCRIPTOR((FIELD(sDescription),FIELD(pAuthor),FIELD(pNext),FIELD(creationDate),00178                      FIELD(status),FIELD(index)));00179 };00180 00181 00182 <font class="keyword">class </font>Bug 00183 {00184   <font class="keyword">public</font>:00185     <font class="keywordtype">char</font> <font class="keyword">const</font>* sOneLineSummary;00186     <font class="keywordtype">char</font> <font class="keyword">const</font>* sHardwarePlatform;00187     <font class="keywordtype">char</font> <font class="keyword">const</font>* sOperatingSystem;00188     00189     int4        bugId;00190     int4        nReports;00191     int1        eCategory;00192     int1        eFixingPriority;00193     int1        eSeverity;00194     00195     <a class="code" href="classdbReference.html">dbReference&lt;Person&gt;</a>        pReportedBy;00196     <a class="code" href="classdbReference.html">dbReference&lt;Person&gt;</a>        pAssignedTo;00197     00198     <a class="code" href="classdbReference.html">dbReference&lt;Software&gt;</a>      pSoftware;00199     <a class="code" href="classdbReference.html">dbReference&lt;Version&gt;</a>       pVersion;00200 00201     <a class="code" href="classdbReference.html">dbReference&lt;Report&gt;</a>        pReportHistory;00202     <a class="code" href="classdbReference.html">dbReference&lt;Report&gt;</a>        pWorkArounds;00203     <a class="code" href="classdbArray.html">dbArray&lt;dbReference&lt;Bug&gt;</a> &gt; setSimilarBugs;00204 00205     <font class="keywordtype">void</font> print(WWWconnection&amp; con) <font class="keyword">const</font>;00206 00207     TYPE_DESCRIPTOR((KEY(bugId, HASHED),00208                      FIELD(sOneLineSummary),00209                      FIELD(sOperatingSystem), 00210                      FIELD(sHardwarePlatform),00211                      RELATION(pSoftware, setBugs),00212                      RELATION(pVersion, setBugs), 00213                      RELATION(pReportedBy, setReportedBugs),00214                      RELATION(pAssignedTo, setAssignedBugs),00215                      RELATION(setSimilarBugs, setSimilarBugs),00216                      FIELD(nReports),00217                      FIELD(eCategory),00218                      FIELD(eFixingPriority),00219                      FIELD(eSeverity),00220                      FIELD(pReportHistory), 00221                      FIELD(pWorkArounds)));00222 };00223 00224 00225 <font class="keyword">class </font>BugSequencer {00226   <font class="keyword">public</font>:00227     <font class="keywordtype">int</font>                nBugs;00228 00229     TYPE_DESCRIPTOR((FIELD(nBugs)));00230 };00231 00232 <font class="preprocessor">#endif</font></pre></div><hr><address align="right"><small>Generated on Fri Nov 15 21:06:28 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 + -
显示快捷键?