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 |