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