Virtlab:Řídící server/ParserTopology.php.inc
Z VirtlabWiki
< Virtlab:Řídící server(Rozdíly mezi verzemi)
Verze z 12:34, 21. 2. 2007 Vav166 (Diskuse | příspěvky) (→Popis funkcí) ← Předchozí porovnání |
Aktuální verze Vav166 (Diskuse | příspěvky) |
||
Řádka 1: | Řádka 1: | ||
- | Tato třída pomáhá vytahovat data z XML souboru. Ten je naparsován třídou [[Virtlab:XmlParser.php.inc|virtlabXmlParser]]. | + | Tato třída pomáhá extrahovat data o logické topologii z XML souboru. Ten je naparsován třídou [[Virtlab:Řídící server/XmlParser.php.inc|virtlabXmlParser]]. |
+ | == Proměnné == | ||
+ | ; parsed = array() : veškerá data získaná z XML souboru parserem virtlabXmlParser | ||
+ | ; cached_edges = 0 : určuje, jestli se mají data o spojích cacheovat v proměnné <tt>$this->edges</tt> | ||
+ | ; cached_vertexes = 0 : určuje, jestli se mají data o vrcholech logické topologie cacheovat v proměnné <tt>$this->vertexes</tt> | ||
+ | ; edges = array() : cache dat o linkách logické topologie | ||
+ | ; vertexes = array() : cache dat o vrcholech logické topologie | ||
- | == Popis funkcí == | + | == Metody == |
- | ; function __construct($file, $is_file=0, $cache_ed=1, $cache_ve=1) : konstruktor třídy v PHP5 | + | ; function __construct($file, $is_file=0, $cache_ed=1, $cache_ve=1) : konstruktor třídy v PHP5. Jednotlivé parametry mají tento význam: |
- | ; private function virtlabParserTopology($file, $is_file=0, $cache_ed=1, $cache_ve=1): konstruktor třídy. Jednotlivé parametry mají tento význam: | + | :; $file : obsahuje cestu k XML souboru s [[Virtlab:Řídící server/Topology.dtd|popisem logické topologie]], nebo jsou v této proměnné uložena přímo XML data (o variantě rozhoduje parametr <tt>$is_file</tt>) |
- | :; $file : obsahuje cestu k XML souboru s [[Virtlab:Topology.dtd|popisem topologie]], nebo jsu v této proměnné uložena přímo XML data (o variantě rozhoduje parametr <tt>$is_file</tt>) | + | :; $is_file : udává jestli je atribut <tt>$file</tt> cesta k souboru, nebo přímo XML data |
- | :; $is_file : udává jestli je atribut <tt>$file</tt> casta k souboru, nebo přímo XML data | + | :; $cache_ed : nastavuje, jestli se maji data o linkách logické topologie uložit do proměnné, ze které si při potřebě načítají, nebo se vždy čtou z původního výstupu [[Virtlab:Řídící server/XmlParser.php.inc|třídy virtlabXmlParser]] |
- | :; $cache_ed : nastavuje, jestli se maji data o linkách uložit do proměnné, ze které si při potřebě načítají, nebo se vždy čtou z původního výstupu [[Virtlab:XmlParser.php.inc|třídy virtlabXmlParser]] | + | :; $cache_ve : jako u <tt>$cache_ed</tt>, ale pro jednotlivé vrcholy logické topologie |
- | :; $cache_ve : jako u <tt>$cache_ed</tt>, ale pro jednotlivé prvky | + | |
; public function getEdges(): vrátí část původního pole, která popisuje jen linky virtuální topologie | ; public function getEdges(): vrátí část původního pole, která popisuje jen linky virtuální topologie | ||
; public function getEdgesCount(): vrátí počet linek v topologii | ; public function getEdgesCount(): vrátí počet linek v topologii | ||
Řádka 13: | Řádka 18: | ||
; public function getEdgeName($index): vrátí název zadané linky | ; public function getEdgeName($index): vrátí název zadané linky | ||
; public function getEdgeByName($name, &$index): vrátí požadovanou linku (určenou jejím názvem). Do parametru <tt>$index</tt> se uloží její index | ; public function getEdgeByName($name, &$index): vrátí požadovanou linku (určenou jejím názvem). Do parametru <tt>$index</tt> se uloží její index | ||
- | ; public function getEdgeTechnology($index): vrátí technologii linky | + | ; public function getEdgeTechnology($index): vrátí technologii linky - množina návratových hodnot odpovídá definici atributu <tt>technology</tt> značky <tt>edge</tt> v XML souboru s popisem topologie. |
- | ; public function getEdgeEthertype($index): vrátí ''verzi'' ethernetu linky. Pokud je technologie <tt>serial</tt> vrací NULL. | + | ; public function getEdgeEthertype($index): vrátí ''typ'' ethernetu linky. Pokud je technologie <tt>serial</tt> vrací NULL. |
- | ; public function getEdgeMinbps($index): vrátí minimální rychlost linky. Pokud je technologie <tt>ethernet</tt> vrací NULL. | + | ; public function getEdgeMinbps($index): vrátí požadovanou minimální rychlost linky. Pokud je technologie <tt>ethernet</tt> vrací NULL. |
; public function getEdgeVertexes($index): vrátí zařízení určené linky | ; public function getEdgeVertexes($index): vrátí zařízení určené linky | ||
; public function getEdgesByVertex($name): vrátí linky, na kterých leží zadané zařízení. Pokud na žádné vrací NULL. | ; public function getEdgesByVertex($name): vrátí linky, na kterých leží zadané zařízení. Pokud na žádné vrací NULL. | ||
Řádka 80: | Řádka 85: | ||
) | ) | ||
+ | == Zdrojový kód == | ||
+ | Aktuální zdrojový kód se nachází [https://vl-test.cs.vsb.cz/websvn/filedetails.php?repname=virtlab&path=%2FDISTR%2Fweb%2Fclass%2FvirtlabParserTopology.php.inc&rev=0&sc=0 zde]. | ||
+ | [[Kategorie:Komponenty virtlabu]] | ||
+ | [[Kategorie:Server]] | ||
+ | [[Kategorie:Řídící server]] | ||
[[Kategorie:PHP]] | [[Kategorie:PHP]] | ||
[[Kategorie:Třída]] | [[Kategorie:Třída]] | ||
- | [[Kategorie:Diplomová práce]] | ||
- | [[Kategorie:Jan Vavříček]] |
Aktuální verze
Tato třída pomáhá extrahovat data o logické topologii z XML souboru. Ten je naparsován třídou virtlabXmlParser.
Obsah |
[editovat]
Proměnné
- parsed = array()
- veškerá data získaná z XML souboru parserem virtlabXmlParser
- cached_edges = 0
- určuje, jestli se mají data o spojích cacheovat v proměnné $this->edges
- cached_vertexes = 0
- určuje, jestli se mají data o vrcholech logické topologie cacheovat v proměnné $this->vertexes
- edges = array()
- cache dat o linkách logické topologie
- vertexes = array()
- cache dat o vrcholech logické topologie
[editovat]
Metody
- function __construct($file, $is_file=0, $cache_ed=1, $cache_ve=1)
- konstruktor třídy v PHP5. Jednotlivé parametry mají tento význam:
- $file
- obsahuje cestu k XML souboru s popisem logické topologie, nebo jsou v této proměnné uložena přímo XML data (o variantě rozhoduje parametr $is_file)
- $is_file
- udává jestli je atribut $file cesta k souboru, nebo přímo XML data
- $cache_ed
- nastavuje, jestli se maji data o linkách logické topologie uložit do proměnné, ze které si při potřebě načítají, nebo se vždy čtou z původního výstupu třídy virtlabXmlParser
- $cache_ve
- jako u $cache_ed, ale pro jednotlivé vrcholy logické topologie
- public function getEdges()
- vrátí část původního pole, která popisuje jen linky virtuální topologie
- public function getEdgesCount()
- vrátí počet linek v topologii
- public function getEdge($index)
- vrátí určenou linku (podle parametru $index, který odpovídá jejímu indexu v celkovém poli včech linek)
- public function getEdgeName($index)
- vrátí název zadané linky
- public function getEdgeByName($name, &$index)
- vrátí požadovanou linku (určenou jejím názvem). Do parametru $index se uloží její index
- public function getEdgeTechnology($index)
- vrátí technologii linky - množina návratových hodnot odpovídá definici atributu technology značky edge v XML souboru s popisem topologie.
- public function getEdgeEthertype($index)
- vrátí typ ethernetu linky. Pokud je technologie serial vrací NULL.
- public function getEdgeMinbps($index)
- vrátí požadovanou minimální rychlost linky. Pokud je technologie ethernet vrací NULL.
- public function getEdgeVertexes($index)
- vrátí zařízení určené linky
- public function getEdgesByVertex($name)
- vrátí linky, na kterých leží zadané zařízení. Pokud na žádné vrací NULL.
- public function getEdgeFeatures($index)
- vrátí speciální vlastnosti linky. Pokud nejsou zadány, vrací NULL.
- public function getEdgesFeatures()
- vrátí všechny speciální vlastnosti všech linek v topologii
- public function getEdgesList($variant=1)
- vrátí seznam linek v topologii
- public function getVertexes()
- vrátí část původního pole, která popisuje jen zařízení virtuální topologie
- public function getVertexesCount()
- vrátí počet zařízení v topologii
- public function getVertex($index)
- vrátí určené zařízení
- public function getVertexName($index)
- vrátí název zařízení
- public function getVertexByName($name)
- vrátí požadované zařízení (určené jménem)
- public function getVertexPlatforms($name, $variant=1)
- vrácí zadané platformy zařízení. Parametr $variant určuje jestli výstup je část původního pole, nebo jde o jednoduche pole hodnot (viz příklady)
- public function getVertexOS($name, $variant=1)
- vrátí zadanou verzi OS
- public function getVertexType($name)
- vrátí typ zařízení
- public function getVertexesByType($type)
- vrátí zařízení určeného typu
- public function getVertexesTypes()
- vrátí všechny typy zařízení v topologii
- public function getVertexFeatures($name)
- vrátí speciální vlastnosti zařízení
- public function getVertexesFeatures()
- vrátí všechny speciální vlastnosti všech zařízení v topologii
- public function getVertexesList($variant=1)
- vrátí seznam zařízení v topologii
[editovat]
Příklady
$hrany = $parser->getEdgeName(2); Kacena
$hrany = $parser->getEdgeVertexes(2); Array ( [0] => ra [1] => rd )
$hrany = $parser->getEdgesList(0); Array ( [Kacena] => 2 [Krokodyl] => 1 [Kocour] => 0 )
$hrany = $parser->getEdgesList(); Array ( [2] => Kacena [1] => Krokodyl [0] => Kocour )
$hrany = $parser->getVertexesList(0); Array ( [ra] => 3 [rb] => 2 [rc] => 1 [rd] => 0 )
$hrany = $parser->getVertexesList(); Array ( [3] => ra [2] => rb [1] => rc [0] => rd )
[editovat]
Zdrojový kód
Aktuální zdrojový kód se nachází zde.
Kategorie: Komponenty virtlabu | Server | Řídící server | PHP | Třída