Virtlab:Řídící server/Mapping.php.inc
Z VirtlabWiki
< Virtlab:Řídící server(Rozdíly mezi verzemi)
Verze z 11:31, 22. 10. 2007 Vav166 (Diskuse | příspěvky) ← Předchozí porovnání |
Aktuální verze Vav166 (Diskuse | příspěvky) |
||
Řádka 1: | Řádka 1: | ||
Tato třída (virtlabMapping) implementuje vlastní namapování laboratorních prvků na prvky v logické topologii, tak aby byly splněny všechny podmínky. | Tato třída (virtlabMapping) implementuje vlastní namapování laboratorních prvků na prvky v logické topologii, tak aby byly splněny všechny podmínky. | ||
- | |||
- | == Proměnné == | ||
- | ; equipment : odkaz na objekt <tt>[[Virtlab:Řídící server/ParserEquipment.php.inc | virtlabParserEquipment]]</tt>, který poskytuje data o laboratorních prvcích | ||
- | ; topology : odkaz na objekt <tt>[[Virtlab:Řídící server/ParserTopology.php.inc | virtlabParserTopology]]</tt>, který poskytuje data o logické topologii | ||
- | |||
- | == Metody == | ||
- | ; function __construct(virtlabParserEquipment $equip, virtlabParserTopology $topol) : konstruktor třídy v PHP5. Jako parametry očekává objekty jednotlivých parseru - [[Virtlab:Řídící server/ParserTopology.php.inc|virtuální topologie]] a [[Virtlab:Řídící server/ParserEquipment.php.inc|vybavení]] | ||
- | ; public function Evaluate($device) : vrátí vypočtenou hodnotu (tu ovlivnňuje typ laboratorního prvku, počet rozhrani, ...) zadaného lab. prvku. Nastavení konstant třídy [[Virtlab:Řídící server/Values.php.inc|virtlabValues]] ovlivní výslednou hodnotu. | ||
- | ; public function DevicesValue() : vrátí pole všech laboratorních prvků s jejich vypočtenou hodnotou | ||
- | ; public function Availability($device, $vertex) : zjistí, zda-li může být zadaný laboratorní prvek, zařízením v logické topologii. Pokud '''ano''', vrátí pole s určením, která rozhraní mohou být použita, na kterých linkách logické topologie. Pokud '''ne''', vrátí číslo chyby - definováno ve třídě [[Virtlab:Řídící server/Values.php.inc|virtlabValues]]. | ||
- | ; private function Mapping($map2, &$vysledek) : '''rekurzivní''' funkce, která se snaží mapovat. Ve dvojrozměrné poli <tt>$map2</tt> je uloženo, který ''vertex'' může být realizován jakými ''device''. Případný vysledek mapovaní je uložen do proměnné <tt>$vysledek</tt>. (viz příklady) ''Pozn.: tato funkce je psána obecně, takže je ve druhém kroku je znovu použita na mapovaní LINKA-ROZHRANÍ.'' Podrobnější informace k algoritmu rekuzivní funkce jsou [[Virtlab:Řídící server/Mapovací algoritmus|zde]]. | ||
- | ; public function Map() : funkce obstarávající [[Virtlab:Řídící server/Mapovací algoritmus|celý algoritmus mapování]]. | ||
- | |||
- | == Příklady == | ||
- | Výsledný výstup: | ||
- | '''$mapper->Map();''' | ||
- | r21:s0/0 r11:s0/0 | ||
- | r21:s0/1 r10:s0/0 | ||
- | r42:gi7 r21:fa3 | ||
- | r41:gi7 r21:fa2 | ||
- | r41:gi6 r11:gi1 | ||
- | r42:gi6 r10:gi1 | ||
- | r42:gi5 r11:gi0 | ||
- | r41:gi5 r10:gi0 | ||
'''Poznámka: podrobné výpisy z průběhu algoritmu, jsou [[Virtlab:Řídící server/Mapovací algoritmus|zde]].''' | '''Poznámka: podrobné výpisy z průběhu algoritmu, jsou [[Virtlab:Řídící server/Mapovací algoritmus|zde]].''' | ||
Řádka 35: | Řádka 11: | ||
[[Kategorie:PHP]] | [[Kategorie:PHP]] | ||
[[Kategorie:Třída]] | [[Kategorie:Třída]] | ||
- | [[Kategorie:UNCOMPLETE]] |
Aktuální verze
Tato třída (virtlabMapping) implementuje vlastní namapování laboratorních prvků na prvky v logické topologii, tak aby byly splněny všechny podmínky.
Poznámka: podrobné výpisy z průběhu algoritmu, jsou zde.
[editovat]
Zdrojový kód
Aktuální verze se nachází zde
Kategorie: Komponenty virtlabu | Server | Řídící server | PHP | Třída