|
Rezervační systém
|
třída na převod uživatelských dotazů na dotazy pro databázi ...
#include <Logic.h>
Veřejné metody | |
| CLogic (CQuery *cQuery) | |
| konstruktor ... | |
| ~CLogic () | |
| destruktor | |
| void | Init (void) |
| inicializace, mj. přidělení unikátního ID novému zákazníkovi | |
| void | Clear (void) |
| vymazání aktuálních dat ... | |
| bool | Find (std::list< RBusPrint > *cBuses, const char *pszCityFrom, const char *pszCityTo, const char *pszLeaveTime) |
| nalezení vyhovujících autobusů ... | |
| bool | Next (std::list< RBusPrint > *cBuses) |
| vypsání dalších autobusů ... | |
| bool | SetBus (unsigned uiBusId, std::list< unsigned > *cFreeSeats, std::string *strPlan, RBusPrint *prBus, unsigned *puiNumberSeats) |
| nastaví aktuální autobus ... | |
| bool | ReserveAsk (std::list< unsigned > *cSeats, unsigned uiSeatsCount) |
| dočasná rezervace ... | |
| bool | ReserveAsk (std::list< unsigned > *cSeats) |
| dočasná rezervace ... | |
| bool | ReserveForever (std::list< unsigned > *cSeats, unsigned *puiId, RBusPrint *prBus) |
| konečná rezervace ... | |
| bool | UnlockAll (unsigned uiUserId, std::list< unsigned > *cSeats) |
| uvolnění sedadel ... | |
| bool | Unlock (std::list< unsigned > *cSeats) |
| uvolnění sedadel ... | |
| bool | Unlock (unsigned uiUserId, std::list< unsigned > *cSeats) |
| uvolnění sedadel ... | |
| unsigned | AddCity (const char *pszCityName) |
| přidání nového města ... | |
| bool | DelCity (const char *pszCityName) |
| smazání města ... | |
| bool | AddCityAlias (const char *pszCityAlias, const char *pszCityName) |
| přídání zkratky pro stávající město ... | |
| unsigned | AddBus (unsigned uiLine, const char *pszCityFrom, const char *pszCityTo, const char *pszLeaveTime, const char *pszPlan) |
| přidání nového autobusu ... | |
| bool | DelBus (unsigned uiBusId) |
| smazání autobusu ... | |
| unsigned | AddBusPlan (const char *pszName, unsigned uiSeats, const char *pszFile) |
| přidání nového plánu autobusu ... | |
| bool | DelBusPlan (const char *pszName) |
| smazání plánu autobusu ... | |
| bool | Close (unsigned uiBusId, std::list< unsigned > *cReservedSeats, std::string *strPlan, RBusPrint *prBusPrint, unsigned *puiSeats) |
| uzamknutí autobusu | |
| Error | GetLastError (void) const |
| zjištění případné chyby v poslední funkci ... | |
| unsigned | ClearBus (void) |
| smazání starých autobusů ... | |
| unsigned | ClearCity (void) |
| smazání nepoužívaných měst ... | |
| unsigned | ClearPlan (void) |
| smazání nepoužívaných plánů autobusů ... | |
| void | City (std::string &in, std::vector< std::pair< std::string, std::string >> &cOut) |
| vypsání existujících měst ... | |
třída na převod uživatelských dotazů na dotazy pro databázi
Třída zajišťuje převod dotazu uživatele na dotazy pro databázi a případné nastavení chybové hodnoty pro všechny nepovolené vstupy. Chybové kódy po každém příkazu si můžeme zjistit voláním GetLastError(). Pamatuje si předtím uživatelem zadané hodnoty a tím umožňuje používat jednodušší a snáze zapamatovatelné příkazy.
| CLogic::CLogic | ( | CQuery * | cQuery | ) |
konstruktor
| [in] | cQuery | ukazatel na nějakou třídu poskytující rozhraní CQuery, pomocí které bude probíhat komunikace s databází |
| unsigned CLogic::AddBus | ( | unsigned | uiLine, |
| const char * | pszCityFrom, | ||
| const char * | pszCityTo, | ||
| const char * | pszLeaveTime, | ||
| const char * | pszPlan | ||
| ) |
přidání nového autobusu
Přidá nový autobus do databáze.
| [in] | uiLine | číslo linky autobusu |
| [in] | pszCityFrom | název výchozího města |
| [in] | pszCityTo | název cílového města |
| [in] | pszLeaveTime | řetězec s časem odjezdu autobusu |
| [in] | pszPlan | název plánu/typu autobusu |
| unsigned CLogic::AddBusPlan | ( | const char * | pszName, |
| unsigned | uiSeats, | ||
| const char * | pszFile | ||
| ) |
přidání nového plánu autobusu
Přidá do databáze nový plán či typ autobusu.
| [in] | pszName | název plánu autobusu |
| [in] | uiSeats | počet sedadel v tomto plánu |
| [in] | pszFile | název textového souboru obsahujícího plán v textové formě |
| unsigned CLogic::AddCity | ( | const char * | pszCityName | ) |
přidání nového města
Přidá nové město do databáze.
| [in] | pszCityName | název nově přidávaného města |
| bool CLogic::AddCityAlias | ( | const char * | pszCityAlias, |
| const char * | pszCityName | ||
| ) |
přídání zkratky pro stávající město
Přidání jména města, které se odkazuje na nějaké stávající město.
| [in] | pszCityAlias | nová zkratka pro město |
| [in] | pszCityName | jméno stávajícího města |
| void CLogic::City | ( | std::string & | in, |
| std::vector< std::pair< std::string, std::string >> & | cOut | ||
| ) |
vypsání existujících měst
Vypíše existující města z databáze.
| [in] | in | vstupní sekvence, podle které se hledají podobná města |
| [out] | cOut | seznam nalezených měst. Názvy měst mají druhý string prázdný, aliasy jsou v druhém stringu a v prvním je i opravdový název města. |
| void CLogic::Clear | ( | void | ) |
vymazání aktuálních dat
Vymaže aktuální hodnoty jako ID aktuálního uživatele, aktuálně vybraný autobus, výchozí a cílové město z posledního hledání a čas odjezdu posledního nalezeného autobusu.
| unsigned CLogic::ClearBus | ( | void | ) |
smazání starých autobusů
Smaže autobusy, které již odjely.
| unsigned CLogic::ClearCity | ( | void | ) |
smazání nepoužívaných měst
Smaže města, do kterých ani z kterých nejezdí žádné autobusy.
| unsigned CLogic::ClearPlan | ( | void | ) |
smazání nepoužívaných plánů autobusů
Smaže nevyužívané plány autobusů z databáze.
| bool CLogic::DelBus | ( | unsigned | uiBusId | ) |
smazání autobusu
Smaže autobus podle jeho ID.
| [in] | uiBusId | ID autobusu určeného ke smazání |
| bool CLogic::DelBusPlan | ( | const char * | pszName | ) |
smazání plánu autobusu
Smaže plán autobusu z databáze.
| [in] | pszName | jméno plánu autobusu ke smazání |
| bool CLogic::DelCity | ( | const char * | pszCityName | ) |
smazání města
Smaže stávající město z databáze.
| [in] | pszCityName | název města ke smazání |
| bool CLogic::Find | ( | std::list< RBusPrint > * | cBuses, |
| const char * | pszCityFrom, | ||
| const char * | pszCityTo, | ||
| const char * | pszLeaveTime | ||
| ) |
nalezení vyhovujících autobusů
Funkce pro nalezení daného počtu autobusů. Počet je dán při překladu v privátní položce uiPrintCount.
| [out] | cBuses | list nalezených autobusů k vypsání |
| [in] | pszCityFrom | řetězec s názvem výchozího města |
| [in] | pszCityTo | řetězec s názvem cílového města |
| [in] | pszLeaveTime | řetězec s časem, od kterého dál se má v databáti vyhledávat |
| Error CLogic::GetLastError | ( | void | ) | const |
zjištění případné chyby v poslední funkci
Zjistí stav, se kterým skončila posledně volaná funkce.
| bool CLogic::Next | ( | std::list< RBusPrint > * | cBuses | ) |
vypsání dalších autobusů
Vypsání dalších autobusů. Nutná podmínka je, aby byl před tímto použit příkaz "find".
| [out] | cBuses | list nalezených autobusů k vypsání |
| bool CLogic::ReserveAsk | ( | std::list< unsigned > * | cSeats, |
| unsigned | uiSeatsCount | ||
| ) |
dočasná rezervace
Zarezervuje zadaný počet sedadel jen na určitou dobu, poté budou automaticky uvolněna.
| [out] | cSeats | seznam sedadel, které se podařilo rezervovat |
| [in] | uiSeatsCount | počet sedadel k rezervaci |
| bool CLogic::ReserveAsk | ( | std::list< unsigned > * | cSeats | ) |
dočasná rezervace
Zarezervuje zadaná sedadla jen na určitou dobu, poté budou automaticky uvolněna
| [in,out] | cSeats | seznam sedadel k rezervaci. Sedadla, která se nepovedlo rezervovat, budou z tohoto seznamu odstraněna. |
| bool CLogic::ReserveForever | ( | std::list< unsigned > * | cSeats, |
| unsigned * | puiId, | ||
| RBusPrint * | prBus | ||
| ) |
konečná rezervace
Definitivně zarezervuje zadaná sedadla.
| [in,out] | cSeats | seznam sedadel k rezervaci. Sedadla, která se nepovedlo rezervovat, budou z tohoto seznamu odstraněna. |
| [out] | puiId | ID uživatele, který provedl rezervaci |
| [out] | prBus | data o autobusu, ve kterém byla provedene rezervace |
| bool CLogic::SetBus | ( | unsigned | uiBusId, |
| std::list< unsigned > * | cFreeSeats, | ||
| std::string * | strPlan, | ||
| RBusPrint * | prBus, | ||
| unsigned * | puiNumberSeats | ||
| ) |
nastaví aktuální autobus
Funkce pro nastavení autobusu se zadaným ID jako aktivního.
| [in] | uiBusId | ID autobusu, kterého chceme nastavit jako aktivního |
| [out] | cFreeSeats | seznam volných sedadel nastaveného autobusu |
| [out] | strPlan | řetězec s plánkem autobusu v textové formě |
| [out] | prBus | informace o lince |
| [out] | puiNumberSeats | celkový počet sedadel v autobusu |
| bool CLogic::Unlock | ( | std::list< unsigned > * | cSeats | ) |
uvolnění sedadel
Provede uvolnění zadaných sedadel v aktuálním autobusu s aktuálním ID uživatele. Užitečné zejména pro uvolnění dočasně rezervovaných sedadel při nepotvrzení rezervace.
| [in,out] | cSeats | seznam sedadel k uvolnění, na výstupu uvolněná sedadla |
| bool CLogic::Unlock | ( | unsigned | uiUserId, |
| std::list< unsigned > * | cSeats | ||
| ) |
uvolnění sedadel
Provede uvolnění zadaných sedadel v aktuálním autobusu se zadaným ID uživatele.
| [in] | uiUserId | ID uživatele, který chce zrušit svou rezervaci |
| [in,out] | cSeats | seznam sedadel k uvolnění, na výstupu uvolněná sedadla |
| bool CLogic::UnlockAll | ( | unsigned | uiUserId, |
| std::list< unsigned > * | cSeats | ||
| ) |
uvolnění sedadel
Provede uvolnění sedadel v aktuálním autobusu se zadaným ID uživatele
| [in] | uiUserId | ID uživatele, který chce zrušit svou rezervaci |
| [out] | cSeats | seznam uvolněných sedadel |
1.8.5