Virtlab:Řídící server/ParserEquipment.php.inc
Z VirtlabWiki
(Rozdíly mezi verzemi)
Verze z 11:42, 22. 10. 2007
Tato třída pomáhá extrahovat data o laboratorních prvcích z příslušného 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_devices = 0
- určuje, jestli se mají data o laboratorních prvcích (obečně může jít jen o část $this->parsed) cacheovat v proměnné $this->devices
- devices = array()
- cache dat o laboratorních prvcích
Metody
- function __construct($file, $is_file=0, $cache_dev=1)
- konstruktor třídy v PHP5
- public function virtlabParserEquipment($file, $is_file=0, $cache_dev=1)
- konstruktor třídy. Jednotlivé parametry mají tento význam:
- $file
- obsahuje cestu k XML souboru s popisem vybavení, 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 casta k souboru, nebo přímo XML data
- $cache_dev
- nastavuje, jestli se maji data o laboratorních prvcích uložit do proměnné $this->devices, ze které si při potřebě načítají, nebo se vždy čtou z původního výstupu třídy virtlabXmlParser uloženém v $this->parsed.
- public function getDevices()
- vrátí pole s kompletními daty o laboratorních prvcích
- public function getDevicesCount()
- vrátí počet laboratorních prvků
- public function getDevice($index)
- vrátí určený laboratorní prvek (odpovídající úsek z naparsovaných dat), podle parametru $index, který odpovídá jejímu indexu v celkovém poli všech laboratorních prvků
- public function getDeviceType($index)
- vrátí typ zadaného laboratorního prvku
- public function getDeviceName($index)
- vrátí název zadaného laboratorního prvku
- public function getDeviceSerial($index)
- vrátí seriové číslo laboratorního prvku
- public function getDevicePlatform($index)
- vrátí platformu laboratorního prvku
- public function getDeviceByName($name, &$index)
- vrátí požadovaný laboratorní prvek (určený jeho názvem). Do parametru $index se uloží jeho index
- public function getDeviceOS($name, $variant=1)
- vrátí veri OS laboratorního prvku. Parametr $variant určuje jestli má být výstup upravený nebo v podobě, jako v původním poli
- public function getDeviceInterfaces($name)
- vrátí rozhraní zadaného laboratorního prvku
- public function getDeviceInterfacesCount($name)
- vrátí počet rozhraní zadaného laboratorního prvku
- public function getDeviceInterface($name, $index, $variant=1)
- vrátí určené rozhraní (určené parametrem $index) určeného laboratorního prvku
- public function getDeviceInterfaceTechnology($name, $index)
- vratí technologii laboratorního prvku
- public function getDeviceInterfaceEthertype($name, $index)
- vrátí typ ethernetu rozhraní. Pokud je technologie serial vrací NULL.
- public function getDeviceInterfaceMaxbps($name, $index)
- vrátí maximální rychlost rozhraní. Pokud je technologie ethernet vrací NULL.
- public function getDeviceInterfaceFeatures($name, $index)
- vrátí speciální vlastnosti zadaného rozhraní
- public function getDeviceFeatures($name)
- vrátí speciální vlastnosti laboratorního prvku
- public function getDevicesFeatures()
- vrátí všechny speciální vlastnosti všech laboratorních prvků - i s duplicitami
- public function getDevicesByType($type)
- vrátí jména laboratorních prvků daného typu
- public function getDevicesTypes()
- vrátí typy laboratorních prvků, které se ve vybavení vyskytují
- public function getDeviceInterfacesFeatures($name)
- vrátí speciální vlastnosti všech rozhraní daného laboratorního prvku
- public function getDevicesInterfacesFeatures()
- vrátí speciální vlastnosti všech rozhraní všech laboratorních prvků
- public function getDevicesList()
- vrátí seznam názvů všech laboratorních prvků
- public function getDeviceInterfaceName($name, $index)
- vrátí jméno zadaného rozhraní
Příklady
$parser->getDeviceInterface("r1",0,0); Array ( [name] => INTERFACE [attribs] => Array ( [TECHNOLOGY] => serial [CONNECT_GROUP] => 1 [NAME] => s0/1/0 ) [child] => Array ( [0] => Array ( [name] => MAX_BPS [content] => 128000 ) [1] => Array ( [name] => INT_FEATURE [content] => ... ) ) )
$parser->getDeviceInterface("r1",0,1); Array ( [technology] => serial [connect_group] => 1 [name] => s0/1/0 )
$parser->getDeviceInterface("r3",1,1); Array ( [technology] => ethernet [connect_group] => 3 [name] => fa0/0 [ether_type] => fast )
$parser->getDeviceInterfaceTechnology("r3",1); ethernet
$parser->getDeviceInterfaceEthertype("r3",1); fast
$parser->getDevicesByType("router"); Array ( [0] => r1 [1] => r3 [2] => r5 [3] => r7 )
$parser->getDevicesTypes(); Array ( [0] => router [1] => switch )
$parser->getDevicesInterfacesFeatures(); Array ( [0] => 802.1q [1] => +++ [2] => xxx [3] => ... )
$parser->getDevicesList(); Array ( [4] => swa [3] => r7 [2] => r5 [1] => r3 [0] => r1 )
$parser->getDeviceInterfaceName("r1",0); s0/1/0
Zdrojový kód
Aktuální zdrojový kód se nachází zde.
Kategorie: Komponenty virtlabu | Server | Řídící server | PHP | Třída | UNCOMPLETE