Rezervační systém
Veřejné metody | Seznam všech členů
Dokumentace třídy CLogic

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 ...
 

Detailní popis

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.

Dokumentace konstruktoru a destruktoru

CLogic::CLogic ( CQuery cQuery)

konstruktor

Parametry
[in]cQueryukazatel na nějakou třídu poskytující rozhraní CQuery, pomocí které bude probíhat komunikace s databází

Dokumentace k metodám

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.

Parametry
[in]uiLinečíslo linky autobusu
[in]pszCityFromnázev výchozího města
[in]pszCityTonázev cílového města
[in]pszLeaveTimeřetězec s časem odjezdu autobusu
[in]pszPlannázev plánu/typu autobusu
Návratová hodnota
ID nově přidaného autobusu, 0 v případě chyby
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.

Parametry
[in]pszNamenázev plánu autobusu
[in]uiSeatspočet sedadel v tomto plánu
[in]pszFilenázev textového souboru obsahujícího plán v textové formě
Návratová hodnota
ID přidaného plánu, 0 v případě chyby
unsigned CLogic::AddCity ( const char *  pszCityName)

přidání nového města

Přidá nové město do databáze.

Parametry
[in]pszCityNamenázev nově přidávaného města
Návratová hodnota
ID nově přidaného města, v případě neúspěchu 0
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.

Parametry
[in]pszCityAliasnová zkratka pro město
[in]pszCityNamejméno stávajícího města
Návratová hodnota
true při úspěchu, false jinak
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.

Parametry
[in]invstupní sekvence, podle které se hledají podobná města
[out]cOutseznam 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.

Návratová hodnota
počet smazaných autobusů
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.

Návratová hodnota
počet smazaných měst
unsigned CLogic::ClearPlan ( void  )

smazání nepoužívaných plánů autobusů

Smaže nevyužívané plány autobusů z databáze.

Návratová hodnota
počet smazaných plánů
bool CLogic::DelBus ( unsigned  uiBusId)

smazání autobusu

Smaže autobus podle jeho ID.

Parametry
[in]uiBusIdID autobusu určeného ke smazání
Návratová hodnota
true při úspěchu, false jinak
bool CLogic::DelBusPlan ( const char *  pszName)

smazání plánu autobusu

Smaže plán autobusu z databáze.

Parametry
[in]pszNamejméno plánu autobusu ke smazání
Návratová hodnota
true při úspěchu, false jinak
bool CLogic::DelCity ( const char *  pszCityName)

smazání města

Smaže stávající město z databáze.

Parametry
[in]pszCityNamenázev města ke smazání
Návratová hodnota
true při úspěchu, false jinak
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.

Parametry
[out]cBuseslist 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
Návratová hodnota
true při úspěchu, false jinak
Error CLogic::GetLastError ( void  ) const

zjištění případné chyby v poslední funkci

Zjistí stav, se kterým skončila posledně volaná funkce.

Návratová hodnota
chybový stav z Error
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".

Parametry
[out]cBuseslist nalezených autobusů k vypsání
Návratová hodnota
true při úspěchu, false jinak
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.

Parametry
[out]cSeatsseznam sedadel, které se podařilo rezervovat
[in]uiSeatsCountpočet sedadel k rezervaci
Návratová hodnota
true pokud se podařilo rezervovat všechna sedadla, false jinak
bool CLogic::ReserveAsk ( std::list< unsigned > *  cSeats)

dočasná rezervace

Zarezervuje zadaná sedadla jen na určitou dobu, poté budou automaticky uvolněna

Parametry
[in,out]cSeatsseznam sedadel k rezervaci. Sedadla, která se nepovedlo rezervovat, budou z tohoto seznamu odstraněna.
Návratová hodnota
true pokud se podařilo rezervovat všechna sedadla, false jinak
bool CLogic::ReserveForever ( std::list< unsigned > *  cSeats,
unsigned *  puiId,
RBusPrint prBus 
)

konečná rezervace

Definitivně zarezervuje zadaná sedadla.

Parametry
[in,out]cSeatsseznam sedadel k rezervaci. Sedadla, která se nepovedlo rezervovat, budou z tohoto seznamu odstraněna.
[out]puiIdID uživatele, který provedl rezervaci
[out]prBusdata o autobusu, ve kterém byla provedene rezervace
Návratová hodnota
true pokud se podařilo rezervovat všechna sedadla, false jinak
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.

Parametry
[in]uiBusIdID autobusu, kterého chceme nastavit jako aktivního
[out]cFreeSeatsseznam volných sedadel nastaveného autobusu
[out]strPlanřetězec s plánkem autobusu v textové formě
[out]prBusinformace o lince
[out]puiNumberSeatscelkový počet sedadel v autobusu
Návratová hodnota
true při úspěchu, false jinak
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.

Parametry
[in,out]cSeatsseznam sedadel k uvolnění, na výstupu uvolněná sedadla
Návratová hodnota
true pokud se podařilo uvolnit sedadla, false jinak
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.

Parametry
[in]uiUserIdID uživatele, který chce zrušit svou rezervaci
[in,out]cSeatsseznam sedadel k uvolnění, na výstupu uvolněná sedadla
Návratová hodnota
true pokud se podařilo uvolnit sedadla, false jinak
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

Parametry
[in]uiUserIdID uživatele, který chce zrušit svou rezervaci
[out]cSeatsseznam uvolněných sedadel
Návratová hodnota
true pokud se podařilo uvolnit sedadla, false jinak

Dokumentace pro tuto třídu byla generována z následujícího souboru: