From 31746638f0a7d99093f9348e14436c3b7aea28db Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Tue, 18 Dec 2012 17:02:17 +0100 Subject: 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. --- .../java/com/c2kernel/utils/NonStrongRefCache.java | 43 ++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 src/main/java/com/c2kernel/utils/NonStrongRefCache.java (limited to 'src/main/java/com/c2kernel/utils/NonStrongRefCache.java') 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 { + + 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 keySet(); + + public abstract Set> entrySet(); + +} \ No newline at end of file -- cgit v1.2.3