Mercurial Hosting > luan
diff src/luan/modules/ThreadLuan.java @ 794:f16c77ef0f4f
add Parsers.json_string and Thread.global
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Mon, 05 Sep 2016 16:08:00 -0600 |
parents | c9409e28daa2 |
children | 95cbe23a96fb |
line wrap: on
line diff
--- a/src/luan/modules/ThreadLuan.java Mon Sep 05 15:19:44 2016 -0600 +++ b/src/luan/modules/ThreadLuan.java Mon Sep 05 16:08:00 2016 -0600 @@ -1,6 +1,8 @@ package luan.modules; import java.io.Closeable; +import java.util.Map; +import java.util.LinkedHashMap; import java.util.concurrent.Executor; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; @@ -68,4 +70,32 @@ luan.onClose(c); } + + public static class StringMap { + + private static class Value { + final long time = System.currentTimeMillis(); + final String s; + + Value(String s) { + this.s = s; + } + } + + public long timeout = 60000L; // one minute + private Map<String,Value> map = new LinkedHashMap<String,Value>() { + protected boolean removeEldestEntry(Map.Entry<String,Value> eldest) { + return eldest.getValue().time < System.currentTimeMillis() - timeout; + } + }; + + public synchronized String get(String key) { + Value val = map.get(key); + return val==null ? null : val.s; + } + + public synchronized void set(String key,String s) { + map.put(key,new Value(s)); + } + } }