diff dwt/dwthelper/WeakHashMap.d @ 198:be4ce760802a

Add: missing files
author Frank Benoit <benoit@tionex.de>
date Thu, 10 Apr 2008 11:20:26 +0200
parents
children 4ec36c3a04a3
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dwt/dwthelper/WeakHashMap.d	Thu Apr 10 11:20:26 2008 +0200
@@ -0,0 +1,33 @@
+module dwt.dwthelper.WeakHashMap;
+
+
+/+
+    Is not yet 'weak'
++/
+class WeakHashMap {
+
+    static class Ref {
+        size_t ptr;
+        this(Object k){
+            ptr = cast(size_t)cast(void*)k;
+        }
+    }
+
+    Object[ Ref ] data;
+
+    public void add (Object key, Object element){
+        auto k = new Ref(key);
+        data[ k ] = element;
+    }
+    public void removeKey (Object key){
+        scope k = new Ref(key);
+        data.remove( k );
+    }
+    public Object get(Object key){
+        scope k = new Ref(key);
+        if( auto p = k in data ){
+            return *p;
+        }
+        return null;
+    }
+}