view 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 source

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;
    }
}