From 20eb77035659a74e749962acd85146bbf03ce3f1 Mon Sep 17 00:00:00 2001 From: Rene Treffer Date: Wed, 14 Jan 2015 22:43:43 +0100 Subject: Switch to maven central minidns --- .../src/main/java/de/measite/minidns/LRUCache.java | 139 --------------------- 1 file changed, 139 deletions(-) delete mode 100644 libs/minidns/src/main/java/de/measite/minidns/LRUCache.java (limited to 'libs/minidns/src/main/java/de/measite/minidns/LRUCache.java') diff --git a/libs/minidns/src/main/java/de/measite/minidns/LRUCache.java b/libs/minidns/src/main/java/de/measite/minidns/LRUCache.java deleted file mode 100644 index 6b9bbdc1..00000000 --- a/libs/minidns/src/main/java/de/measite/minidns/LRUCache.java +++ /dev/null @@ -1,139 +0,0 @@ -package de.measite.minidns; - -import java.util.LinkedHashMap; -import java.util.Map.Entry; - -/** - * LRU based DNSCache backed by a LinkedHashMap. - */ -public class LRUCache implements DNSCache { - - /** - * Internal miss count. - */ - protected long missCount = 0l; - - /** - * Internal expire count (subset of misses that was caused by expire). - */ - protected long expireCount = 0l; - - /** - * Internal hit count. - */ - protected long hitCount = 0l; - - /** - * The internal capacity of the backend cache. - */ - protected int capacity; - - /** - * The upper bound of the ttl. All longer TTLs will be capped by this ttl. - */ - protected long maxTTL; - - /** - * The backend cache. - */ - protected LinkedHashMap backend; - - /** - * Create a new LRUCache with given capacity and upper bound ttl. - * @param capacity The internal capacity. - * @param maxTTL The upper bound for any ttl. - */ - @SuppressWarnings("serial") - public LRUCache(final int capacity, final long maxTTL) { - this.capacity = capacity; - this.maxTTL = maxTTL; - backend = new LinkedHashMap( - Math.min(capacity + (capacity + 3) / 4 + 2, 11), 0.75f, true) - { - @Override - protected boolean removeEldestEntry( - Entry eldest) { - return size() > capacity; - } - }; - } - - /** - * Create a new LRUCache with given capacity. - * @param capacity The capacity of this cache. - */ - public LRUCache(final int capacity) { - this(capacity, Long.MAX_VALUE); - } - - @Override - public synchronized void put(Question q, DNSMessage message) { - if (message.getReceiveTimestamp() <= 0l) { - return; - } - backend.put(q, message); - } - - @Override - public synchronized DNSMessage get(Question q) { - DNSMessage message = backend.get(q); - if (message == null) { - missCount++; - return null; - } - - long ttl = maxTTL; - for (Record r : message.getAnswers()) { - ttl = Math.min(ttl, r.ttl); - } - for (Record r : message.getAdditionalResourceRecords()) { - ttl = Math.min(ttl, r.ttl); - } - if (message.getReceiveTimestamp() + ttl > System.currentTimeMillis()) { - missCount++; - expireCount++; - backend.remove(q); - return null; - } else { - hitCount++; - return message; - } - } - - /** - * Clear all entries in this cache. - */ - public synchronized void clear() { - backend.clear(); - missCount = 0l; - hitCount = 0l; - expireCount = 0l; - } - - /** - * Get the miss count of this cache which is the number of fruitless - * get calls since this cache was last resetted. - * @return The number of cache misses. - */ - public long getMissCount() { - return missCount; - } - - /** - * The number of expires (cache hits that have had a ttl to low to be - * retrieved). - * @return The expire count. - */ - public long getExpireCount() { - return expireCount; - } - - /** - * The cache hit count (all sucessful calls to get). - * @return The hit count. - */ - public long getHitCount() { - return hitCount; - } - -} -- cgit v1.2.3