package railo.runtime.cache; import railo.commons.io.cache.Cache; import railo.commons.io.cache.CacheEntry; import railo.runtime.type.Struct; import railo.runtime.type.StructImpl; import railo.runtime.type.dt.TimeSpan; import railo.runtime.type.dt.TimeSpanImpl; public class CacheUtil { public static Struct getInfo(CacheEntry ce) { Struct info=new StructImpl(); info.setEL("key", ce.getKey()); info.setEL("created", ce.created()); info.setEL("last_hit", ce.lastHit()); info.setEL("last_modified", ce.lastModified()); info.setEL("hit_count", new Double(ce.hitCount())); info.setEL("size", new Double(ce.size())); info.setEL("idle_time_span", toTimespan(ce.idleTimeSpan())); info.setEL("live_time_span", toTimespan(ce.liveTimeSpan())); return info; } public static Struct getInfo(Cache c) { Struct info=new StructImpl(); long value = c.hitCount(); if(value>=0)info.setEL("hit_count", new Double(value)); value = c.missCount(); if(value>=0)info.setEL("miss_count", new Double(value)); return info; } public static Object toTimespan(long timespan) { if(timespan==0)return ""; TimeSpan ts = TimeSpanImpl.fromMillis(timespan); if(ts==null)return ""; return ts; } public static String toString(CacheEntry ce) { return "created: "+ce.created() +"\nlast-hit: "+ce.lastHit() +"\nlast-modified: "+ce.lastModified() +"\nidle-time: "+ce.idleTimeSpan() +"\nlive-time :"+ce.liveTimeSpan() +"\nhit-count: "+ce.hitCount() +"\nsize: "+ce.size(); } }