<?php

require_once( dirname(__FILE__).'/../config/paths.inc.php' );

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of Cache
 *
 * @author lucianoc
 */
class Cache
{
    static private $ttl = 600;
    
    public static function cachear($clave, $valor, $forzar_grabado = false, $ttl = null)
    {
        if (!$ttl)
        {
            $ttl = self::$ttl;
        }
        elseif ($ttl == -1)
        {
			// Uso APCU, sino existe uso APC
			if (function_exists('apcu_delete')){
				apcu_delete($clave);
			} else {
				apc_delete($clave);
			}
			
            return null;
        }

        if ($forzar_grabado)
        {
			// Uso APCU, sino existe uso APC
			if (function_exists('apcu_store')){
				return apcu_store($clave, $valor, $ttl);
			} else {
				return apc_store($clave, $valor, $ttl);
			}
            
        }
        else
        {
			// Uso APCU, sino existe uso APC
			if (function_exists('apcu_add')){
				return apcu_add($clave, $valor, $ttl);
			} else {
				return apc_add($clave, $valor, $ttl);
			}
        }
    }
    
    public static function estaCacheado($clave)
    {
		// Uso APCU, sino existe uso APC
		if (function_exists('apcu_exists')){
			return apcu_exists($clave);
		} else {
			return apc_exists($clave);
		}
	}
    
    public static function traerDeCache($clave)
    {
        if (self::estaCacheado($clave))
        {
			// Uso APCU, sino existe uso APC
			if (function_exists('apcu_fetch')){
				return apcu_fetch($clave);
			} else {
				return apc_fetch($clave);
			}
        }
        return null;
    }
}

    if(!function_exists('apc_exists'))
    {
        function apc_exists($keys)
        {
			$result;
			apc_fetch($keys, $result);
			return $result;
        }
    }

