📄 bugdb.h
字号:
//-< BUGDB.H >------------------------------------------------------*--------*// FastDB Version 1.0 (c) 1999 GARRET * ? *// (Main Memory Database Management System) * /\| *// * / \ *// Created: 27-Mar-99 K.A. Knizhnik * / [] \ *// Last update: 25-Jun-99 K.A. Knizhnik * GARRET *//-------------------------------------------------------------------*--------*// Example of database Web publishing: Bug Tracking Database//-------------------------------------------------------------------*--------*#ifndef __BUGDB_H__#define __BUGDB_H__#include "fastdb.h"#include "wwwapi.h"USE_FASTDB_NAMESPACEclass Bug;class Software;class Person{ public: char const* sName; char const* sEmailAddress; char const* sPassword; dbArray<dbReference<Software> > setUsedSoftware; dbArray<dbReference<Software> > setProjects; dbArray<dbReference<Bug> > setReportedBugs; dbArray<dbReference<Bug> > setAssignedBugs; enum PersonStatus { isUser, isEngineer, isAdministrator }; int1 status; int4 nReports; void print(WWWconnection& con) const; bool checkPassword(char const* password) const { return strcmp(sPassword, password) == 0; } TYPE_DESCRIPTOR((KEY(sName, INDEXED), FIELD(sEmailAddress), FIELD(sPassword), RELATION(setReportedBugs, pReportedBy), RELATION(setAssignedBugs, pAssignedTo), RELATION(setUsedSoftware, setUsers), RELATION(setProjects, setEngineers), FIELD(status),FIELD(nReports)));};class Version { public: char const* sLabel; int majorVersionNumber; int minorVersionNumber; dbDateTime released; char const* sComment; dbArray<dbReference<Bug> > setBugs; dbReference<Version> pNext; int getVersion() const; char* getVersionString() const; void print(WWWconnection& con) const; TYPE_DESCRIPTOR((FIELD(sLabel), FIELD(majorVersionNumber), FIELD(minorVersionNumber), FIELD(released), FIELD(sComment), RELATION(setBugs, pVersion), FIELD(pNext)));};class Software{ public: char const* sName; dbArray<dbReference<Person> > setEngineers; dbArray<dbReference<Person> > setUsers; dbReference<Version> pVersions; dbArray<dbReference<Bug> > setBugs; int getLastVersion() const; char* getLastVersionString() const; void print(WWWconnection& con) const; TYPE_DESCRIPTOR((KEY(sName, INDEXED), FIELD(pVersions), RELATION(setEngineers, setProjects), RELATION(setUsers, setUsedSoftware), RELATION(setBugs, pSoftware)));};enum eCATEGORY{ CATEGORY_NOT_SPECIFIED, CRASH, PROGRAM_HANGS, UI_DISPLAY, UI_BEHAVIOR, CALCULATION, ERROR_HANDLING, PERFORMANCE, LICENSING, INSTALLATION, DOCUMENTATION, ENHANCEMENT, HOW_TO_QUESTION}; extern char const* const eCATEGORY_STRING[]; enum eSTATUS{ STATUS_NOT_SPECIFIED, STATUS_OPENED, STATUS_FIXED, STATUS_CLOSED, STATUS_PENDING_Person, STATUS_PENDING_USER, STATUS_POSTPONED, STATUS_IRREPRODUCIBLE, STATUS_WITHDRAWN, STATUS_AS_DESIGNED};extern char const* const eSTATUS_STRING[]; enum eFIXING_PRIORITY{ PRIORITY_NOT_SPECIFIED, FIX_IMMEDIATELY, FIX_BEFORE_NEXT_BUILD_RELEASE, FIX_BEFORE_NEXT_MINOR_RELEASE, FIX_BEFORE_NEXT_MAJOR_RELEASE, FIX_IF_POSSIBLE, OPTIONAL};extern char const* const eFIXING_PRIORITY_STRING[];enum eSEVERITY{ SEVERITY_NOT_SPECIFIED, FATAL, SERIOUS, MINOR, LAST_SEVERITY};extern char const* const eSEVERITY_STRING[]; class Report{ public: char const* sDescription; dbReference<Person> pAuthor; dbReference<Report> pNext; dbDateTime creationDate; int1 status; int4 index; void print(WWWconnection& con) const; TYPE_DESCRIPTOR((FIELD(sDescription),FIELD(pAuthor),FIELD(pNext),FIELD(creationDate), FIELD(status),FIELD(index)));};class Bug { public: char const* sOneLineSummary; char const* sHardwarePlatform; char const* sOperatingSystem; int4 bugId; int4 nReports; int1 eCategory; int1 eFixingPriority; int1 eSeverity; dbReference<Person> pReportedBy; dbReference<Person> pAssignedTo; dbReference<Software> pSoftware; dbReference<Version> pVersion; dbReference<Report> pReportHistory; dbReference<Report> pWorkArounds; dbArray<dbReference<Bug> > setSimilarBugs; void print(WWWconnection& con) const; TYPE_DESCRIPTOR((KEY(bugId, HASHED), FIELD(sOneLineSummary), FIELD(sOperatingSystem), FIELD(sHardwarePlatform), RELATION(pSoftware, setBugs), RELATION(pVersion, setBugs), RELATION(pReportedBy, setReportedBugs), RELATION(pAssignedTo, setAssignedBugs), RELATION(setSimilarBugs, setSimilarBugs), FIELD(nReports), FIELD(eCategory), FIELD(eFixingPriority), FIELD(eSeverity), FIELD(pReportHistory), FIELD(pWorkArounds)));};class BugSequencer { public: int nBugs; TYPE_DESCRIPTOR((FIELD(nBugs)));};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -