/*
* 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 the Free Software
* Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License along with
* this program. If not, see .
*/
package com.l2jserver.gameserver.lib;
import java.util.HashMap;
import java.util.logging.Logger;
@Deprecated
public class memcache
{
private static Logger _log = Logger.getLogger(memcache.class.getName());
private HashMap _hms;
private HashMap _hmi;
private HashMap _lastAccess;
public static memcache getInstance()
{
return SingletonHolder._instance;
}
private memcache()
{
_hms = new HashMap();
_hmi = new HashMap();
_lastAccess = new HashMap();
}
private void checkExpired()
{
for (Integer k : _hmi.keySet())
if (_lastAccess.get(k) + 3600000 < System.currentTimeMillis())
{
// _hmi.remove(k);
// _last_access.remove(k);
}
for (Integer k : _hms.keySet())
if (_lastAccess.get(k) + 3600000 < System.currentTimeMillis())
{
// _hms.remove(k);
// _last_access.remove(k);
}
}
public void set(String type, String key, int value)
{
int hash = (type + "->" + key).hashCode();
//_log.fine("Set memcache "+type+"("+key+")["+hash+"] to "+value);
_hmi.put(hash, value);
_lastAccess.put(hash, System.currentTimeMillis());
checkExpired();
}
@Deprecated
public boolean isSet(String type, String key)
{
int hash = (type + "->" + key).hashCode();
boolean exists = _hmi.containsKey(hash) || _hms.containsKey(hash);
if (exists)
_lastAccess.put(hash, System.currentTimeMillis());
checkExpired();
_log.fine("Check exists memcache " + type + "(" + key + ")[" + hash + "] is " + exists);
return exists;
}
@Deprecated
public Integer getInt(String type, String key)
{
int hash = (type + "->" + key).hashCode();
_lastAccess.put(hash, System.currentTimeMillis());
checkExpired();
_log.fine("Get memcache " + type + "(" + key + ")[" + hash + "] = " + _hmi.get(hash));
return _hmi.get(hash);
}
@SuppressWarnings("synthetic-access")
private static class SingletonHolder
{
protected static final memcache _instance = new memcache();
}
}