Rev 3037 | Blame | Compare with Previous | Last modification | View Log
<?php
/**
* System TO class
*
* PHP version 5
*
* @category PHP
* @package PSI_TO
* @author Michael Cramer <BigMichi1@users.sourceforge.net>
* @copyright 2009 phpSysInfo
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License version 2, or (at your option) any later version
* @version SVN: $Id: class.System.inc.php 255 2009-06-17 13:39:41Z bigmichi1 $
* @link http://phpsysinfo.sourceforge.net
*/
/**
* System TO class
*
* @category PHP
* @package PSI_TO
* @author Michael Cramer <BigMichi1@users.sourceforge.net>
* @copyright 2009 phpSysInfo
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License version 2, or (at your option) any later version
* @version Release: 3.0
* @link http://phpsysinfo.sourceforge.net
*/
class System
{
/**
* name of the host where phpSysInfo runs
*
* @var string
*/
private $_hostname = "localhost";
/**
* ip of the host where phpSysInfo runs
*
* @var string
*/
private $_ip = "127.0.0.1";
/**
* detailed information about the kernel
*
* @var string
*/
private $_kernel = "Unknown";
/**
* name of the distribution
*
* @var string
*/
private $_distribution = "Unknown";
/**
* icon of the distribution (must be available in phpSysInfo)
*
* @var string
*/
private $_distributionIcon = "unknown.png";
/**
* detailed Information about the machine name
*
* @var string
*/
private $_machine = "";
/**
* time in sec how long the system is running
*
* @var int
*/
private $_uptime = 0;
/**
* count of users that are currently logged in
*
* @var int
*/
private $_users = 0;
/**
* load of the system
*
* @var string
*/
private $_load = "";
/**
* load of the system in percent (all cpus, if more than one)
*
* @var int
*/
private $_loadPercent = null;
/**
* array with cpu devices
*
* @see CpuDevice
*
* @var array
*/
private $_cpus = array();
/**
* array with network devices
*
* @see NetDevice
*
* @var array
*/
private $_netDevices = array();
/**
* array with pci devices
*
* @see HWDevice
*
* @var array
*/
private $_pciDevices = array();
/**
* array with ide devices
*
* @see HWDevice
*
* @var array
*/
private $_ideDevices = array();
/**
* array with scsi devices
*
* @see HWDevice
*
* @var array
*/
private $_scsiDevices = array();
/**
* array with usb devices
*
* @see HWDevice
*
* @var array
*/
private $_usbDevices = array();
/**
* array with thunderbolt devices
*
* @see HWDevice
*
* @var array
*/
private $_tbDevices = array();
/**
* array with I2C devices
*
* @see HWDevice
*
* @var array
*/
private $_i2cDevices = array();
/**
* array with NVMe devices
*
* @see HWDevice
*
* @var array
*/
private $_nvmeDevices = array();
/**
* array with Mem devices
*
* @see HWDevice
*
* @var array
*/
private $_memDevices = array();
/**
* array with disk devices
*
* @see DiskDevice
*
* @var array
*/
private $_diskDevices = array();
/**
* free memory in bytes
*
* @var int
*/
private $_memFree = 0;
/**
* total memory in bytes
*
* @var int
*/
private $_memTotal = 0;
/**
* used memory in bytes
*
* @var int
*/
private $_memUsed = 0;
/**
* used memory by applications in bytes
*
* @var int
*/
private $_memApplication = null;
/**
* used memory for buffers in bytes
*
* @var int
*/
private $_memBuffer = null;
/**
* used memory for cache in bytes
*
* @var int
*/
private $_memCache = null;
/**
* array with swap devices
*
* @see DiskDevice
*
* @var array
*/
private $_swapDevices = array();
/**
* array of types of processes
*
* @var array
*/
private $_processes = array();
/**
* array with Virtualizer information
*
* @var array
*/
private $_virtualizer = array();
/**
* operating system type
*
* @var string
*/
private $_OS = "";
/**
* remove duplicate Entries and Count
*
* @param array $arrDev list of HWDevices
*
* @see HWDevice
*
* @return array
*/
public static function removeDupsAndCount($arrDev)
{
$result = array();
foreach ($arrDev as $dev) {
if (count($result) === 0) {
array_push($result, $dev);
} else {
$found = false;
foreach ($result as $tmp) {
if ($dev->equals($tmp)) {
$tmp->setCount($tmp->getCount() + 1);
$found = true;
break;
}
}
if (!$found) {
array_push($result, $dev);
}
}
}
return $result;
}
/**
* return percent of used memory
*
* @see System::_memUsed
* @see System::_memTotal
*
* @return int
*/
public function getMemPercentUsed()
{
if ($this->_memTotal > 0) {
return round($this->_memUsed / $this->_memTotal * 100);
} else {
return 0;
}
}
/**
* return percent of used memory for applications
*
* @see System::_memApplication
* @see System::_memTotal
*
* @return int
*/
public function getMemPercentApplication()
{
if ($this->_memApplication !== null) {
if (($this->_memApplication > 0) && ($this->_memTotal > 0)) {
return round($this->_memApplication / $this->_memTotal * 100);
} else {
return 0;
}
} else {
return null;
}
}
/**
* return percent of used memory for cache
*
* @see System::_memCache
* @see System::_memTotal
*
* @return int
*/
public function getMemPercentCache()
{
if ($this->_memCache !== null) {
if (($this->_memCache > 0) && ($this->_memTotal > 0)) {
if (($this->_memApplication !== null) && ($this->_memApplication > 0)) {
return round(($this->_memCache + $this->_memApplication) / $this->_memTotal * 100) - $this->getMemPercentApplication();
} else {
return round($this->_memCache / $this->_memTotal * 100);
}
} else {
return 0;
}
} else {
return null;
}
}
/**
* return percent of used memory for buffer
*
* @see System::_memBuffer
* @see System::_memTotal
*
* @return int
*/
public function getMemPercentBuffer()
{
if ($this->_memBuffer !== null) {
if (($this->_memBuffer > 0) && ($this->_memTotal > 0)) {
if (($this->_memCache !== null) && ($this->_memCache > 0)) {
if (($this->_memApplication !== null) && ($this->_memApplication > 0)) {
return round(($this->_memBuffer + $this->_memApplication + $this->_memCache) / $this->_memTotal * 100) - $this->getMemPercentApplication() - $this->getMemPercentCache();
} else {
return round(($this->_memBuffer + $this->_memCache) / $this->_memTotal * 100) - $this->getMemPercentCache();
}
} elseif (($this->_memApplication !== null) && ($this->_memApplication > 0)) {
return round(($this->_memBuffer + $this->_memApplication) / $this->_memTotal * 100) - $this->getMemPercentApplication();
} else {
return round($this->_memBuffer / $this->_memTotal * 100);
}
} else {
return 0;
}
} else {
return null;
}
}
/**
* Returns total free swap space
*
* @see System::_swapDevices
* @see DiskDevice::getFree()
*
* @return int
*/
public function getSwapFree()
{
if (count($this->_swapDevices) > 0) {
$free = 0;
foreach ($this->_swapDevices as $dev) {
$free += $dev->getFree();
}
return $free;
}
return null;
}
/**
* Returns total swap space
*
* @see System::_swapDevices
* @see DiskDevice::getTotal()
*
* @return int
*/
public function getSwapTotal()
{
if (count($this->_swapDevices) > 0) {
$total = 0;
foreach ($this->_swapDevices as $dev) {
$total += $dev->getTotal();
}
return $total;
} else {
return null;
}
}
/**
* Returns total used swap space
*
* @see System::_swapDevices
* @see DiskDevice::getUsed()
*
* @return int
*/
public function getSwapUsed()
{
if (count($this->_swapDevices) > 0) {
$used = 0;
foreach ($this->_swapDevices as $dev) {
$used += $dev->getUsed();
}
return $used;
} else {
return null;
}
}
/**
* return percent of total swap space used
*
* @see System::getSwapUsed()
* @see System::getSwapTotal()
*
* @return int
*/
public function getSwapPercentUsed()
{
if ($this->getSwapTotal() !== null) {
if ($this->getSwapTotal() > 0) {
return round($this->getSwapUsed() / $this->getSwapTotal() * 100);
} else {
return 0;
}
} else {
return null;
}
}
/**
* Returns $_distribution.
*
* @see System::$_distribution
*
* @return String
*/
public function getDistribution()
{
return $this->_distribution;
}
/**
* Sets $_distribution.
*
* @param String $distribution distributionname
*
* @see System::$_distribution
*
* @return void
*/
public function setDistribution($distribution)
{
$this->_distribution = $distribution;
}
/**
* Returns $_distributionIcon.
*
* @see System::$_distributionIcon
*
* @return String
*/
public function getDistributionIcon()
{
return $this->_distributionIcon;
}
/**
* Sets $_distributionIcon.
*
* @param String $distributionIcon distribution icon
*
* @see System::$_distributionIcon
*
* @return void
*/
public function setDistributionIcon($distributionIcon)
{
$this->_distributionIcon = $distributionIcon;
}
/**
* Returns $_hostname.
*
* @see System::$_hostname
*
* @return String
*/
public function getHostname()
{
return $this->_hostname;
}
/**
* Sets $_hostname.
*
* @param String $hostname hostname
*
* @see System::$_hostname
*
* @return void
*/
public function setHostname($hostname)
{
$this->_hostname = $hostname;
}
/**
* Returns $_ip.
*
* @see System::$_ip
*
* @return String
*/
public function getIp()
{
return $this->_ip;
}
/**
* Sets $_ip.
*
* @param String $ip IP
*
* @see System::$_ip
*
* @return void
*/
public function setIp($ip)
{
$this->_ip = $ip;
}
/**
* Returns $_kernel.
*
* @see System::$_kernel
*
* @return String
*/
public function getKernel()
{
return $this->_kernel;
}
/**
* Sets $_kernel.
*
* @param String $kernel kernelname
*
* @see System::$_kernel
*
* @return void
*/
public function setKernel($kernel)
{
$this->_kernel = $kernel;
}
/**
* Returns $_load.
*
* @see System::$_load
*
* @return String
*/
public function getLoad()
{
return $this->_load;
}
/**
* Sets $_load.
*
* @param String $load current system load
*
* @see System::$_load
*
* @return void
*/
public function setLoad($load)
{
$this->_load = $load;
}
/**
* Returns $_loadPercent.
*
* @see System::$_loadPercent
*
* @return int
*/
public function getLoadPercent()
{
return $this->_loadPercent;
}
/**
* Sets $_loadPercent.
*
* @param int $loadPercent load percent
*
* @see System::$_loadPercent
*
* @return void
*/
public function setLoadPercent($loadPercent)
{
$this->_loadPercent = $loadPercent;
}
/**
* Returns $_machine.
*
* @see System::$_machine
*
* @return String
*/
public function getMachine()
{
return $this->_machine;
}
/**
* Sets $_machine.
*
* @param string $machine machine
*
* @see System::$_machine
*
* @return void
*/
public function setMachine($machine)
{
$this->_machine = $machine;
}
/**
* Returns $_uptime.
*
* @see System::$_uptime
*
* @return int
*/
public function getUptime()
{
return $this->_uptime;
}
/**
* Sets $_uptime.
*
* @param integer $uptime uptime
*
* @see System::$_uptime
*
* @return void
*/
public function setUptime($uptime)
{
$this->_uptime = $uptime;
}
/**
* Returns $_users.
*
* @see System::$_users
*
* @return int
*/
public function getUsers()
{
return $this->_users;
}
/**
* Sets $_users.
*
* @param int $users user count
*
* @see System::$_users
*
* @return void
*/
public function setUsers($users)
{
$this->_users = $users;
}
/**
* Returns $_cpus.
*
* @see System::$_cpus
*
* @return array
*/
public function getCpus()
{
return $this->_cpus;
}
/**
* Sets $_cpus.
*
* @param CpuDevice $cpus cpu device
*
* @see System::$_cpus
* @see CpuDevice
*
* @return void
*/
public function setCpus($cpus)
{
array_push($this->_cpus, $cpus);
}
/**
* Returns $_netDevices.
*
* @see System::$_netDevices
*
* @return array
*/
public function getNetDevices()
{
if (defined('PSI_SORT_NETWORK_INTERFACES_LIST') && PSI_SORT_NETWORK_INTERFACES_LIST) {
usort($this->_netDevices, array('CommonFunctions', 'name_natural_compare'));
}
return $this->_netDevices;
}
/**
* Sets $_netDevices.
*
* @param NetDevice $netDevices network device
*
* @see System::$_netDevices
* @see NetDevice
*
* @return void
*/
public function setNetDevices($netDevices)
{
array_push($this->_netDevices, $netDevices);
}
/**
* Returns $_pciDevices.
*
* @see System::$_pciDevices
*
* @return array
*/
public function getPciDevices()
{
return $this->_pciDevices;
}
/**
* Sets $_pciDevices.
*
* @param HWDevice $pciDevices pci device
*
* @see System::$_pciDevices
* @see HWDevice
*
* @return void
*/
public function setPciDevices($pciDevices)
{
array_push($this->_pciDevices, $pciDevices);
}
/**
* Returns $_ideDevices.
*
* @see System::$_ideDevices
*
* @return array
*/
public function getIdeDevices()
{
return $this->_ideDevices;
}
/**
* Sets $_ideDevices.
*
* @param HWDevice $ideDevices ide device
*
* @see System::$_ideDevices
* @see HWDevice
*
* @return void
*/
public function setIdeDevices($ideDevices)
{
array_push($this->_ideDevices, $ideDevices);
}
/**
* Returns $_scsiDevices.
*
* @see System::$_scsiDevices
*
* @return array
*/
public function getScsiDevices()
{
return $this->_scsiDevices;
}
/**
* Sets $_scsiDevices.
*
* @param HWDevice $scsiDevices scsi devices
*
* @see System::$_scsiDevices
* @see HWDevice
*
* @return void
*/
public function setScsiDevices($scsiDevices)
{
array_push($this->_scsiDevices, $scsiDevices);
}
/**
* Returns $_usbDevices.
*
* @see System::$_usbDevices
*
* @return array
*/
public function getUsbDevices()
{
return $this->_usbDevices;
}
/**
* Sets $_usbDevices.
*
* @param HWDevice $usbDevices usb device
*
* @see System::$_usbDevices
* @see HWDevice
*
* @return void
*/
public function setUsbDevices($usbDevices)
{
array_push($this->_usbDevices, $usbDevices);
}
/**
* Returns $_tbDevices.
*
* @see System::$_tbDevices
*
* @return array
*/
public function getTbDevices()
{
return $this->_tbDevices;
}
/**
* Sets $_tbDevices.
*
* @param HWDevice $tbDevices thunderbolt device
*
* @see System::$_tbDevices
* @see HWDevice
*
* @return void
*/
public function setTbDevices($tbDevices)
{
array_push($this->_tbDevices, $tbDevices);
}
/**
* Returns $_i2cDevices.
*
* @see System::$_i2cDevices
*
* @return array
*/
public function getI2cDevices()
{
return $this->_i2cDevices;
}
/**
* Sets $_i2cDevices.
*
* @param HWDevice $i2cDevices I2C device
*
* @see System::$_i2cDevices
* @see HWDevice
*
* @return void
*/
public function setI2cDevices($i2cDevices)
{
array_push($this->_i2cDevices, $i2cDevices);
}
/**
* Returns $_nvmeDevices.
*
* @see System::$_nvmeDevices
*
* @return array
*/
public function getNvmeDevices()
{
return $this->_nvmeDevices;
}
/**
* Sets $_nvmeDevices.
*
* @param HWDevice $nvmeDevices NVMe device
*
* @see System::$_nvmeDevices
* @see HWDevice
*
* @return void
*/
public function setNvmeDevices($nvmeDevices)
{
array_push($this->_nvmeDevices, $nvmeDevices);
}
/**
* Returns $_memDevices.
*
* @see System::$_memDevices
*
* @return array
*/
public function getMemDevices()
{
return $this->_memDevices;
}
/**
* Sets $_memDevices.
*
* @param HWDevice $memDevices mem device
*
* @see System::$_memDevices
* @see HWDevice
*
* @return void
*/
public function setMemDevices($memDevices)
{
array_push($this->_memDevices, $memDevices);
}
/**
* Returns $_diskDevices.
*
* @see System::$_diskDevices
*
* @return array
*/
public function getDiskDevices()
{
return $this->_diskDevices;
}
/**
* Sets $_diskDevices.
*
* @param DiskDevice $diskDevices disk device
*
* @see System::$_diskDevices
* @see DiskDevice
*
* @return void
*/
public function setDiskDevices($diskDevices)
{
array_push($this->_diskDevices, $diskDevices);
}
/**
* Returns $_memApplication.
*
* @see System::$_memApplication
*
* @return int
*/
public function getMemApplication()
{
return $this->_memApplication;
}
/**
* Sets $_memApplication.
*
* @param int $memApplication application memory
*
* @see System::$_memApplication
*
* @return void
*/
public function setMemApplication($memApplication)
{
$this->_memApplication = $memApplication;
}
/**
* Returns $_memBuffer.
*
* @see System::$_memBuffer
*
* @return int
*/
public function getMemBuffer()
{
return $this->_memBuffer;
}
/**
* Sets $_memBuffer.
*
* @param int $memBuffer buffer memory
*
* @see System::$_memBuffer
*
* @return void
*/
public function setMemBuffer($memBuffer)
{
$this->_memBuffer = $memBuffer;
}
/**
* Returns $_memCache.
*
* @see System::$_memCache
*
* @return int
*/
public function getMemCache()
{
return $this->_memCache;
}
/**
* Sets $_memCache.
*
* @param int $memCache cache memory
*
* @see System::$_memCache
*
* @return void
*/
public function setMemCache($memCache)
{
$this->_memCache = $memCache;
}
/**
* Returns $_memFree.
*
* @see System::$_memFree
*
* @return int
*/
public function getMemFree()
{
return $this->_memFree;
}
/**
* Sets $_memFree.
*
* @param int $memFree free memory
*
* @see System::$_memFree
*
* @return void
*/
public function setMemFree($memFree)
{
$this->_memFree = $memFree;
}
/**
* Returns $_memTotal.
*
* @see System::$_memTotal
*
* @return int
*/
public function getMemTotal()
{
return $this->_memTotal;
}
/**
* Sets $_memTotal.
*
* @param int $memTotal total memory
*
* @see System::$_memTotal
*
* @return void
*/
public function setMemTotal($memTotal)
{
$this->_memTotal = $memTotal;
}
/**
* Returns $_memUsed.
*
* @see System::$_memUsed
*
* @return int
*/
public function getMemUsed()
{
return $this->_memUsed;
}
/**
* Sets $_memUsed.
*
* @param int $memUsed used memory
*
* @see System::$_memUsed
*
* @return void
*/
public function setMemUsed($memUsed)
{
$this->_memUsed = $memUsed;
}
/**
* Returns $_swapDevices.
*
* @see System::$_swapDevices
*
* @return array
*/
public function getSwapDevices()
{
return $this->_swapDevices;
}
/**
* Sets $_swapDevices.
*
* @param DiskDevice $swapDevices swap devices
*
* @see System::$_swapDevices
* @see DiskDevice
*
* @return void
*/
public function setSwapDevices($swapDevices)
{
array_push($this->_swapDevices, $swapDevices);
}
/**
* Returns $_processes.
*
* @see System::$_processes
*
* @return array
*/
public function getProcesses()
{
return $this->_processes;
}
/**
* Sets $_proceses.
*
* @param $processes array of types of processes
*
* @see System::$_processes
*
* @return void
*/
public function setProcesses($processes)
{
$this->_processes = $processes;
/*
foreach ($processes as $proc_type=>$proc_count) {
$this->_processes[$proc_type] = $proc_count;
}
*/
}
/**
* Returns $_virtualizer.
*
* @see System::$_virtualizer
*
* @return array
*/
public function getVirtualizer()
{
return $this->_virtualizer;
}
/**
* Sets $_virtualizer.
*
* @param String $virtualizer virtualizername
* @param Bool|String $value true, false or virtualizername to replace
*
* @see System::$_virtualizer
*
* @return void
*/
public function setVirtualizer($virtualizer, $value = true)
{
if (!isset($this->_virtualizer[$virtualizer])) {
if (is_bool($value)) {
$this->_virtualizer[$virtualizer] = $value;
} else { // replace the virtualizer with another
$this->_virtualizer[$virtualizer] = true;
$this->_virtualizer[$value] = false;
}
}
}
/**
* Returns $_OS.
*
* @see System::$_OS
*
* @return string
*/
public function getOS()
{
return $this->_OS;
}
/**
* Sets $_OS.
*
* @param $os operating system type
*
* @see System::$_OS
*
* @return void
*/
public function setOS($OS)
{
$this->_OS = $OS;
}
}