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

autobus ...

#include <Bus.h>

Diagram dědičnosti pro třídu CBus
RBusInfo CReadWriteLock

Veřejné metody

 CBus (const RBusInfo *prInfo, unsigned uiId, unsigned uiSeats)
 konstruktor ...
 
 CBus (std::istream *cStream)
 načtení z proudu ...
 
 ~CBus ()
 destruktor
 
unsigned Id (void) const
 vrátí ID autobusu
 
unsigned CityFrom (void) const
 vrátí ID počátečního města
 
unsigned CityTo (void) const
 vrátí ID cílového města
 
unsigned Plan (void) const
 vrátí ID plánu autobusu
 
time_t LeaveTime (void) const
 vrátí čas odjezdu autobusu
 
unsigned Seats (void) const
 vrátí počet sedadel v autobusu
 
void FreeSeats (std::list< unsigned > *cSeats)
 volná sedadla ...
 
void GetInfo (RBusInfo *prData)
 info o autobusu ...
 
void Enable (void)
 povolit rezervace pro autobus
 
void Disable (void)
 zakázat rezervace pro autobus
 
bool Enabled (void)
 dotaz zda je autobus povolen ...
 
bool AskSeats (std::list< unsigned > *cSeats, unsigned uiCustomer)
 dočasná rezervace ...
 
bool LockSeats (std::list< unsigned > *cSeats, unsigned uiCustomer)
 trvalá rezervace ...
 
bool UnlockSeats (std::list< unsigned > *cSeats, unsigned uiCustomer)
 zrušení rezervace ...
 
void Backup (std::ostream *cStream) const
 záloha ...
 

Detailní popis

autobus

Třída obsahuje všechna data o jednom autobusu. Obsahuje konstatní data ve struktuře RBusInfo, kontajner sedadel (instancí třídy CSeat) a další položky (jako zámek pro vícenásobný přístup zděděný od CReadWriteLock), které mohou v průběhu života třídy své hodnoty měnit. Každá instance má své unikátní číslo. Informace o počáteční a cílové stanici jsou uloženy jako odkazy na třídy CCity, plán sedadel je určen šablonou typu CPlan.

Bus.png
Schematické znázornění třídy CBus
Poznámka
Některé metody pracují se seznamy, ve kterých vystupují čísla sedadel. Stejně jako ve skutečném autobusu jsou sedadla číslována od 1 (0 není platné číslo sedadla). Nicméně je jasné, že interně jsou položky kontajneru sedadel indexovány od 0.

Dokumentace konstruktoru a destruktoru

CBus::CBus ( const RBusInfo prInfo,
unsigned  uiId,
unsigned  uiSeats 
)

konstruktor

Vytvoření nového autobusu, který obsahuje kontajner zadaného počtu sedadel.

Parametry
[in]prInfoukazatel na strukturu RBusInfo, která obsahuje data pro tento autobus
[in]uiIdjedinečné ID tohoto autobusu
[in]uiSeatspočet sedadel
CBus::CBus ( std::istream *  cStream)

načtení z proudu

Třída je vytvořena načtením všech položek z proudu.

Parametry
[in]cStreamvstupní proud s binárními daty

Dokumentace k metodám

bool CBus::AskSeats ( std::list< unsigned > *  cSeats,
unsigned  uiCustomer 
)

dočasná rezervace

Dočasná rezervace sedadel ze seznamu. Sedadla, která se povedlo rezervovat, zůstanou v seznamu, ostatní budou smazána.

Parametry
[in,out]cSeatsseznam sedadel k rezervaci
[in]uiCustomerID rezervujícího
Návratová hodnota
true v případě všech úspěšných rezervací, false v případě nějakého nezdaru při rezervaci
void CBus::Backup ( std::ostream *  cStream) const

záloha

Vytvoření zálohy třídy všech datových položek do proudu (souboru, soketu, ...).

Parametry
[out]cStreamvýstupní proud otevřený v binárním módu
bool CBus::Enabled ( void  )

dotaz zda je autobus povolen

Návratová hodnota
true v případě, že je autobus povolen, false v případě, že je zakázán
void CBus::FreeSeats ( std::list< unsigned > *  cSeats)

volná sedadla

Naplní seznam čísly volných sedadel.

Parametry
[out]cSeatsseznam, do kterého se vloží čísla volných sedadel
Poznámka
Případný počáteční obsah předaného seznamu bude před naplněním smazán.
void CBus::GetInfo ( RBusInfo prData)

info o autobusu

Naplní strukturu RBusInfo daty o autobusu

Parametry
[out]prDatastruktura RBusInfo s daty o autobusu
bool CBus::LockSeats ( std::list< unsigned > *  cSeats,
unsigned  uiCustomer 
)

trvalá rezervace

Trvalá rezervace sedadel ze seznamu. Sedadla, která se povedlo rezervovat, zůstanou v seznamu, ostatní budou smazána.

Parametry
[in,out]cSeatsseznam sedadel k rezervaci
[in]uiCustomerID rezervujícího
Návratová hodnota
true v případě všech úspěšných rezervací, false v případě nějakého nezdaru při rezervaci
bool CBus::UnlockSeats ( std::list< unsigned > *  cSeats,
unsigned  uiCustomer 
)

zrušení rezervace

Zrušení rezervace sedadel ze seznamu. Sedadla, která se povedlo uvolnit, zůstanou v seznamu, ostatní budou smazána.

Parametry
[in,out]cSeatsseznam sedadel k uvolnění
[in]uiCustomerID rezervujícího
Návratová hodnota
true v případě všech úspěšných zrušení rezervací, false v případě nějakého nezdaru

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