Author: nextgens
Date: 2008-08-08 07:29:06 +0000 (Fri, 08 Aug 2008)
New Revision: 21659
Modified:
trunk/freenet/src/freenet/support/TimeSortedHashtable.java
Log:
make TimeSortedHashtable implement Cloneable
Modified: trunk/freenet/src/freenet/support/TimeSortedHashtable.java
===================================================================
--- trunk/freenet/src/freenet/support/TimeSortedHashtable.java 2008-08-07
22:11:21 UTC (rev 21658)
+++ trunk/freenet/src/freenet/support/TimeSortedHashtable.java 2008-08-08
07:29:06 UTC (rev 21659)
@@ -9,8 +9,18 @@
/**
* Variant on LRUHashtable which provides an efficient how-many-since-time-T
operation.
*/
-public class TimeSortedHashtable {
-
+public class TimeSortedHashtable implements Cloneable {
+
+ public TimeSortedHashtable() {
+ this.elements = new TreeSet(new MyComparator());
+ this.valueToElement = new HashMap();
+ }
+
+ private TimeSortedHashtable(TimeSortedHashtable c) {
+ this.elements = new TreeSet(c.elements);
+ this.valueToElement = new HashMap(c.valueToElement);
+ }
+
private static class Element {
Element(long t, Comparable v) {
@@ -54,9 +64,13 @@
}
- private final TreeSet elements = new TreeSet(new MyComparator());
- private final HashMap valueToElement = new HashMap();
+ private final TreeSet elements;
+ private final HashMap valueToElement;
+ public TimeSortedHashtable clone() {
+ return new TimeSortedHashtable(this);
+ }
+
public final void push(Comparable value) {
push(value, System.currentTimeMillis());
}