Skip to content

Instantly share code, notes, and snippets.

@sinnlosername
Created June 4, 2016 22:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sinnlosername/e0d9bcb9645048fddcc87082645b0343 to your computer and use it in GitHub Desktop.
Save sinnlosername/e0d9bcb9645048fddcc87082645b0343 to your computer and use it in GitHub Desktop.
public class Delay<K> {
private final HashMap<K, Long> map = new HashMap<>();
private final long min_delay;
public Delay(long min_delay) {
this.min_delay = min_delay;
}
public void trigger(K key, Handler handler) {
if (map.containsKey(key)) {
long delay = System.currentTimeMillis()-map.get(key);
if (delay > min_delay)
handler.passed(key, delay);
else
handler.failed(key, delay);
} else {
map.put(key, System.currentTimeMillis());
}
}
public abstract class Handler {
abstract void passed(K t, long delay);
abstract void failed(K t, long delay);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment