BRS#
ClientProcess Class Reference

Klientská třída zajišťující zpřístupnění vzdálené databáze ze serveru. More...

Inheritance diagram for ClientProcess:
IQuery

Public Member Functions

 ClientProcess (string server, int port)
 Konstruktor. More...
 
uint AddCity (string Name)
 přidání města. More...
 
bool AddCityAlias (string Name, uint Id)
 přidání zkratky k nějakému existujícímu městu. More...
 
bool DeleteCity (string Name)
 smazání města podle jména. More...
 
uint FindCity (string Name)
 nalezení města podle názvu. More...
 
bool CityInfo (uint City, out CityInfo Info, out uint LinesOut, out uint LinesIn)
 získání informací o městě. More...
 
uint AddBusPlan (string Name, uint Seats, string Data)
 přidání plánu autobusu. More...
 
bool DeleteBusPlan (string Name)
 smazání plánu autobusu. More...
 
uint FindBusPlan (string Name)
 nalezení plánu autobusu. More...
 
bool BusPlanInfo (uint Plan, out PlanInfo Info, out uint Buses, out string Data)
 získání informací o plánu. More...
 
uint AddBus (BusInfo Bus)
 přidání autobusu. More...
 
bool DeleteBus (uint Bus)
 smazání autobusu. More...
 
uint FindBus (uint From, uint To, DateTime LeaveTime)
 nalezení autobusu. More...
 
bool BusInfo (uint Bus, out BusInfo Info, out bool Enabled, out uint Seats, out Queue< uint > FreeSeats)
 získání informací o autobusu. More...
 
bool EnableBus (uint Bus)
 povolení autobusu. More...
 
bool DisableBus (uint Bus)
 zakázání autobusu. More...
 
uint NewCustomer ()
 unikátní ID pro nového zákazníka. More...
 
bool AskSeats (uint Bus, ref Queue< uint > Seats, uint Customer)
 dočasné zamluvení sedadel. More...
 
bool LockSeats (uint Bus, ref Queue< uint > Seats, uint Customer)
 trvalá rezervace sedadel. More...
 
bool UnlockSeats (uint Bus, ref Queue< uint > Seats, uint Customer)
 zrušení rezervace sedadel. More...
 
uint NextBus (uint Bus)
 nalezení dalšího autobusu v pořadí. More...
 
uint NextPlan (uint Plan)
 nalezení dalšího plánu v pořadí. More...
 
uint NextCity (uint City)
 nalezení dalšího města v pořadí. More...
 
bool ListCity (string From, out string Name)
 nalezení dalšího města v abecedním pořadí. More...
 
bool ListAlias (string From, out string Alias, out string City)
 nalezení dalšího aliasu města v abecedním pořadí. More...
 

Detailed Description

Klientská třída zajišťující zpřístupnění vzdálené databáze ze serveru.

Díky tomy, že implementuje rozhraní IQuery, tak lze tuto třídu nahradit novou implementací, která bude například používat jiný způsob komunikace. Nebo lze přímo připojit i samotnou databázi MemoryDb, což může mít dobrý význam zvlášť při ladění chyb.

Definition at line 11 of file ClientProcess.cs.

Constructor & Destructor Documentation

ClientProcess.ClientProcess ( string  server,
int  port 
)

Konstruktor.

Parameters
serverDoménové jméno nebo IP adresa serveru.
portPort serveru.

Definition at line 17 of file ClientProcess.cs.

Member Function Documentation

uint ClientProcess.AddBus ( BusInfo  Bus)

přidání autobusu.

Vytvoření autobusu s uvedenými daty a jeho přidání do databáze. Identifikační číslo (položka Id struktury BusInfo) nemusí být vyplněno, neboť dojde k jeho naplnění jedinečným číslem až při zpracování požadavku.

Returns
ID nově vloženého autobusu nebo 0 v případě chyby (snaha o zavedení duplicitního autobusu).
Parameters
Busstruktura BusInfo s daty potřebnými k vytvoření nového autobusu.

Implements IQuery.

Definition at line 127 of file ClientProcess.cs.

uint ClientProcess.AddBusPlan ( string  Name,
uint  Seats,
string  Data 
)

přidání plánu autobusu.

Returns
unikátní číslo přidaného plánu nebo číslo již existujícího plány se zadaným jménem.
Parameters
Namenázev plánu/typu autobusu.
Seatspočet sedadel.
Datarozvržení sedadel.

Implements IQuery.

Definition at line 77 of file ClientProcess.cs.

uint ClientProcess.AddCity ( string  Name)

přidání města.

Returns
unikátní číslo nově přidaného města či číslo jiz dříve existujícího města.
Parameters
Namejméno města.

Implements IQuery.

Definition at line 20 of file ClientProcess.cs.

bool ClientProcess.AddCityAlias ( string  Name,
uint  Id 
)

přidání zkratky k nějakému existujícímu městu.

Returns
úspěch operace - false v případě, že jméno již existuje (jako město či alias) nebo pokud město s ID není v databázi.
Parameters
Namenázev zkratky či dalšího názvu.
IdID existujícího města, se kterým chceme propojit tuto zkratku.

Implements IQuery.

Definition at line 29 of file ClientProcess.cs.

bool ClientProcess.AskSeats ( uint  Bus,
ref Queue< uint >  Seats,
uint  Customer 
)

dočasné zamluvení sedadel.

Dočasné zamluvení sedadel, které po určitém čase vyprší.

Returns
úspěch operace - false, pokud autobus není nalezen nebo se operace nezdařila pro všechna sedadla.
Parameters
BusID autobusu.
Seatsseznam sedadel k rezervaci, neúspěšná sedadla budou smazána ze seznamu.
CustomerID zákazníka.

Implements IQuery.

Definition at line 219 of file ClientProcess.cs.

bool ClientProcess.BusInfo ( uint  uiBus,
out BusInfo  Info,
out bool  Enabled,
out uint  Seats,
out Queue< uint >  FreeSeats 
)

získání informací o autobusu.

Returns
úspěch operace - false, nebyl-li autobus nalezen.
Parameters
uiBusID autobusu.
Infostruktura BusInfo, která bude naplněná daty.
Enabledpřepínač, zda jsou povoleny změny v autobusu.
Seatspočet sedadel autobusu.
FreeSeatsseznam volných sedadel.

Implements IQuery.

Definition at line 161 of file ClientProcess.cs.

bool ClientProcess.BusPlanInfo ( uint  Plan,
out PlanInfo  Info,
out uint  Buses,
out string  Data 
)

získání informací o plánu.

Returns
úspěch operace - false, pokud plán nebyl nalezen.
Parameters
PlanID plánu autobusu.
Infostruktura PlanInfo k naplnění daty.
Busespočet autobusů využívajících tento plán.
Datadata s rozložením sedadel.

Implements IQuery.

Definition at line 106 of file ClientProcess.cs.

bool ClientProcess.CityInfo ( uint  City,
out CityInfo  Info,
out uint  LinesOut,
out uint  LinesIn 
)

získání informací o městě.

Returns
úspěch operace - false, pokud město nebylo nalezeno.
Parameters
CityID města.
Infostruktura CityInfo vyplněná daty.
LinesOutpočet autobusů odjíždějících z tohoto města.
LinesInpočet autobusů přijíždějících do tohoto města.

Implements IQuery.

Definition at line 57 of file ClientProcess.cs.

bool ClientProcess.DeleteBus ( uint  Bus)

smazání autobusu.

Returns
úspěch operace.
Parameters
BusID autobusu určeného ke smazání.

Implements IQuery.

Definition at line 141 of file ClientProcess.cs.

bool ClientProcess.DeleteBusPlan ( string  Name)

smazání plánu autobusu.

Note
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.
Returns
úspěch operace.
Parameters
Namenázev plánu autobusu.

Implements IQuery.

Definition at line 88 of file ClientProcess.cs.

bool ClientProcess.DeleteCity ( string  Name)

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.

Returns
úspěch operace - false v případě, že město není v databázi nebo existují autobusové linky, které město používají.
Parameters
Namenázev či alias města.

Implements IQuery.

Definition at line 39 of file ClientProcess.cs.

bool ClientProcess.DisableBus ( uint  Bus)

zakázání autobusu.

Zakáže provádět změny v rezervacích.

Returns
úspěch operace - false, nebyl-li autobus nalezen.
Parameters
BusID autobusu.

Implements IQuery.

Definition at line 202 of file ClientProcess.cs.

bool ClientProcess.EnableBus ( uint  Bus)

povolení autobusu.

Povolí provádět změny v rezervacích.

Returns
úspěch operace - false, nebyl-li autobus nalezen.
Parameters
BusID autobusu.

Implements IQuery.

Definition at line 193 of file ClientProcess.cs.

uint ClientProcess.FindBus ( uint  From,
uint  To,
DateTime  LeaveTime 
)

nalezení autobusu.

Funkce pro nalezení autobusu z města From do města To a s časem odjezdu rovným nebo nejbližším větším času LeaveTime.

Returns
ID nalezeného autobusu nebo 0.
Parameters
FromID výchozího města.
ToID cílového města.
LeaveTimečas, od kterého hledáme shodu (tj. dolní hranice času odjezdu).

Implements IQuery.

Definition at line 150 of file ClientProcess.cs.

uint ClientProcess.FindBusPlan ( string  Name)

nalezení plánu autobusu.

Hledání plánu autobusu podle zadaného jména.

Returns
ID plánu, 0 v případě neúspěchu.
Parameters
Namenázev plánu autobusu.

Implements IQuery.

Definition at line 97 of file ClientProcess.cs.

uint ClientProcess.FindCity ( string  Name)

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)

Returns
ID nalezeného města nebo 0 v případě neúspěchu.
Parameters
Namenázev či alias města.

Implements IQuery.

Definition at line 48 of file ClientProcess.cs.

bool ClientProcess.ListAlias ( string  From,
out string  Alias,
out string  City 
)

nalezení dalšího aliasu města v abecedním pořadí.

Najde další alias v abecedním pořadí.

Returns
úspěch operace (false pro dosažení konce).
Parameters
Fromalias, od kterého hledáme následující.
Aliasalias dalšího města v pořadí.
Cityjméno města odpovídající aliasu.

Implements IQuery.

Definition at line 330 of file ClientProcess.cs.

bool ClientProcess.ListCity ( string  From,
out string  Name 
)

nalezení dalšího města v abecedním pořadí.

Najde další město v abecedním pořadí.

Returns
úspěch operace (false pro dosažení konce).
Parameters
Fromnázev města, od kterého hledáme následující.
Namejméno dalšího města v pořadí.

Implements IQuery.

Definition at line 315 of file ClientProcess.cs.

bool ClientProcess.LockSeats ( uint  Bus,
ref Queue< uint >  Seats,
uint  Customer 
)

trvalá rezervace sedadel.

Returns
úspěch operace - false, pokud autobus není nalezen nebo se operace nezdařila pro všechna sedadla.
Parameters
BusID autobusu.
Seatsseznam sedadel k rezervaci, neúspěšná sedadla budou smazána ze seznamu.
CustomerID zákazníka.

Implements IQuery.

Definition at line 242 of file ClientProcess.cs.

uint ClientProcess.NewCustomer ( )

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.

Returns
unikátní číslo zákazníka.

Implements IQuery.

Definition at line 211 of file ClientProcess.cs.

uint ClientProcess.NextBus ( uint  Bus)

nalezení dalšího autobusu v pořadí.

Najde další autobus podle ID.

Pomocí této metody je možné sekvenčně procházet kontajner autobusů (zapouzdřený ve třídě Buses). Odpovídající kousek kódu může vypadat např. následovně

uint Id;
while((Id = query.NextBus(Id)) != 0) {
// zpracování autobusu s číslem Id
}

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

Returns
ID nalezeného autobusu nebo 0.
Parameters
BusID autobusu, od kterého hledáme následující.

Implements IQuery.

Definition at line 288 of file ClientProcess.cs.

uint ClientProcess.NextCity ( uint  City)

nalezení dalšího města v pořadí.

Najde další město podle ID.

Returns
ID nalezeného města nebo 0.
Parameters
CityID města, od kterého hledáme následující.

Implements IQuery.

Definition at line 306 of file ClientProcess.cs.

uint ClientProcess.NextPlan ( uint  Plan)

nalezení dalšího plánu v pořadí.

Najde další plán podle ID.

Returns
ID nalezeného plánu nebo 0.
Parameters
PlanID plánu, od kterého hledáme následující.

Implements IQuery.

Definition at line 297 of file ClientProcess.cs.

bool ClientProcess.UnlockSeats ( uint  Bus,
ref Queue< uint >  Seats,
uint  Customer 
)

zrušení rezervace sedadel.

Warning
K úspěšnému zrušení rezervace je nutné mít zákaznické ID, se kterým byla provedena rezervace.
Returns
úspěch operace - false, pokud autobus není nalezen nebo se operace nezdařila pro všechna sedadla.
Parameters
BusID autobusu.
Seatsseznam sedadel k uvolnění, neúspěšná sedadla budou smazána ze seznamu.
CustomerID zákazníka.

Implements IQuery.

Definition at line 265 of file ClientProcess.cs.


The documentation for this class was generated from the following file: