Virtlab:Řídící server/ParserTopology.php.inc
Z VirtlabWiki
< Virtlab:Řídící server(Rozdíly mezi verzemi)
Verze z 19:47, 19. 2. 2007 Vav166 (Diskuse | příspěvky) ← Předchozí porovnání |
Aktuální verze Vav166 (Diskuse | příspěvky) |
||
Řádka 1: | Řádka 1: | ||
- | <pre> | + | 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]]. |
- | 10: function __construct($file, $is_file=0, $cache_ed=1, $cache_ve=1) { | + | == Proměnné == |
- | 14: public function virtlabParserTopology($file, $is_file=0, $cache_ed=1, $cache_ve=1) { | + | ; parsed = array() : veškerá data získaná z XML souboru parserem virtlabXmlParser |
- | 35: public function getEdges() { | + | ; cached_edges = 0 : určuje, jestli se mají data o spojích cacheovat v proměnné <tt>$this->edges</tt> |
- | 48: public function getEdgesCount() { | + | ; cached_vertexes = 0 : určuje, jestli se mají data o vrcholech logické topologie cacheovat v proměnné <tt>$this->vertexes</tt> |
- | 58: public function getEdge($index) { | + | ; edges = array() : cache dat o linkách logické topologie |
- | 64: public function getEdgeName($index) { | + | ; vertexes = array() : cache dat o vrcholech logické topologie |
- | 70: public function getEdgeByName($name, &$index) { | + | |
- | 82: public function getEdgeTechnology($index) { | + | |
- | 88: public function getEdgeEthertype($index) { | + | |
- | 96: public function getEdgeMinbps($index) { | + | |
- | 104: public function getEdgeVertexes($index) { | + | |
- | 113: public function getEdgesByVertex($name) { | + | |
- | 130: public function getEdgeFeatures($index) { | + | |
- | 143: public function getVertexes() { | + | |
- | 158: public function getVertexesCount() { | + | |
- | 163: public function getVertex($index) { | + | |
- | 169: public function getVertexName($index) { | + | |
- | 175: public function getVertexByName($name) { | + | |
- | 185: public function getVertexPlatforms($name, $variant=1) { | + | |
- | 201: public function getVertexOS($name, $variant=1) { | + | |
- | 224: public function getVertexOSRelation($name) { | + | |
- | 233: public function getVertexType($name) { | + | |
- | 242: public function getVertexesByType($type) { | + | |
- | 254: public function getVertexesTypes() { | + | |
- | 265: public function getVertexFeatures($name) { | + | |
- | 280: public function getVertexesFeatures() { | + | |
- | 293: public function getEdgesFeatures() { | + | |
- | 304: public function getEdgesList($variant=1) { | + | |
- | 314: public function getVertexesList($variant=1) { | + | |
- | </pre> | + | |
+ | == 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 [[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>) | ||
+ | :; $is_file : udává jestli je atribut <tt>$file</tt> 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 [[Virtlab:Řídící server/XmlParser.php.inc|třídy virtlabXmlParser]] | ||
+ | :; $cache_ve : jako u <tt>$cache_ed</tt>, 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 <tt>$index</tt>, 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 <tt>$index</tt> se uloží její index | ||
+ | ; 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í ''typ'' ethernetu linky. Pokud je technologie <tt>serial</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 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 <tt>$variant</tt> 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 | ||
+ | |||
+ | == 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 | ||
+ | ) | ||
+ | |||
+ | == 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