Changeset 232:09234db16370
- Timestamp:
- 04/16/08 14:20:04
(5 months ago)
- Author:
- Frank Benoit <benoit@tionex.de>
- branch:
- default
- Message:
Delegate creator function dgIRunnable
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| r108 |
r232 |
|
| 1 | | /** |
|---|
| | 1 | /** |
|---|
| 2 | 2 | * Authors: Frank Benoit <benoit@tionex.de> |
|---|
| 3 | 3 | */ |
|---|
| 4 | 4 | module dwt.dwthelper.Runnable; |
|---|
| | 5 | |
|---|
| | 6 | |
|---|
| | 7 | import tango.core.Tuple; |
|---|
| | 8 | import tango.core.Traits; |
|---|
| 5 | 9 | |
|---|
| 6 | 10 | public interface Runnable { |
|---|
| … | … | |
| 10 | 14 | } |
|---|
| 11 | 15 | |
|---|
| | 16 | class _DgIRunnableT(Dg,T...) : Runnable { |
|---|
| 12 | 17 | |
|---|
| | 18 | alias ParameterTupleOf!(Dg) DgArgs; |
|---|
| | 19 | static assert( is(DgArgs == Tuple!(T)), |
|---|
| | 20 | "Delegate args not correct" ); |
|---|
| | 21 | |
|---|
| | 22 | Dg dg; |
|---|
| | 23 | T t; |
|---|
| | 24 | |
|---|
| | 25 | private this( Dg dg, T t ){ |
|---|
| | 26 | this.dg = dg; |
|---|
| | 27 | static if( T.length > 0 ){ |
|---|
| | 28 | this.t = t; |
|---|
| | 29 | } |
|---|
| | 30 | } |
|---|
| | 31 | |
|---|
| | 32 | void run( ){ |
|---|
| | 33 | dg(t); |
|---|
| | 34 | } |
|---|
| | 35 | } |
|---|
| | 36 | |
|---|
| | 37 | _DgIRunnableT!(Dg,T) dgIRunnable(Dg,T...)( Dg dg, T args ){ |
|---|
| | 38 | return new _DgIRunnableT!(Dg,T)(dg,args); |
|---|
| | 39 | } |
|---|