Virtlab:Řídící server/ParserTopology.php.inc

Z VirtlabWiki

< Virtlab:Řídící server(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
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

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

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

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í zde.

Osobní nástroje