X-Git-Url: https://git.mxchange.org/?p=core.git;a=blobdiff_plain;f=inc%2Fclasses%2Fmain%2Fcache%2Fclass_MemoryCache.php;h=e8efa18bca7eb26438d2bafc0cddc49ea222ef43;hp=61248e0cfddbd89b3f22f29023c2a2b3bd46138e;hb=1ee35e6d96c456b8e3499bd683f1647aa28bd501;hpb=5ea161bcbde4efba71f350b6cc3cdd23002c9d3c diff --git a/inc/classes/main/cache/class_MemoryCache.php b/inc/classes/main/cache/class_MemoryCache.php index 61248e0c..e8efa18b 100644 --- a/inc/classes/main/cache/class_MemoryCache.php +++ b/inc/classes/main/cache/class_MemoryCache.php @@ -2,11 +2,11 @@ /** * A simple memory cache (similar to a registry) * - * @author Roland Haeder + * @author Roland Haeder * @version 0.0.0 - * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2011 Core Developer Team + * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 - 2014 Core Developer Team * @license GNU GPL 3.0 or any newer version - * @link http://www.ship-simu.org + * @link http://www.shipsimu.org * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -66,11 +66,31 @@ class MemoryCache extends BaseFrameworkSystem implements Cacheable { /** * Does the specified offset exist in cache? * - * @param $offset The offset we are looking for - * @return $exists Wether the offset exists + * @param $offset The offset we are looking for + * @param $arrayElement If type is array, then this element must be found + * @param $minimumCount If array element is found then this count must at least match + * @return $exists Whether the offset exists */ - public function offsetExists ($offset) { + public function offsetExists ($offset, $arrayElement = NULL, $minimumCount = 0) { + // Is it there? $exists = $this->dataCache->offsetExists($offset); + + // So look for array element? + if (($exists === TRUE) && (!is_null($arrayElement))) { + // Get it + $array = $this->offsetGet($offset); + + // Is it an array and element is found? + if ((is_array($array)) && (isset($array[$arrayElement]))) { + // Is an array and element is found, so check count + $exists = (count($array[$arrayElement]) >= $minimumCount); + } else { + // Not found + $exists = FALSE; + } + } // END - if + + // Return status return $exists; } @@ -115,7 +135,7 @@ class MemoryCache extends BaseFrameworkSystem implements Cacheable { // Is the offset there? if ($this->offsetExists($offset)) { // Purge only existing keys - //* DEBUG: */ $this->debugOutput('CACHE: Unsetting cache ' . $offset); + //* DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('CACHE: Unsetting cache ' . $offset); $this->dataCache->offsetUnset($offset); } // END - if }