Blame view

php/classes/TimeTableCacheIntervalObject.php 2.79 KB
d18b535d   elena   catalog draft + c...
1
<?php
2f1cd444   Benjamin Renard   Apply convention ...
2
class TimeTableCacheIntervalObject
d18b535d   elena   catalog draft + c...
3
{
ba9b1b7d   Benjamin Renard   Rework of TT and ...
4
	protected $cacheObject = NULL;
d18b535d   elena   catalog draft + c...
5
6
7
8
9
10
11
	protected $id         = -1;
	protected $index      = -1;
	protected $start      = 0;
	protected $stop       = 0;
	protected $isNew      = false;
	protected $isModified = false;

ba9b1b7d   Benjamin Renard   Rework of TT and ...
12
13
	function __construct($cacheObject, $id, $index = -1) {
		$this->cacheObject = $cacheObject;
d18b535d   elena   catalog draft + c...
14
15
16
17
18
19
20
		$this->id = $id;
		$this->index = $index;
	}

	public function getId() {
		return $this->id;
	}
5446b8f0   Benjamin Renard   Move CacheTools i...
21

d18b535d   elena   catalog draft + c...
22
23
24
	public function getIndex() {
		return $this->index;
	}
5446b8f0   Benjamin Renard   Move CacheTools i...
25

d18b535d   elena   catalog draft + c...
26
27
28
29
30
31
32
	public function setIndex($index) {
		$this->index = $index;
	}

	public function getStartToStamp() {
		return $this->start;
	}
5446b8f0   Benjamin Renard   Move CacheTools i...
33

d18b535d   elena   catalog draft + c...
34
	public function getStartToISO() {
5446b8f0   Benjamin Renard   Move CacheTools i...
35
		return TimeUtils::stamp2iso($this->start);
d18b535d   elena   catalog draft + c...
36
37
38
39
40
	}

	public function setStartFromStamp($stamp) {
		$this->start = $stamp;
	}
5446b8f0   Benjamin Renard   Move CacheTools i...
41

d18b535d   elena   catalog draft + c...
42
	public function setStartFromISO($iso) {
5446b8f0   Benjamin Renard   Move CacheTools i...
43
		$this->start = TimeUtils::iso2stamp($iso);
d18b535d   elena   catalog draft + c...
44
45
46
47
48
	}

	public function getStopToStamp() {
		return $this->stop;
	}
5446b8f0   Benjamin Renard   Move CacheTools i...
49

d18b535d   elena   catalog draft + c...
50
	public function getStopToISO() {
5446b8f0   Benjamin Renard   Move CacheTools i...
51
		return TimeUtils::stamp2iso($this->stop);
d18b535d   elena   catalog draft + c...
52
53
54
55
56
	}

	public function setStopFromStamp($stamp) {
		$this->stop = $stamp;
	}
5446b8f0   Benjamin Renard   Move CacheTools i...
57

d18b535d   elena   catalog draft + c...
58
	public function setStopFromISO($iso) {
5446b8f0   Benjamin Renard   Move CacheTools i...
59
		$this->stop = TimeUtils::iso2stamp($iso);
d18b535d   elena   catalog draft + c...
60
	}
5446b8f0   Benjamin Renard   Move CacheTools i...
61

d18b535d   elena   catalog draft + c...
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
	public function getDuration() {
		return ($this->stop-$this->start);
	}

	public function isModified() {
		return $this->isModified;
	}

	public function setIsModified($isModified) {
		$this->isModified = $isModified;
	}

	public function isNew() {
		return $this->isNew;
	}

	public function setIsNew($isNew) {
		$this->isNew = $isNew;
	}
5446b8f0   Benjamin Renard   Move CacheTools i...
81

d18b535d   elena   catalog draft + c...
82
83
84
85
86
87
88
89
90
91
	public function toArray() {
		$result = array(
			"cacheId" => $this->id,
			"start"   => $this->getStartToISO(),
			"stop"    => $this->getStopToISO()
		);
		if ($this->isNew)
			$result["isNew"] = true;
		if ($this->isModified)
			$result["isModified"] = true;
5446b8f0   Benjamin Renard   Move CacheTools i...
92

d18b535d   elena   catalog draft + c...
93
94
95
		return $result;
	}

42e2e019   Benjamin Renard   Next step for cac...
96
97
98
99
100
101
102
103
104
	public function modifyInterval($data) {
		if (array_key_exists('start', $data)) {
			$this->setStartFromISO($data->{'start'});
			$this->setIsModified(true);
		}
		if (array_key_exists('stop', $data)) {
			$this->setStopFromISO($data->{'stop'});
			$this->setIsModified(true);
		}
5446b8f0   Benjamin Renard   Move CacheTools i...
105

42e2e019   Benjamin Renard   Next step for cac...
106
107
		return $this->isModified();
	}
5446b8f0   Benjamin Renard   Move CacheTools i...
108

d18b535d   elena   catalog draft + c...
109
110
111
	public function writeBin($handle) {
		fwrite($handle,pack('L6',$this->id,$this->index,$this->start,$this->stop,$this->isNew,$this->isModified));
	}
5446b8f0   Benjamin Renard   Move CacheTools i...
112

d18b535d   elena   catalog draft + c...
113
114
115
116
117
118
119
120
121
	public function loadBin($handle) {
		$array = unpack('L6int',fread($handle,6*4));
		$this->id         = $array['int1'];
		$this->index      = $array['int2'];
		$this->start      = $array['int3'];
		$this->stop       = $array['int4'];
		$this->isNew      = $array['int5'];
		$this->isModified = $array['int6'];
	}
5446b8f0   Benjamin Renard   Move CacheTools i...
122

d18b535d   elena   catalog draft + c...
123
	public function dump() {
42e2e019   Benjamin Renard   Next step for cac...
124
		echo " => Interval : id = ".$this->id.", index = ".$this->index.", start = ".TimeUtils::stamp2iso($this->start).", stop = ".TimeUtils::stamp2iso($this->stop).", isNew = ".$this->isNew.", isModified = ".$this->isModified.PHP_EOL;
d18b535d   elena   catalog draft + c...
125
126
	}
}
e57cb025   Benjamin Renard   Fix most of error...
127
?>