diff options
| author | wei <> | 2006-12-16 03:56:03 +0000 | 
|---|---|---|
| committer | wei <> | 2006-12-16 03:56:03 +0000 | 
| commit | ddc0de38f64e5834ce04f0407a8416172b596655 (patch) | |
| tree | a94c75b6e7a4f443f748124b84e30d02826bb23a /framework/DataAccess/SQLMap/DataMapper/TSqlMapCache.php | |
| parent | c8689010d28a0fe2a734131a2964d7df394cdf6c (diff) | |
removed adodb and framework/DataAccess
Diffstat (limited to 'framework/DataAccess/SQLMap/DataMapper/TSqlMapCache.php')
| -rw-r--r-- | framework/DataAccess/SQLMap/DataMapper/TSqlMapCache.php | 232 | 
1 files changed, 0 insertions, 232 deletions
| diff --git a/framework/DataAccess/SQLMap/DataMapper/TSqlMapCache.php b/framework/DataAccess/SQLMap/DataMapper/TSqlMapCache.php deleted file mode 100644 index 4d319869..00000000 --- a/framework/DataAccess/SQLMap/DataMapper/TSqlMapCache.php +++ /dev/null @@ -1,232 +0,0 @@ -<?php
 -/**
 - * TSqlMapCache class file contains FIFO, LRU, and GLOBAL cache implementations.
 - *
 - * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
 - * @link http://www.pradosoft.com/
 - * @copyright Copyright © 2005 PradoSoft
 - * @license http://www.pradosoft.com/license/
 - * @version $Id$
 - * @package System.DataAccess.SQLMap
 - */
 -
 -interface ISqLMapCache
 -{
 -	public function remove($key);
 -
 -	public function flush();
 -
 -	public function get($key);
 -
 -	public function set($key, $value);
 -
 -	public function configure($model, $properties);
 -}
 -
 -/**
 - * Allow different implementation of caching strategy. See <tt>TSqlMapFifoCache</tt>
 - * for a first-in-first-out implementation. See <tt>TSqlMapLruCache</tt> for
 - * a least-recently-used cache implementation.
 - *
 - * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
 - * @version $Id$
 - * @package System.DataAccess.SQLMap
 - * @since 3.0
 - */
 -abstract class TSqlMapCache implements ISqlMapCache
 -{
 -	protected $_keyList;
 -	protected $_cache;
 -	protected $_cacheSize = 100;
 -
 -	/**
 -	 * Create a new cache with limited cache size.
 -	 * @param integer maxium number of items to cache.
 -	 */
 -	public function __construct($cacheSize=100)
 -	{
 -		$this->_cache = new TMap;
 -		$this->_cacheSize = intval($cacheSize);
 -		$this->_keyList = new TList;
 -	}
 -
 -	/**
 -	 * Configures the Cache Size.
 -	 * @param array list of properties
 -	 */
 -	public function configure($model, $properties)
 -	{
 -		if(isset($properties['size']))
 -			$this->_cacheSize = intval($properties['size']);
 -	}
 -
 -	/**
 -	 * @return object the object removed if exists, null otherwise.
 -	 */
 -	public function remove($key)
 -	{
 -		$object = $this->get($key);
 -		$this->_cache->remove($key);
 -		$this->_keyList->remove($key);
 -		return $object;
 -	}
 -
 -	/**
 -	 * Clears the cache.
 -	 */
 -	public function flush()
 -	{
 -		$this->_keyList->clear();
 -		$this->_cache->clear();
 -	}
 -
 -}
 -
 -/**
 - * First-in-First-out cache implementation, removes
 - * object that was first added when the cache is full.
 - *
 - * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
 - * @version $Id$
 - * @package System.DataAccess.SQLMap
 - * @since 3.0
 - */
 -class TSqlMapFifoCache extends TSqlMapCache
 -{
 -	/**
 -	 * @return mixed Gets a cached object with the specified key.
 -	 */
 -	public function get($key)
 -	{
 -		return $this->_cache->itemAt($key);
 -	}
 -
 -	/**
 -	 * Adds an item with the specified key and value into cached data.
 -	 * @param string cache key
 -	 * @param mixed value to cache.
 -	 */
 -	public function set($key, $value)
 -	{
 -		$this->_cache->add($key, $value);
 -		$this->_keyList->add($key);
 -		if($this->_keyList->getCount() > $this->_cacheSize)
 -		{
 -			$oldestKey = $this->_keyList->removeAt(0);
 -			$this->_cache->remove($oldestKey);
 -		}
 -	}
 -}
 -
 -/**
 - * Least recently used cache implementation, removes
 - * object that was accessed last when the cache is full.
 - *
 - * @author Wei Zhuo <weizhuo[at]gmail[dot]com>
 - * @version $Id$
 - * @package System.DataAccess.SQLMap
 - * @since 3.0
 - */
 -class TSqlMapLruCache extends TSqlMapCache
 -{
 -	/**
 -	 * @return mixed Gets a cached object with the specified key.
 -	 */
 -	public function get($key)
 -	{
 -		if($this->_keyList->contains($key))
 -		{
 -			$this->_keyList->remove($key);
 -			$this->_keyList->add($key);
 -			return $this->_cache->itemAt($key);
 -		}
 -		else
 -			return null;
 -	}
 -
 -	/**
 -	 * Adds an item with the specified key and value into cached data.
 -	 * @param string cache key
 -	 * @param mixed value to cache.
 -	 */
 -	public function set($key, $value)
 -	{
 -		$this->_cache->add($key, $value);
 -		$this->_keyList->add($key);
 -		if($this->_keyList->getCount() > $this->_cacheSize)
 -		{
 -			$oldestKey = $this->_keyList->removeAt(0);
 -			$this->_cache->remove($oldestKey);
 -		}
 -	}
 -}
 -
 -class TSqlMapApplicationCache implements ISqlMapCache
 -{ 
 -	private $_cache;
 -	private $_expiry=0;
 -	private $_property=array();	
 -	private $_cacheModelID;
 -	
 -	public function __sleep()
 -	{
 -		$this->_cache = null;
 -		return array_keys(get_object_vars($this));
 -	}
 -				
 -	public function remove($key)
 -	{
 -		$this->getCache()->delete($key);
 -	}
 -
 -	public function flush()
 -	{
 -		$this->getCache()->flush();
 -	}
 -
 -	public function get($key)
 -	{
 -		$result = $this->getCache()->get($key);
 -		return $result === false ? null : $result;			
 -	}
 -
 -	public function set($key, $value)
 -	{
 -		$this->getCache()->set($key, $value, $this->_expiry);
 -	}
 -
 -	public function configure($model, $properties)
 -	{
 -		$this->_property = $properties;
 -		$this->_cacheModelID = $model->getID();
 -	}		
 -	
 -	protected function getCache()
 -	{
 -		if(is_null($this->_cache))
 -			$this->initialize();
 -		return $this->_cache;
 -	}
 -	
 -	protected function initialize()
 -	{
 -		if(isset($this->_property['expiry']))
 -			$this->_expiry = intval($this->_property['expiry']);
 -			
 -		if(isset($this->_property['cacheModule']))
 -		{
 -			$id = $this->_property['cacheModule'];
 -			$this->_cache = Prado::getApplication()->getModule($id);
 -		}	
 -		else
 -		{
 -			$this->_cache = Prado::getApplication()->getCache();
 -		}
 -			
 -		if(!($this->_cache instanceof ICache))
 -			throw new TSqlMapConfigurationException(
 -				'sqlmap_invalid_prado_cache', $this->_cacheModelID);			
 -	}
 -}
 -
 -?>
\ No newline at end of file | 
