summaryrefslogtreecommitdiff
path: root/src/main/java/com/c2kernel/utils/NonStrongRefCache.java
diff options
context:
space:
mode:
authorAndrew Branson <andrew.branson@cern.ch>2012-12-18 17:02:17 +0100
committerAndrew Branson <andrew.branson@cern.ch>2012-12-18 17:02:17 +0100
commit31746638f0a7d99093f9348e14436c3b7aea28db (patch)
tree40f3f215f72974287e0a057d6fe4547a9d81963c /src/main/java/com/c2kernel/utils/NonStrongRefCache.java
parent82a3a75cf8045a638e0dcd90dcff39a67609bc68 (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.java43
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