Index: pkg/analysis_server/lib/src/index/lru_cache.dart |
diff --git a/pkg/analysis_server/lib/src/index/lru_cache.dart b/pkg/analysis_server/lib/src/index/lru_cache.dart |
deleted file mode 100644 |
index 82dfeb54c53ef28cc42a19b60b156565a504771a..0000000000000000000000000000000000000000 |
--- a/pkg/analysis_server/lib/src/index/lru_cache.dart |
+++ /dev/null |
@@ -1,69 +0,0 @@ |
-// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
-// for details. All rights reserved. Use of this source code is governed by a |
-// BSD-style license that can be found in the LICENSE file. |
- |
-library index.lru_cache; |
- |
-import 'dart:collection'; |
- |
- |
-/** |
- * This handler is notified when an item is evicted from the cache. |
- */ |
-typedef EvictionHandler<K, V>(K key, V value); |
- |
-/** |
- * A hash-table based cache implementation. |
- * |
- * When it reaches the specified number of items, the item that has not been |
- * accessed (both get and put) recently is evicted. |
- */ |
-class LRUCache<K, V> { |
- final LinkedHashSet<K> _lastKeys = new LinkedHashSet<K>(); |
- final HashMap<K, V> _map = new HashMap<K, V>(); |
- final int _maxSize; |
- final EvictionHandler _handler; |
- |
- LRUCache(this._maxSize, [this._handler]); |
- |
- /** |
- * Returns the value for the given [key] or null if [key] is not |
- * in the cache. |
- */ |
- V get(K key) { |
- V value = _map[key]; |
- if (value != null) { |
- _lastKeys.remove(key); |
- _lastKeys.add(key); |
- } |
- return value; |
- } |
- |
- /** |
- * Removes the association for the given [key]. |
- */ |
- void remove(K key) { |
- _lastKeys.remove(key); |
- _map.remove(key); |
- } |
- |
- /** |
- * Associates the [key] with the given [value]. |
- * |
- * If the cache is full, an item that has not been accessed recently is |
- * evicted. |
- */ |
- void put(K key, V value) { |
- _lastKeys.remove(key); |
- _lastKeys.add(key); |
- if (_lastKeys.length > _maxSize) { |
- K evictedKey = _lastKeys.first; |
- V evictedValue = _map.remove(evictedKey); |
- _lastKeys.remove(evictedKey); |
- if (_handler != null) { |
- _handler(evictedKey, evictedValue); |
- } |
- } |
- _map[key] = value; |
- } |
-} |