Virtlab:Řídící server/ParserEquipment.php.inc
Z VirtlabWiki
(Rozdíly mezi verzemi)
Verze z 19:36, 19. 2. 2007 Vav166 (Diskuse | příspěvky) ← Předchozí porovnání |
Verze z 12:52, 21. 2. 2007 Vav166 (Diskuse | příspěvky) Následující porovnání → |
||
Řádka 1: | Řádka 1: | ||
<pre> | <pre> | ||
- | 8: public function virtlabParserEquipment($file, $is_file=0, $cache_dev=1) { | + | 8: public function virtlabParserEquipment($file, $is_file=0, $cache_dev=1) { |
- | 24: public function getDevices() { | + | 24: public function getDevices() { |
- | 32: public function getDevicesCount() { | + | 32: public function getDevicesCount() { |
- | 42: public function getDevice($index) { | + | 42: public function getDevice($index) { |
- | 48: public function getDeviceType($index) { | + | 48: public function getDeviceType($index) { |
- | 54: public function getDeviceName($index) { | + | 54: public function getDeviceName($index) { |
- | 60: public function getDeviceSerial($index) { | + | 60: public function getDeviceSerial($index) { |
- | 66: public function getDevicePlatform($index) { | + | 66: public function getDevicePlatform($index) { |
- | 72: public function getDeviceByName($name, &$index) { | + | 72: public function getDeviceByName($name, &$index) { |
- | 84: public function getDeviceOS($name, $variant=1) { | + | 84: public function getDeviceOS($name, $variant=1) { |
103: public function getDeviceInterfaces($name) { | 103: public function getDeviceInterfaces($name) { | ||
110: public function getDeviceInterfacesCount($name) { | 110: public function getDeviceInterfacesCount($name) { | ||
Řádka 25: | Řádka 25: | ||
244: public function getDevicesList() { | 244: public function getDevicesList() { | ||
252: public function getDeviceInterfaceName($name, $index) { | 252: public function getDeviceInterfaceName($name, $index) { | ||
+ | </pre> | ||
+ | |||
+ | == Zdrojový kód == | ||
+ | <pre> | ||
+ | <?php | ||
+ | |||
+ | class virtlabParserEquipment { | ||
+ | private $parsed = array(); | ||
+ | private $devices = array(); | ||
+ | private $cached_devices = 0; | ||
+ | |||
+ | public function virtlabParserEquipment($file, $is_file=0, $cache_dev=1) { | ||
+ | $parser = new virtlabXmlParser(1); | ||
+ | |||
+ | if($is_file) $parser->parse($file); | ||
+ | else $parser->parse_data($file); | ||
+ | |||
+ | $this->parsed = $parser->output; | ||
+ | unset($parser); | ||
+ | |||
+ | if($cache_dev) { | ||
+ | $this->devices = $this->getDevices(); | ||
+ | $this->cached_devices = 1; | ||
+ | } | ||
+ | }//function | ||
+ | |||
+ | |||
+ | public function getDevices() { | ||
+ | if(!$this->cached_devices) { | ||
+ | $temp = $this->parsed[0]["child"]; | ||
+ | return $temp; | ||
+ | } | ||
+ | else return $this->devices; | ||
+ | }//function | ||
+ | |||
+ | public function getDevicesCount() { | ||
+ | if(!$this->cached_devices) | ||
+ | { | ||
+ | $temp = $this->getDevices(); | ||
+ | return count($temp); | ||
+ | } | ||
+ | else return count($this->devices); | ||
+ | }//function | ||
+ | |||
+ | |||
+ | public function getDevice($index) { | ||
+ | $temp = $this->getDevices(); | ||
+ | return $temp[$index]; | ||
+ | }//function | ||
+ | |||
+ | |||
+ | public function getDeviceType($index) { | ||
+ | $temp = $this->getDevice($index); | ||
+ | return $temp["attribs"]["TYPE"]; | ||
+ | }//function | ||
+ | |||
+ | |||
+ | public function getDeviceName($index) { | ||
+ | $temp = $this->getDevice($index); | ||
+ | return $temp["attribs"]["NAME"]; | ||
+ | }//function | ||
+ | |||
+ | |||
+ | public function getDeviceSerial($index) { | ||
+ | $temp = $this->getDevice($index); | ||
+ | return $temp["attribs"]["SERIAL_NUMBER"]; | ||
+ | }//function | ||
+ | |||
+ | |||
+ | public function getDevicePlatform($index) { | ||
+ | $temp = $this->getDevice($index); | ||
+ | return $temp["attribs"]["PLATFORM"]; | ||
+ | }//function | ||
+ | |||
+ | |||
+ | public function getDeviceByName($name, &$index) { | ||
+ | $result = array(); | ||
+ | for($i = $this->getDevicesCount(); $i>=0; $i--) { | ||
+ | if($name==$this->getDeviceName($i)) { | ||
+ | $index = $i; | ||
+ | return $this->getDevice($i); | ||
+ | }//if | ||
+ | }//for | ||
+ | return NULL; | ||
+ | }//function | ||
+ | |||
+ | |||
+ | public function getDeviceOS($name, $variant=1) { | ||
+ | $temp = $this->getDeviceByName($name,$idx); | ||
+ | if($temp["child"]) { | ||
+ | $temp2 = $temp["child"][0]; | ||
+ | |||
+ | if(!isset($temp2)) return NULL; | ||
+ | if($variant) { | ||
+ | //$temp3["major"] = $temp2["child"][0]["content"]; | ||
+ | //if($temp2["child"][1]) $temp3["minor"] = $temp2["child"][1]["content"]; | ||
+ | //if($temp2["child"][2]) $temp3["other"] = $temp2["child"][2]["content"]; | ||
+ | //return $temp3; | ||
+ | return $temp2["content"]; | ||
+ | } | ||
+ | else return $temp2; | ||
+ | }//if | ||
+ | else return NULL; | ||
+ | }//function | ||
+ | |||
+ | |||
+ | public function getDeviceInterfaces($name) { | ||
+ | $temp = $this->getDeviceByName($name,$idx); | ||
+ | if($temp["child"][1]["name"]!="INTERFACES") return NULL; | ||
+ | return $temp["child"][1]; | ||
+ | }//function | ||
+ | |||
+ | |||
+ | public function getDeviceInterfacesCount($name) { | ||
+ | $temp = $this->getDeviceInterfaces($name); | ||
+ | if(!$temp["child"]) return NULL; | ||
+ | return count($temp["child"]); | ||
+ | }//function | ||
+ | |||
+ | |||
+ | public function getDeviceInterface($name, $index, $variant=1) { | ||
+ | $temp = $this->getDeviceInterfaces($name); | ||
+ | if(!$temp["child"][$index]) return NULL; | ||
+ | if($variant) { | ||
+ | $temp2 = array(); | ||
+ | $temp2["technology"] = $temp["child"][$index]["attribs"]["TECHNOLOGY"]; | ||
+ | $temp2["connect_group"] = $temp["child"][$index]["attribs"]["CONNECT_GROUP"]; | ||
+ | $temp2["name"] = $temp["child"][$index]["attribs"]["NAME"]; | ||
+ | if($temp["child"][$index]["attribs"]["ETHER_TYPE"]) | ||
+ | $temp2["ether_type"] = $temp["child"][$index]["attribs"]["ETHER_TYPE"]; | ||
+ | return $temp2; | ||
+ | } | ||
+ | else return $temp["child"][$index]; | ||
+ | }//function | ||
+ | |||
+ | |||
+ | public function getDeviceInterfaceTechnology($name, $index) { | ||
+ | $temp = $this->getDeviceInterface($name, $index, 1); | ||
+ | return $temp["technology"]; | ||
+ | }//function | ||
+ | |||
+ | |||
+ | public function getDeviceInterfaceEthertype($name, $index) { | ||
+ | $temp = $this->getDeviceInterface($name, $index, 1); | ||
+ | if($temp["technology"] == "ethernet") return $temp["ether_type"]; | ||
+ | else return NULL; | ||
+ | }//function | ||
+ | |||
+ | |||
+ | public function getDeviceInterfaceMaxbps($name, $index) { | ||
+ | $temp = $this->getDeviceInterface($name, $index, 0); | ||
+ | if($temp["child"][0]["name"]!="MAX_BPS") return NULL; | ||
+ | return $temp["child"][0]["content"]; | ||
+ | }//function | ||
+ | |||
+ | |||
+ | public function getDeviceInterfaceFeatures($name, $index) { | ||
+ | $temp = $this->getDeviceInterface($name, $index, 0); | ||
+ | $temp2 = array(); | ||
+ | if(is_array($temp) && $temp["child"]) | ||
+ | foreach($temp["child"] as $hodnota) { | ||
+ | if($hodnota["name"]=="INT_FEATURE") { | ||
+ | array_push($temp2, $hodnota["content"]); | ||
+ | }//if | ||
+ | }//foreach | ||
+ | if(!$temp2[0]) return NULL; | ||
+ | else return $temp2; | ||
+ | }//function | ||
+ | |||
+ | |||
+ | public function getDeviceFeatures($name) { | ||
+ | $temp = $this->getDeviceByName($name,$idx); | ||
+ | foreach($temp["child"] as $hodnota) { | ||
+ | if($hodnota["name"]=="SPECIAL") { | ||
+ | $result = array(); | ||
+ | foreach($hodnota["child"] as $hodnota2) { | ||
+ | array_push($result, $hodnota2["content"]); | ||
+ | }//foreach | ||
+ | break; | ||
+ | }//if | ||
+ | }//foreach | ||
+ | if(!$result[0]) return NULL; | ||
+ | else return $result; | ||
+ | }//function | ||
+ | |||
+ | |||
+ | public function getDevicesFeatures() { | ||
+ | $feat = array(); | ||
+ | for($i = $this->getDevicesCount() - 1; $i >= 0; $i--) { | ||
+ | $jmeno = $this->getDeviceName($i); | ||
+ | $temp = $this->getDeviceFeatures($jmeno); | ||
+ | if(is_array($temp)) | ||
+ | foreach($temp as $value) | ||
+ | array_push($feat, $value); | ||
+ | }//for | ||
+ | return $feat; | ||
+ | } | ||
+ | |||
+ | |||
+ | public function getDevicesByType($type) { | ||
+ | $temp = $this->getDevices(); | ||
+ | $temp2 = array(); | ||
+ | foreach($temp as $hodnota) { | ||
+ | if($hodnota["attribs"]["TYPE"] == $type) | ||
+ | array_push($temp2, $hodnota["attribs"]["NAME"]); | ||
+ | } | ||
+ | if(!$temp2[0]) return NULL; | ||
+ | |||
+ | return Unique($temp2); | ||
+ | }//function | ||
+ | |||
+ | |||
+ | public function getDevicesTypes() { | ||
+ | $temp = $this->getDevices(); | ||
+ | $temp2 = array(); | ||
+ | foreach($temp as $hodnota) { | ||
+ | array_push($temp2, $hodnota["attribs"]["TYPE"]); | ||
+ | } | ||
+ | if(!$temp2[0]) return NULL; | ||
+ | |||
+ | return Unique($temp2); | ||
+ | }//function | ||
+ | |||
+ | |||
+ | public function getDeviceInterfacesFeatures($name) { | ||
+ | $feat = array(); | ||
+ | for($i = $this->getDeviceInterfacesCount($name) - 1; $i >= 0; $i--) { | ||
+ | $temp = $this->getDeviceInterfaceFeatures($name, $i); | ||
+ | if(is_array($temp)) | ||
+ | foreach($temp as $hodnota) | ||
+ | array_push($feat, $hodnota); | ||
+ | }//for | ||
+ | return $feat; | ||
+ | }//function | ||
+ | |||
+ | public function getDevicesInterfacesFeatures() { | ||
+ | $feat = array(); | ||
+ | for($i = $this->getDevicesCount() - 1; $i >= 0; $i--) { | ||
+ | $jmeno = $this->getDeviceName($i); | ||
+ | $temp = $this->getDeviceInterfacesFeatures($jmeno); | ||
+ | if(is_array($temp)) | ||
+ | foreach($temp as $hodnota) | ||
+ | array_push($feat, $hodnota); | ||
+ | }//for | ||
+ | return $feat; | ||
+ | }//function | ||
+ | |||
+ | public function getDevicesList() { | ||
+ | $temp = array(); | ||
+ | for($i = $this->getDevicesCount() - 1; $i >= 0; $i--) { | ||
+ | $temp[$i] = $this->getDeviceName($i); | ||
+ | }//for | ||
+ | return $temp; | ||
+ | }//function | ||
+ | |||
+ | public function getDeviceInterfaceName($name, $index) { | ||
+ | $temp = $this->getDeviceInterface($name, $index, 1); | ||
+ | return $temp["name"]; | ||
+ | }//function | ||
+ | }//class | ||
+ | ?> | ||
</pre> | </pre> | ||
Verze z 12:52, 21. 2. 2007
8: public function virtlabParserEquipment($file, $is_file=0, $cache_dev=1) { 24: public function getDevices() { 32: public function getDevicesCount() { 42: public function getDevice($index) { 48: public function getDeviceType($index) { 54: public function getDeviceName($index) { 60: public function getDeviceSerial($index) { 66: public function getDevicePlatform($index) { 72: public function getDeviceByName($name, &$index) { 84: public function getDeviceOS($name, $variant=1) { 103: public function getDeviceInterfaces($name) { 110: public function getDeviceInterfacesCount($name) { 117: public function getDeviceInterface($name, $index, $variant=1) { 133: public function getDeviceInterfaceTechnology($name, $index) { 139: public function getDeviceInterfaceEthertype($name, $index) { 146: public function getDeviceInterfaceMaxbps($name, $index) { 153: public function getDeviceInterfaceFeatures($name, $index) { 167: public function getDeviceFeatures($name) { 183: public function getDevicesFeatures() { 196: public function getDevicesByType($type) { 209: public function getDevicesTypes() { 221: public function getDeviceInterfacesFeatures($name) { 232: public function getDevicesInterfacesFeatures() { 244: public function getDevicesList() { 252: public function getDeviceInterfaceName($name, $index) {
Zdrojový kód
<?php class virtlabParserEquipment { private $parsed = array(); private $devices = array(); private $cached_devices = 0; public function virtlabParserEquipment($file, $is_file=0, $cache_dev=1) { $parser = new virtlabXmlParser(1); if($is_file) $parser->parse($file); else $parser->parse_data($file); $this->parsed = $parser->output; unset($parser); if($cache_dev) { $this->devices = $this->getDevices(); $this->cached_devices = 1; } }//function public function getDevices() { if(!$this->cached_devices) { $temp = $this->parsed[0]["child"]; return $temp; } else return $this->devices; }//function public function getDevicesCount() { if(!$this->cached_devices) { $temp = $this->getDevices(); return count($temp); } else return count($this->devices); }//function public function getDevice($index) { $temp = $this->getDevices(); return $temp[$index]; }//function public function getDeviceType($index) { $temp = $this->getDevice($index); return $temp["attribs"]["TYPE"]; }//function public function getDeviceName($index) { $temp = $this->getDevice($index); return $temp["attribs"]["NAME"]; }//function public function getDeviceSerial($index) { $temp = $this->getDevice($index); return $temp["attribs"]["SERIAL_NUMBER"]; }//function public function getDevicePlatform($index) { $temp = $this->getDevice($index); return $temp["attribs"]["PLATFORM"]; }//function public function getDeviceByName($name, &$index) { $result = array(); for($i = $this->getDevicesCount(); $i>=0; $i--) { if($name==$this->getDeviceName($i)) { $index = $i; return $this->getDevice($i); }//if }//for return NULL; }//function public function getDeviceOS($name, $variant=1) { $temp = $this->getDeviceByName($name,$idx); if($temp["child"]) { $temp2 = $temp["child"][0]; if(!isset($temp2)) return NULL; if($variant) { //$temp3["major"] = $temp2["child"][0]["content"]; //if($temp2["child"][1]) $temp3["minor"] = $temp2["child"][1]["content"]; //if($temp2["child"][2]) $temp3["other"] = $temp2["child"][2]["content"]; //return $temp3; return $temp2["content"]; } else return $temp2; }//if else return NULL; }//function public function getDeviceInterfaces($name) { $temp = $this->getDeviceByName($name,$idx); if($temp["child"][1]["name"]!="INTERFACES") return NULL; return $temp["child"][1]; }//function public function getDeviceInterfacesCount($name) { $temp = $this->getDeviceInterfaces($name); if(!$temp["child"]) return NULL; return count($temp["child"]); }//function public function getDeviceInterface($name, $index, $variant=1) { $temp = $this->getDeviceInterfaces($name); if(!$temp["child"][$index]) return NULL; if($variant) { $temp2 = array(); $temp2["technology"] = $temp["child"][$index]["attribs"]["TECHNOLOGY"]; $temp2["connect_group"] = $temp["child"][$index]["attribs"]["CONNECT_GROUP"]; $temp2["name"] = $temp["child"][$index]["attribs"]["NAME"]; if($temp["child"][$index]["attribs"]["ETHER_TYPE"]) $temp2["ether_type"] = $temp["child"][$index]["attribs"]["ETHER_TYPE"]; return $temp2; } else return $temp["child"][$index]; }//function public function getDeviceInterfaceTechnology($name, $index) { $temp = $this->getDeviceInterface($name, $index, 1); return $temp["technology"]; }//function public function getDeviceInterfaceEthertype($name, $index) { $temp = $this->getDeviceInterface($name, $index, 1); if($temp["technology"] == "ethernet") return $temp["ether_type"]; else return NULL; }//function public function getDeviceInterfaceMaxbps($name, $index) { $temp = $this->getDeviceInterface($name, $index, 0); if($temp["child"][0]["name"]!="MAX_BPS") return NULL; return $temp["child"][0]["content"]; }//function public function getDeviceInterfaceFeatures($name, $index) { $temp = $this->getDeviceInterface($name, $index, 0); $temp2 = array(); if(is_array($temp) && $temp["child"]) foreach($temp["child"] as $hodnota) { if($hodnota["name"]=="INT_FEATURE") { array_push($temp2, $hodnota["content"]); }//if }//foreach if(!$temp2[0]) return NULL; else return $temp2; }//function public function getDeviceFeatures($name) { $temp = $this->getDeviceByName($name,$idx); foreach($temp["child"] as $hodnota) { if($hodnota["name"]=="SPECIAL") { $result = array(); foreach($hodnota["child"] as $hodnota2) { array_push($result, $hodnota2["content"]); }//foreach break; }//if }//foreach if(!$result[0]) return NULL; else return $result; }//function public function getDevicesFeatures() { $feat = array(); for($i = $this->getDevicesCount() - 1; $i >= 0; $i--) { $jmeno = $this->getDeviceName($i); $temp = $this->getDeviceFeatures($jmeno); if(is_array($temp)) foreach($temp as $value) array_push($feat, $value); }//for return $feat; } public function getDevicesByType($type) { $temp = $this->getDevices(); $temp2 = array(); foreach($temp as $hodnota) { if($hodnota["attribs"]["TYPE"] == $type) array_push($temp2, $hodnota["attribs"]["NAME"]); } if(!$temp2[0]) return NULL; return Unique($temp2); }//function public function getDevicesTypes() { $temp = $this->getDevices(); $temp2 = array(); foreach($temp as $hodnota) { array_push($temp2, $hodnota["attribs"]["TYPE"]); } if(!$temp2[0]) return NULL; return Unique($temp2); }//function public function getDeviceInterfacesFeatures($name) { $feat = array(); for($i = $this->getDeviceInterfacesCount($name) - 1; $i >= 0; $i--) { $temp = $this->getDeviceInterfaceFeatures($name, $i); if(is_array($temp)) foreach($temp as $hodnota) array_push($feat, $hodnota); }//for return $feat; }//function public function getDevicesInterfacesFeatures() { $feat = array(); for($i = $this->getDevicesCount() - 1; $i >= 0; $i--) { $jmeno = $this->getDeviceName($i); $temp = $this->getDeviceInterfacesFeatures($jmeno); if(is_array($temp)) foreach($temp as $hodnota) array_push($feat, $hodnota); }//for return $feat; }//function public function getDevicesList() { $temp = array(); for($i = $this->getDevicesCount() - 1; $i >= 0; $i--) { $temp[$i] = $this->getDeviceName($i); }//for return $temp; }//function public function getDeviceInterfaceName($name, $index) { $temp = $this->getDeviceInterface($name, $index, 1); return $temp["name"]; }//function }//class ?>
Kategorie: PHP | Třída | Diplomová práce | Jan Vavříček