Mercurial > projects > dwt-win
comparison 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 |
comparison
equal
deleted
inserted
replaced
197:184ab53b7785 | 198:be4ce760802a |
---|---|
1 module dwt.dwthelper.WeakHashMap; | |
2 | |
3 | |
4 /+ | |
5 Is not yet 'weak' | |
6 +/ | |
7 class WeakHashMap { | |
8 | |
9 static class Ref { | |
10 size_t ptr; | |
11 this(Object k){ | |
12 ptr = cast(size_t)cast(void*)k; | |
13 } | |
14 } | |
15 | |
16 Object[ Ref ] data; | |
17 | |
18 public void add (Object key, Object element){ | |
19 auto k = new Ref(key); | |
20 data[ k ] = element; | |
21 } | |
22 public void removeKey (Object key){ | |
23 scope k = new Ref(key); | |
24 data.remove( k ); | |
25 } | |
26 public Object get(Object key){ | |
27 scope k = new Ref(key); | |
28 if( auto p = k in data ){ | |
29 return *p; | |
30 } | |
31 return null; | |
32 } | |
33 } |