Mercurial > projects > dreactor
comparison dreactor/util/Emitter.d @ 13:8c9b1276f623 default tip
bug fixes
author | rick@minifunk |
---|---|
date | Sat, 20 Sep 2008 18:33:11 -0400 |
parents | dreactor/protocol/Emitter.d@d6a3cfe7c3de |
children |
comparison
equal
deleted
inserted
replaced
12:d6a3cfe7c3de | 13:8c9b1276f623 |
---|---|
1 module dreactor.util.Emitter; | |
2 | |
3 | |
4 | |
5 | |
6 import tango.core.Thread; | |
7 | |
8 import dreactor.core.Task; | |
9 import dreactor.protocol.IProvider; | |
10 | |
11 alias Message delegate() EmitterDg; | |
12 | |
13 class Emitter | |
14 { | |
15 public | |
16 this(Task t, EmitterDg cb) | |
17 { | |
18 task = t; | |
19 callback = cb; | |
20 thread = new Thread(&run); | |
21 thread.start(); | |
22 } | |
23 | |
24 void stop() | |
25 { | |
26 running = false; | |
27 } | |
28 | |
29 void stopNow() | |
30 { | |
31 thread.isDaemon(true); | |
32 running = false; | |
33 } | |
34 private | |
35 | |
36 void run() | |
37 { | |
38 while(running) | |
39 { | |
40 Message msg = callback(); | |
41 task.appendIVMessage(msg); | |
42 } | |
43 } | |
44 Task task; | |
45 Thread thread; | |
46 bool running; | |
47 EmitterDg callback; | |
48 } | |
49 |