<?php

//
// Open Web Analytics - An Open Source Web Analytics Framework
//
// Copyright 2006 Peter Adams. All rights reserved.
//
// Licensed under GPL v2.0 http://www.gnu.org/copyleft/gpl.html
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// $Id$
//

require_once(OWA_BASE_CLASS_DIR.'cacheType.php');

/**
 * Memory Based Cache Class
 * 
 * @author      Peter Adams <peter@openwebanalytics.com>
 * @copyright   Copyright &copy; 2006 - 2011 Peter Adams <peter@openwebanalytics.com>
 * @license     http://www.gnu.org/copyleft/gpl.html GPL v2.0
 * @category    owa
 * @package     owa
 * @version        $Revision$
 * @since        owa 1.4.0
 */

class owa_memoryCache extends owa_cacheType {

	var $cache = [];

    function get( $collection, $id ) {
	    
	    if ( $this->isCached( $collection, $id ) ) {
			
			return $this->cache[ $collection ][ $id ];
	    }
    }

    function set( $collection, $id, $value ) {
	    
	    $this->cache[ $collection ][ $id ] = $value;
    }

    function remove( $collection, $id ) {
        
        if ( $this->isCached( $collection, $id ) ) {
			
			unset( $this->cache[ $collection ][ $id ] );
			
			return true;
	    }
        
    }
    
    function flush() {
	    
	    $this->cache = [];
    }
    
    function isCached( $collection, $id ) {
	    
	    if ( array_key_exists( $collection, $this->cache ) && array_key_exists( $id, $this->cache[ $collection ] ) ) {
			
			return true;
	    }
    }
}

?>