diff options
| author | Andrew Branson <andrew.branson@cern.ch> | 2012-12-18 17:02:17 +0100 |
|---|---|---|
| committer | Andrew Branson <andrew.branson@cern.ch> | 2012-12-18 17:02:17 +0100 |
| commit | 31746638f0a7d99093f9348e14436c3b7aea28db (patch) | |
| tree | 40f3f215f72974287e0a057d6fe4547a9d81963c /src/main/java/com/c2kernel/utils/NonStrongRefCache.java | |
| parent | 82a3a75cf8045a638e0dcd90dcff39a67609bc68 (diff) | |
Added optional WeakCache to hold fewer ClusterStorage objects in memory.
Enabled with Storage.useWeakCache property. Useful for large imports and
other operations that involve accessing a large number of items over a
short period.
Diffstat (limited to 'src/main/java/com/c2kernel/utils/NonStrongRefCache.java')
| -rw-r--r-- | src/main/java/com/c2kernel/utils/NonStrongRefCache.java | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/main/java/com/c2kernel/utils/NonStrongRefCache.java b/src/main/java/com/c2kernel/utils/NonStrongRefCache.java new file mode 100644 index 0000000..400f587 --- /dev/null +++ b/src/main/java/com/c2kernel/utils/NonStrongRefCache.java @@ -0,0 +1,43 @@ +/*
+ * NonStrongRefCache.java
+ *
+ * Copyright (c) 2012, The CRISTAL Consortium. All rights reserved.
+ *
+ * CRISTAL kernel is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see:
+ * http://www.gnu.org/licenses/
+ */
+
+package com.c2kernel.utils;
+
+import java.util.Map;
+import java.util.Set;
+import java.util.Map.Entry;
+
+public interface NonStrongRefCache<K, V> {
+
+ public abstract V get(Object key);
+
+ public abstract V put(K key, V value);
+
+ public abstract V remove(Object key);
+
+ public abstract void clear();
+
+ public abstract int size();
+
+ public abstract Set<K> keySet();
+
+ public abstract Set<Map.Entry<K, V>> entrySet();
+
+}
\ No newline at end of file |
