Mercurial > projects > dwt-win
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; + } +}