X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Fclasses%2Fmain%2Fcache%2Fclass_MemoryCache.php;h=9b827ba9a6c95ca9375bc28b2a9d6e76f496f6f2;hb=df1b3a826bc67c252efaaac93cb8e78b2cb29603;hp=b6a131c9549223a4cc0c92855b6242a75a6375a8;hpb=08330903ee5bd8ea967622ff7473d13dff19beb5;p=core.git diff --git a/inc/classes/main/cache/class_MemoryCache.php b/inc/classes/main/cache/class_MemoryCache.php index b6a131c9..9b827ba9 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 - 2015 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 Whether 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 }