remove per-type expire time, clunky and doesnt work on types w/ args
This commit is contained in:
parent
c590a913fa
commit
d78cb4a0c3
|
@ -2,7 +2,6 @@ package net.hyperic.sigar;
|
|||
|
||||
class SigarCacheObject {
|
||||
|
||||
int expire = SigarProxyCache.EXPIRE_DEFAULT;
|
||||
long timestamp = 0;
|
||||
Object value = null;
|
||||
}
|
||||
|
|
|
@ -55,36 +55,6 @@ public class SigarProxyCache
|
|||
SigarLog.getLogger("SigarProxyCache").debug(msg);
|
||||
}
|
||||
|
||||
private static final Class[] VOID_SIGNATURE = new Class[0];
|
||||
|
||||
public static void setExpire(SigarProxy proxy,
|
||||
String type,
|
||||
int expire)
|
||||
throws SigarException {
|
||||
|
||||
SigarProxyCache handler =
|
||||
(SigarProxyCache)Proxy.getInvocationHandler(proxy);
|
||||
|
||||
Method method;
|
||||
|
||||
try {
|
||||
method = Sigar.class.getMethod("get" + type, VOID_SIGNATURE);
|
||||
} catch (Exception e) {
|
||||
throw new SigarException("invalid type " + type);
|
||||
}
|
||||
|
||||
SigarCacheObject cacheVal =
|
||||
(SigarCacheObject)handler.cache.get(method);
|
||||
|
||||
if (cacheVal == null) {
|
||||
cacheVal = new SigarCacheObject();
|
||||
}
|
||||
|
||||
cacheVal.expire = expire;
|
||||
|
||||
handler.cache.put(method, cacheVal);
|
||||
}
|
||||
|
||||
public static void clear(Object proxy) {
|
||||
SigarProxyCache handler =
|
||||
(SigarProxyCache)Proxy.getInvocationHandler(proxy);
|
||||
|
@ -150,7 +120,6 @@ public class SigarProxyCache
|
|||
|
||||
if (cacheVal == null) {
|
||||
cacheVal = new SigarCacheObject();
|
||||
cacheVal.expire = this.expire;
|
||||
}
|
||||
|
||||
String argDebug = "";
|
||||
|
@ -167,7 +136,7 @@ public class SigarProxyCache
|
|||
" in cache" + argDebug);
|
||||
}
|
||||
|
||||
if ((timeNow - cacheVal.timestamp) > cacheVal.expire) {
|
||||
if ((timeNow - cacheVal.timestamp) > this.expire) {
|
||||
if (debugEnabled) {
|
||||
debug("expiring " + method.getName() +
|
||||
" from cache" + argDebug);
|
||||
|
|
Loading…
Reference in New Issue