Virtlab:Řídící server/Mapping.php.inc
Z VirtlabWiki
< Virtlab:Řídící serverVerze z 11:31, 22. 10. 2007; zobrazit aktuální verzi
← Starší verze | Novější verze →
← Starší verze | Novější 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.
Obsah |
Proměnné
- equipment
- odkaz na objekt virtlabParserEquipment, který poskytuje data o laboratorních prvcích
- topology
- odkaz na objekt virtlabParserTopology, 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 - virtuální topologie a 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 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ě virtlabValues.
- private function Mapping($map2, &$vysledek)
- rekurzivní funkce, která se snaží mapovat. Ve dvojrozměrné poli $map2 je uloženo, který vertex může být realizován jakými device. Případný vysledek mapovaní je uložen do proměnné $vysledek. (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 zde.
- public function Map()
- funkce obstarávající 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 zde.
Zdrojový kód
Aktuální verze se nachází zde
Kategorie: Komponenty virtlabu | Server | Řídící server | PHP | Třída | UNCOMPLETE