Hash->HashMap, add Basket.Queue
authoradam <adam@megacz.com>
Sun, 16 Jan 2005 05:17:46 +0000 (05:17 +0000)
committeradam <adam@megacz.com>
Sun, 16 Jan 2005 05:17:46 +0000 (05:17 +0000)
darcs-hash:20050116051746-5007d-62f27bac9deb979d43c72170fc399e33908d9b94.gz

src/org/ibex/util/Basket.java
src/org/ibex/util/Cache.java
src/org/ibex/util/Log.java

index f3b2504..bd981b6 100644 (file)
@@ -26,9 +26,8 @@ public interface Basket extends Serializable {
     public interface RandomAccess extends List { }
 
     public interface Queue extends Basket {
-        // FIXME
-        //public void   enqueue(Object o);
-        //public Object dequeue();
+        public void   enqueue(Object o);
+        public Object dequeue();
     }
 
     public interface Stack extends Basket {
@@ -60,6 +59,16 @@ public interface Basket extends Serializable {
         public Array(int initialCapacity) { o = new Object[initialCapacity]; }
         public Array(Object entry) { this(1); add(entry); }
 
+        public void   enqueue(Object o) { add(o); }
+
+        // FEATURE: make this more efficient with general wraparound
+        public Object dequeue() {
+            if (size==0) return null;
+            Object ret = o[0];
+            for(int i=1; i<size; i++) o[i-1]=o[i];
+            return ret;
+        }
+
         public void add(Object obj) { add(size, obj); }
         public void add(int i, Object obj) {
             size(size + 1);
@@ -162,10 +171,6 @@ public interface Basket extends Serializable {
         public void push(Object o) { add(o); }
     }
 
-    //public class Tree implements RandomAccess { } FIXME
-
-    //public class IndexedTree extends Tree { } FIXME
-
     /** Implementation of a hash table using Radke's quadratic residue
      *  linear probing. Uses a single array to store all entries.
      *
@@ -173,7 +178,7 @@ public interface Basket extends Serializable {
      *
      * @author adam@ibex.org, crawshaw@ibex.org
      */
-    public abstract class Hash implements Basket {
+    public class Hash implements Basket, Map {
         static final long serialVersionUID = 3948384093L;
 
         /** Used internally to record used slots. */
@@ -347,10 +352,6 @@ public interface Basket extends Serializable {
         }
     }
 
-    public class HashMap extends Hash implements Map {
-        public HashMap() { super(); }
-        public HashMap(int x, float y) { super(x,y); }
-        public HashMap(int x, int z, float y) { super(x,z,y); }
-    }
+    // FIXME, BalancedTree goes here
 
 }
index 33c04c5..82311ec 100644 (file)
@@ -10,7 +10,7 @@ package org.ibex.util;
  *
  *  @author crawshaw@ibex.org
  */
-public class Cache extends Basket.HashMap {
+public class Cache extends Basket.Hash {
     public Cache(int maxSize, boolean accessOrder) {
         super(maxSize * 2, 0.75F);
     }
index 2f69732..00b3c00 100644 (file)
@@ -70,7 +70,7 @@ public class Log {
     }
     public static void clearnotes() { if (!notes) return; notebuf().setLength(0); }
 
-    private static final Basket.Map notebufs = new Basket.HashMap();
+    private static final Basket.Map notebufs = new Basket.Hash();
     public static StringBuffer notebuf() {
         StringBuffer ret = (StringBuffer)notebufs.get(Thread.currentThread());
         if (ret == null) {