source: trunk/www/Application/Model/Platform.php@ 75

Last change on this file since 75 was 75, checked in by george, 16 years ago
  • Přidáno: Podpora pro překlad rozhraní.

¨

File size: 2.5 KB
Line 
1<?php
2
3class Platform extends Model
4{
5 var $Id;
6
7 function __construct($Database)
8 {
9 $this->Database = $Database;
10 }
11
12 function MemoryUsage()
13 {
14 $Output = array();
15 exec('free -b', $Output);
16 $Row = $Output[2];
17 while(strpos($Row, ' ') !== false) $Row = str_replace(' ', ' ', $Row);
18 $RowParts = explode(' ', $Row);
19 $Row = $Output[3];
20 while(strpos($Row, ' ') !== false) $Row = str_replace(' ', ' ', $Row);
21 $RowParts2 = explode(' ', $Row);
22 return($RowParts[2] + $RowParts2[2]);
23 }
24
25 function MemoryTotal()
26 {
27 $Output = array();
28 exec('free -b', $Output);
29 $Row = $Output[1];
30 while(strpos($Row, ' ') !== false) $Row = str_replace(' ', ' ', $Row);
31 $RowParts = explode(' ', $Row);
32 return($RowParts[1]);
33 }
34
35 function SystemUptime()
36 {
37 $File = fopen('/proc/uptime', 'r');
38 $Uptime = fgets($File);
39 fclose($File);
40 $UptimeParts = explode(' ', $Uptime);
41 return($UptimeParts[0]);
42 }
43
44 function State()
45 {
46 global $Config;
47
48 $State = array();
49 $State['MemoryUsed'] = $this->MemoryUsage();
50 $State['MemoryTotal'] = $this->MemoryTotal();
51 $State['Uptime'] = $this->SystemUptime();
52 $DbResult = $this->Database->query('SELECT COUNT(*) FROM `Server`');
53 $DbRow = $DbResult->fetch_row();
54 $State['ServerCount'] = $DbRow[0];
55 $DbResult = $this->Database->query('SELECT COUNT(*) FROM `Server` WHERE `Online` = 1');
56 $DbRow = $DbResult->fetch_row();
57 $State['ServerOnlineCount'] = $DbRow[0];
58 $DbResult = $this->Database->query('SELECT COUNT(*) FROM `User`');
59 $DbRow = $DbResult->fetch_row();
60 $State['UserCount'] = $DbRow[0];
61 $DbResult = $this->Database->query('SELECT COUNT(*) FROM `Emulator`');
62 $DbRow = $DbResult->fetch_row();
63 $State['EmulatorCount'] = $DbRow[0];
64 $DbResult = $this->Database->query('SELECT COUNT(*) FROM `Backup`');
65 $DbRow = $DbResult->fetch_row();
66 $State['BackupCount'] = $DbRow[0];
67 $DbResult = $this->Database->query('SELECT COUNT(*) FROM `Task`');
68 $DbRow = $DbResult->fetch_row();
69 $State['TaskCount'] = $DbRow[0];
70 $DbResult = $this->Database->query('SELECT COUNT(*) FROM `Database`');
71 $DbRow = $DbResult->fetch_row();
72 $State['DatabaseCount'] = $DbRow[0];
73 $DbResult = $this->Database->query('SELECT COUNT(*) FROM `Task` WHERE `State` != 2');
74 $DbRow = $DbResult->fetch_row();
75 $State['TaskQueued'] = $DbRow[0];
76 $State['ServerMaxCount'] = $Config['MaxServerCount'];
77 return($State);
78 }
79}
80
81?>
Note: See TracBrowser for help on using the repository browser.