* @link http://www.pradosoft.com/ * @copyright Copyright © 2005-2014 PradoSoft * @license http://www.pradosoft.com/license/ * @package Prado\Data\SqlMap\DataMapper */ /** * First-in-First-out cache implementation, removes * object that was first added when the cache is full. * * @author Wei Zhuo * @package Prado\Data\SqlMap\DataMapper * @since 3.1 */ class TSqlMapFifoCache extends TSqlMapCache { /** * @return mixed Gets a cached object with the specified key. */ public function get($key) { return $this->_cache->itemAt($key); } /** * Stores a value identified by a key into cache. * The expire and dependency parameters are ignored. * @param string cache key * @param mixed value to cache. */ public function set($key, $value,$expire=0,$dependency=null) { $this->_cache->add($key, $value); $this->_keyList->add($key); if($this->_keyList->getCount() > $this->_cacheSize) { $oldestKey = $this->_keyList->removeAt(0); $this->_cache->remove($oldestKey); } } }