Rezervační systém
|
Třída určující klientské rozhraní mezi databází a zbytkem programu. ...
#include <Query.h>
Veřejné metody | |
virtual | ~CQuery ()=0 |
destruktor ... | |
virtual unsigned | AddCity (const char *pszName)=0 |
přidání města ... | |
virtual bool | AddCityAlias (const char *pszName, unsigned uiId)=0 |
přidání zkratky k nějakému existujícímu městu ... | |
virtual bool | DeleteCity (const char *pszName)=0 |
smazání města podle jména ... | |
virtual unsigned | FindCity (const char *pszName)=0 |
nalezení města podle názvu ... | |
virtual bool | CityInfo (unsigned uiCity, RCityInfo *prInfo, unsigned *puiLinesOut, unsigned *puiLinesIn)=0 |
získání informací o městě ... | |
virtual unsigned | AddBusPlan (const char *pszName, unsigned uiSeats, const CBlobEx< std::string > *cData)=0 |
přidání plánu autobusu ... | |
virtual bool | DeleteBusPlan (const char *pszName)=0 |
smazání plánu autobusu ... | |
virtual unsigned | FindBusPlan (const char *pszName)=0 |
nalezení plánu autobusu ... | |
virtual bool | BusPlanInfo (unsigned uiPlan, RPlanInfo *prInfo, unsigned *puiBuses, CBlobEx< std::string > *cData)=0 |
získání informací o plánu ... | |
virtual unsigned | AddBus (const RBusInfo *prBus)=0 |
přidání autobusu ... | |
virtual bool | DeleteBus (unsigned uiBus)=0 |
smazání autobusu ... | |
virtual unsigned | FindBus (unsigned uiFrom, unsigned uiTo, time_t tLeaveTime)=0 |
nalezení autobusu ... | |
virtual bool | BusInfo (unsigned uiBus, RBusInfo *prInfo, bool *pfEnabled, unsigned *puiSeats, std::list< unsigned > *cFreeSeats)=0 |
získání informací o autobusu ... | |
virtual bool | EnableBus (unsigned uiBus)=0 |
povolení autobusu ... | |
virtual bool | DisableBus (unsigned uiBus)=0 |
zakázání autobusu ... | |
virtual unsigned | NewCustomer (void)=0 |
unikátní ID pro nového zákazníka ... | |
virtual bool | AskSeats (unsigned uiBus, std::list< unsigned > *cSeats, unsigned uiCustomer)=0 |
dočasné zamluvení sedadel ... | |
virtual bool | LockSeats (unsigned uiBus, std::list< unsigned > *cSeats, unsigned uiCustomer)=0 |
trvalá rezervace sedadel ... | |
virtual bool | UnlockSeats (unsigned uiBus, std::list< unsigned > *cSeats, unsigned uiCustomer)=0 |
zrušení rezervace sedadel ... | |
virtual unsigned | NextBus (unsigned uiBus)=0 |
nalezení dalšího autobusu v pořadí ... | |
virtual unsigned | NextCity (unsigned uiCity)=0 |
nalezení dalšího města v pořadí ... | |
virtual unsigned | NextPlan (unsigned uiPlan)=0 |
nalezení dalšího plánu v pořadí ... | |
virtual bool | ListCity (const char *pszFrom, std::string *strName)=0 |
nalezení dalšího města v abecedním pořadí ... | |
virtual bool | ListAlias (const char *pszFrom, std::string *strAlias, std::string *strCity)=0 |
nalezení dalšího aliasu města v abecedním pořadí ... | |
Třída určující klientské rozhraní mezi databází a zbytkem programu.
Tato třída poskytuje pouze seznam čistě virtuálních metod, které je třeba implementovat pro každou databázi, se kterou budeme chtít pracovat. Každá implementace databáze by měla být potomkem této třídy, nicméně rozhraní samo nijak neurčuje detaily ani pro databázový stroj ani pro uložení dat.
|
inlinepure virtual |
destruktor
Destruktor je deklarován jako virtuální, sám neprovádí žádnou činnost.
|
pure virtual |
přidání autobusu
Vytvoření autobusu s uvedenými daty a jeho přidání do databáze. Identifikační číslo (položka uiId
struktury RBusInfo
) nemusí být vyplněno, neboť dojde k jeho naplnění jedinečným číslem až při zpracování požadavku.
[in] | prBus | struktura RBusInfo s daty potřebnými k vytvoření nového autobusu, |
Implementováno v CMemoryDb a CClientQuery.
|
pure virtual |
přidání plánu autobusu
[in] | pszName | název plánu/typu autobusu |
[in] | uiSeats | počet sedadel |
[in] | cData | binární data rozvržení sedadel |
Implementováno v CMemoryDb a CClientQuery.
|
pure virtual |
přidání města
[in] | pszName | jméno města |
Implementováno v CMemoryDb a CClientQuery.
|
pure virtual |
přidání zkratky k nějakému existujícímu městu
[in] | pszName | název zkratky či dalšího názvu |
[in] | uiId | ID existujícího města, se kterým chceme propojit tuto zkratku |
Implementováno v CMemoryDb a CClientQuery.
|
pure virtual |
dočasné zamluvení sedadel
Dočasné zamluvení sedadel, které po určitém čase vyprší.
[in] | uiBus | ID autobusu |
[in,out] | cSeats | seznam sedadel k rezervaci, neúspěšná sedadla budou smazána ze seznamu |
[in] | uiCustomer | ID zákazníka |
Implementováno v CMemoryDb a CClientQuery.
|
pure virtual |
získání informací o autobusu
[in] | uiBus | ID autobusu |
[out] | prInfo | struktura RBusInfo, která bude naplněná daty |
[out] | pfEnabled | přepínač, zda jsou povoleny změny v autobusu |
[out] | puiSeats | počet sedadel autobusu |
[out] | cFreeSeats | seznam volných sedadel |
Implementováno v CMemoryDb a CClientQuery.
|
pure virtual |
získání informací o plánu
[in] | uiPlan | ID plánu autobusu |
[out] | prInfo | struktura RPlanInfo naplněná daty |
[out] | puiBuses | počet autobusů využívajících tento plán |
[out] | cData | binární data s rozložením sedadel |
Implementováno v CMemoryDb a CClientQuery.
|
pure virtual |
získání informací o městě
[in] | uiCity | ID města |
[out] | prInfo | struktura RCityInfo k vyplnění daty |
[out] | puiLinesOut | počet autobusů odjíždějících z tohoto města |
[out] | puiLinesIn | počet autobusů přijíždějících do tohoto města |
Implementováno v CMemoryDb a CClientQuery.
|
pure virtual |
smazání autobusu
[in] | uiBus | ID autobusu určeného ke smazání |
Implementováno v CMemoryDb a CClientQuery.
|
pure virtual |
smazání plánu autobusu
Vymazání plánu autobusu z kontajneru, může být provedeno pouze v případě, že neexistuje žádný autobus s tímto plánem.
[in] | pszName | název plánu autobusu |
Implementováno v CMemoryDb a CClientQuery.
|
pure virtual |
smazání města podle jména
Provede smazání města z kontajneru a zároveň vymazání všech případných aliasů názvu města.
[in] | pszName | název či alias města |
Implementováno v CMemoryDb a CClientQuery.
|
pure virtual |
zakázání autobusu
Zakáže provádět změny v rezervacích.
[in] | uiBus | ID autobusu |
Implementováno v CMemoryDb a CClientQuery.
|
pure virtual |
povolení autobusu
Povolí provádět změny v rezervacích.
[in] | uiBus | ID autobusu |
Implementováno v CMemoryDb a CClientQuery.
|
pure virtual |
nalezení autobusu
Funkce pro nalezení autobusu z města uiFrom do města uiTo a s časem odjezdu rovným nebo nejbližším větším času tLeaveTime.
[in] | uiFrom | ID výchozího města |
[in] | uiTo | ID cílového města |
[in] | tLeaveTime | čas, od kterého hledáme shodu (tj. dolní hranice času odjezdu) |
Implementováno v CMemoryDb a CClientQuery.
|
pure virtual |
nalezení plánu autobusu
Hledání plánu autobusu podle zadaného jména.
[in] | pszName | název plánu autobusu |
Implementováno v CMemoryDb a CClientQuery.
|
pure virtual |
nalezení města podle názvu
Hledání města probíhá nejprve v normálních názvech měst a v případě neúspěchu ve zkratkách (aliasech)
[in] | pszName | název či alias města |
Implementováno v CMemoryDb a CClientQuery.
|
pure virtual |
nalezení dalšího aliasu města v abecedním pořadí
Najde další alias v abecedním pořadí.
[in] | pszFrom | alias, od kterého hledáme následující |
[out] | strAlias | alias dalšího města v pořadí |
[out] | strCity | jméno města odpovídající aliasu |
Implementováno v CMemoryDb a CClientQuery.
|
pure virtual |
nalezení dalšího města v abecedním pořadí
Najde další město v abecedním pořadí.
[in] | pszFrom | název města, od kterého hledáme následující |
[out] | strName | jméno dalšího města v pořadí |
Implementováno v CMemoryDb a CClientQuery.
|
pure virtual |
trvalá rezervace sedadel
[in] | uiBus | ID autobusu |
[in,out] | cSeats | seznam sedadel k rezervaci, neúspěšná sedadla budou smazána ze seznamu |
[in] | uiCustomer | ID zákazníka |
Implementováno v CMemoryDb a CClientQuery.
|
pure virtual |
unikátní ID pro nového zákazníka
Operace rezervace sedadel je vždy vázána na konkrétního zákazníka identifikovaného jedinečným číslem. Díky tomu pak může zákazník své rezervace dodatečně zrušit nebo potvrdit dočasnou rezervaci.
Implementováno v CMemoryDb a CClientQuery.
|
pure virtual |
nalezení dalšího autobusu v pořadí
Najde další autobus podle ID.
[in] | uiBus | ID autobusu, od kterého hledáme následující |
Pomocí této metody je možné sekvenčně procházet kontajner autobusů (zapouzdřený ve třídě CBuses). Odpovídající kousek kódu může vypadat např. následovně
Metodu můžeme využít např. v situaci, kdy potřebujeme zakázat rezervace ve všech autobusech, které odjíždějí během následující hodiny (abychom mohli předat řidičům konečný seznam rezervovaných sedadel).
Implementováno v CMemoryDb a CClientQuery.
|
pure virtual |
nalezení dalšího města v pořadí
Najde další město podle ID.
[in] | uiCity | ID města, od kterého hledáme následující |
Implementováno v CMemoryDb a CClientQuery.
|
pure virtual |
nalezení dalšího plánu v pořadí
Najde další plán podle ID.
[in] | uiPlan | ID plánu, od kterého hledáme následující |
Implementováno v CMemoryDb a CClientQuery.
|
pure virtual |
zrušení rezervace sedadel
[in] | uiBus | ID autobusu |
[in,out] | cSeats | seznam sedadel k uvolnění, neúspěšná sedadla budou smazána ze seznamu |
[in] | uiCustomer | ID zákazníka |
Implementováno v CMemoryDb a CClientQuery.