Changeset 232:09234db16370

Show
Ignore:
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
  • dwt/dwthelper/Runnable.d

    r108 r232  
    1 /** 
     1/** 
    22 * Authors: Frank Benoit <benoit@tionex.de> 
    33 */ 
    44module dwt.dwthelper.Runnable; 
     5 
     6 
     7import tango.core.Tuple; 
     8import tango.core.Traits; 
    59 
    610public interface Runnable  { 
     
    1014} 
    1115 
     16class _DgIRunnableT(Dg,T...) : Runnable { 
    1217 
     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}