/usr/share/php/Horde/HashTable/Memory.php is in php-horde-hashtable 1.2.0-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 | <?php
/**
* Copyright 2013-2014 Horde LLC (http://www.horde.org/)
*
* See the enclosed file COPYING for license information (LGPL). If you
* did not receive this file, see http://www.horde.org/licenses/lgpl21.
*
* @category Horde
* @copyright 2013-2014 Horde LLC
* @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
* @package HashTable
*/
/**
* Implementation of HashTable within PHP memory.
*
* @author Michael Slusarz <slusarz@horde.org>
* @category Horde
* @copyright 2013-2014 Horde LLC
* @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
* @package HashTable
*/
class Horde_HashTable_Memory
extends Horde_HashTable_Base
implements Horde_HashTable_Lock
{
/**
* Data.
*
* @var array
*/
protected $_data = array();
/**
*/
protected function _delete($keys)
{
foreach ($keys as $val) {
unset($this->_data[$val]);
}
return true;
}
/**
*/
protected function _exists($keys)
{
$curr = time();
$out = array();
foreach ($keys as $val) {
if (isset($this->_data[$val]) &&
(!isset($this->_data[$val]['l']) ||
($this->_data[$val]['l'] >= $curr))) {
$out[$val] = true;
} else {
$out[$val] = false;
$this->delete($val);
}
}
return $out;
}
/**
*/
protected function _get($keys)
{
$exists = $this->_exists($keys);
$out = array();
foreach ($keys as $val) {
$out[$val] = $exists[$val]
? $this->_data[$val]['v']
: false;
}
return $out;
}
/**
*/
protected function _set($key, $val, $opts)
{
if (!empty($opts['replace'])) {
$exists = $this->_exists(array($key));
if (!$exists[$key]) {
return false;
}
}
$this->_data[$key] = array_filter(array(
'l' => empty($opts['expire']) ? null : (time() + $opts['expire']),
'v' => $val
));
return true;
}
/**
*/
public function clear()
{
$this->_data = array();
}
/**
*/
public function lock($key)
{
}
/**
*/
public function unlock($key)
{
}
}
|