Virtlab:Řídící server/ParserTopology.php.inc
Z VirtlabWiki
(Rozdíly mezi verzemi)
Verze z 19:47, 19. 2. 2007 Vav166 (Diskuse | příspěvky) ← Předchozí porovnání |
Verze z 12:31, 21. 2. 2007 Vav166 (Diskuse | příspěvky) (doplněn popis) Následující porovnání → |
||
Řádka 1: | Řádka 1: | ||
- | <pre> | + | Tato třída pomáhá vytahovat data z XML souboru. Ten je naparsován třídou [[Virtlab:XmlParser.php.inc|virtlabXmlParser]]. |
- | 10: function __construct($file, $is_file=0, $cache_ed=1, $cache_ve=1) { | + | |
- | 14: public function virtlabParserTopology($file, $is_file=0, $cache_ed=1, $cache_ve=1) { | + | == Popis funkcí == |
- | 35: public function getEdges() { | + | ; function __construct($file, $is_file=0, $cache_ed=1, $cache_ve=1) : konstruktor třídy v PHP5 |
- | 48: public function getEdgesCount() { | + | ; public function virtlabParserTopology($file, $is_file=0, $cache_ed=1, $cache_ve=1): konstruktor třídy. Jednotlivé parametry mají tento význam: |
- | 58: public function getEdge($index) { | + | :; $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>) |
- | 64: public function getEdgeName($index) { | + | :; $is_file : udává jestli je atribut <tt>$file</tt> casta k souboru, nebo přímo XML data |
- | 70: public function getEdgeByName($name, &$index) { | + | :; $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]] |
- | 82: public function getEdgeTechnology($index) { | + | :; $cache_ve : jako u <tt>$cache_ed</tt>, ale pro jednotlivé prvky |
- | 88: public function getEdgeEthertype($index) { | + | ; public function getEdges(): vrátí část původního pole, která popisuje jen linky virtuální topologie |
- | 96: public function getEdgeMinbps($index) { | + | ; public function getEdgesCount(): vrátí počet linek v topologii |
- | 104: public function getEdgeVertexes($index) { | + | ; 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) |
- | 113: public function getEdgesByVertex($name) { | + | ; public function getEdgeName($index): vrátí název zadané linky |
- | 130: public function getEdgeFeatures($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 |
- | 143: public function getVertexes() { | + | ; public function getEdgeTechnology($index): vrátí technologii linky |
- | 158: public function getVertexesCount() { | + | ; public function getEdgeEthertype($index): vrátí ''verzi'' ethernetu linky. Pokud je technologie <tt>serial</tt> vrací NULL. |
- | 163: public function getVertex($index) { | + | ; public function getEdgeMinbps($index): vrátí minimální rychlost linky. Pokud je technologie <tt>ethernet</tt> vrací NULL. |
- | 169: public function getVertexName($index) { | + | ; public function getEdgeVertexes($index): vrátí zařízení určené linky |
- | 175: public function getVertexByName($name) { | + | ; public function getEdgesByVertex($name): vrátí linky, na kterých leží zadané zařízení. Pokud na žádné vrací NULL. |
- | 185: public function getVertexPlatforms($name, $variant=1) { | + | ; public function getEdgeFeatures($index): vrátí speciální vlastnosti linky. Pokud nejsou zadány, vrací NULL. |
- | 201: public function getVertexOS($name, $variant=1) { | + | ; public function getEdgesFeatures() : vrátí všechny speciální vlastnosti všech linek v topologii |
- | 224: public function getVertexOSRelation($name) { | + | ; public function getEdgesList($variant=1) : vrátí seznam linek v topologii |
- | 233: public function getVertexType($name) { | + | ; public function getVertexes(): vrátí část původního pole, která popisuje jen zařízení virtuální topologie |
- | 242: public function getVertexesByType($type) { | + | ; public function getVertexesCount(): vrátí počet zařízení v topologii |
- | 254: public function getVertexesTypes() { | + | ; public function getVertex($index): vrátí určené zařízení |
- | 265: public function getVertexFeatures($name) { | + | ; public function getVertexName($index): vrátí název zařízení |
- | 280: public function getVertexesFeatures() { | + | ; public function getVertexByName($name) : vrátí požadované zařízení (určené jménem) |
- | 293: public function getEdgesFeatures() { | + | ; 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) |
- | 304: public function getEdgesList($variant=1) { | + | ; public function getVertexOS($name, $variant=1) : vrátí zadanou verzi OS |
- | 314: public function getVertexesList($variant=1) { | + | ; public function getVertexType($name) : vrátí typ zařízení |
- | </pre> | + | ; 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 | ||
+ | ) | ||
+ | |||
[[Kategorie:PHP]] | [[Kategorie:PHP]] |
Verze z 12:31, 21. 2. 2007
Tato třída pomáhá vytahovat data z XML souboru. Ten je naparsován třídou virtlabXmlParser.
Popis funkcí
- function __construct($file, $is_file=0, $cache_ed=1, $cache_ve=1)
- konstruktor třídy v PHP5
- public 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 popisem topologie, nebo jsu 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 casta k souboru, nebo přímo XML data
- $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 třídy virtlabXmlParser
- $cache_ve
- jako u $cache_ed, ale pro jednotlivé prvky
- 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
- public function getEdgeEthertype($index)
- vrátí verzi ethernetu linky. Pokud je technologie serial vrací NULL.
- public function getEdgeMinbps($index)
- vrátí 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
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 )
Kategorie: PHP | Třída | Diplomová práce | Jan Vavříček