source: trunk/www/model/history.php@ 68

Last change on this file since 68 was 54, checked in by george, 16 years ago
  • Přeorganizování složek a rozhození souborů do podsložek model, common, design a style.
  • Upraveno: Rozpracované oddělení serverů na více světů.
File size: 2.1 KB
Line 
1<?php
2
3class History extends Module
4{
5 var $ServerId;
6 var $MeasureId;
7 var $Database;
8 var $PeriodList;
9 var $Resolution = 1000;
10
11 function __construct($Database, $ServerId, $MeasureId)
12 {
13 $this->Database = $Database;
14 $this->ServerId = $ServerId;
15 $this->MeasureId = $MeasureId;
16 $this->PeriodList = array(
17 array('Name' => 'Hodina', 'Period' => 60 * 60),
18 array('Name' => 'Den', 'Period' => 60 * 60 * 24),
19 array('Name' => 'Týden', 'Period' => 60 * 60 * 24 * 7),
20 array('Name' => 'Měsíc', 'Period' => 60 * 60 * 24 * 30),
21 array('Name' => 'Rok', 'Period' => 60 * 60 * 24 * 365),
22 array('Name' => 'Desetiletí', 'Period' => 60 * 60 * 24 * 3650),
23 );
24 }
25
26 function AddValue($Value)
27 {
28 $Time = time();
29 foreach($this->PeriodList as $Index => $Period)
30 {
31 $Resolution = $this->Resolution;
32 if($Resolution > ($Period['Period'] / 60)) $Resolution = $Period['Period'] / 60;
33 $PeriodTime = floor(floor($Time * $Resolution / $Period['Period']) * $Period['Period'] / $Resolution);
34 $PeriodTimeStart = floor((floor($Time / $Period['Period'] * $Resolution) - 1) * $Period['Period'] / $Resolution);
35 //echo($PeriodTimeStart.' - '.$PeriodTime.' = '.($PeriodTime - $PeriodTimeStart).', ');
36 if($Index == 0)
37 {
38 $ValueMinimum = $Value;
39 $ValueAverage = $Value;
40 $ValueMaximum = $Value;
41 } else
42 {
43 $DbResult = $this->Database->query('SELECT MIN(`Minimum`), AVG(`Average`), MAX(`Maximum`) FROM `History` WHERE `Server`='.$this->ServerId.' AND `Measure`='.$this->MeasureId.' AND `Period`='.($Index - 1).' AND `Time` > '.$PeriodTimeStart.' AND `Time` <= '.$PeriodTime);
44 $Value = $DbResult->fetch_row();
45 $ValueMinimum = $Value[0];
46 $ValueAverage = $Value[1];
47 $ValueMaximum = $Value[2];
48 }
49 $this->Database->replace('History', array('Time' => $PeriodTime, 'Period' => $Index, 'Server' => $this->ServerId, 'Measure' => $this->MeasureId, 'Minimum' => $ValueMinimum, 'Average' => $ValueAverage, 'Maximum' => $ValueMaximum));
50 }
51 // echo("\n");
52 }
53
54 function GetImage($Width, $Height)
55 {
56
57 }
58}
59
60?>
Note: See TracBrowser for help on using the repository browser.