From bd2d05119734a7892485cfe3c7bc62a4a606ce6d Mon Sep 17 00:00:00 2001 From: "godzilla80@gmx.net" <> Date: Sun, 5 Apr 2009 16:11:22 +0000 Subject: TSqlMapCacheModel now consider tag as described in doc (sqlmap.pdf) - valid attributes are duration in sec or seconds, minutes, hours, days --- .../Configuration/TSqlMapXmlConfiguration.php | 36 ++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'framework/Data/SqlMap/Configuration/TSqlMapXmlConfiguration.php') diff --git a/framework/Data/SqlMap/Configuration/TSqlMapXmlConfiguration.php b/framework/Data/SqlMap/Configuration/TSqlMapXmlConfiguration.php index ba8c3d0c..ce122f6a 100644 --- a/framework/Data/SqlMap/Configuration/TSqlMapXmlConfiguration.php +++ b/framework/Data/SqlMap/Configuration/TSqlMapXmlConfiguration.php @@ -697,12 +697,48 @@ class TSqlMapXmlMappingConfiguration extends TSqlMapXmlConfigBuilder } $cache = Prado::createComponent($cacheModel->getImplementationClass()); $this->setObjectPropFromNode($cache,$node,$properties); + $this->loadFlushInterval($cacheModel,$node); + $cacheModel->initialize($cache); $this->_manager->addCacheModel($cacheModel); foreach($node->xpath('flushOnExecute') as $flush) $this->loadFlushOnCache($cacheModel,$node,$flush); } + /** + * Load the flush interval + * @param TSqlMapCacheModel cache model + * @param SimpleXmlElement cache node + */ + protected function loadFlushInterval($cacheModel, $node) + { + $flushInterval = $node->xpath('flushInterval'); + if($flushInterval === null || count($flushInterval) === 0) return; + $duration = 0; + foreach($flushInterval[0]->attributes() as $name=>$value) + { + switch(strToLower($name)) + { + case 'seconds': + $duration += (integer)$value; + break; + case 'minutes': + $duration += 60 * (integer)$value; + break; + case 'hours': + $duration += 3600 * (integer)$value; + break; + case 'days': + $duration += 86400 * (integer)$value; + break; + case 'duration': + $duration = (integer)$value; + break 2; // switch, foreach + } + } + $cacheModel->setFlushInterval($duration); + } + /** * Load the flush on cache properties. * @param TSqlMapCacheModel cache model -- cgit v1.2.3