comparison dreactor/protocol/Emitter.d @ 12:d6a3cfe7c3de

more stuff
author rick@Macintosh.local
date Wed, 27 Aug 2008 00:47:33 -0400
parents
children
comparison
equal deleted inserted replaced
11:5836613d16ac 12:d6a3cfe7c3de
1 module Emitter
2
3
4
5
6 import tango.core.Thread;
7
8 import dreactor.core.Task;
9
10 alias Message delegate(void) EmitterDg;
11
12 class Emitter
13 {
14 public
15 this(Task t, EmitterDg cb)
16 {
17 task = t;
18 callback = cb;
19 thread = new Thread(&run);
20 thread.start();
21 }
22
23 void stop()
24 {
25 running = false;
26 }
27
28 void stopNow()
29 {
30 thread.isDaemon(true);
31 running = false;
32 }
33 private
34
35 void run()
36 {
37 while(running)
38 {
39 Message msg = callback();
40 task.appendIVMessage(msg);
41 }
42 }
43 Task task;
44 Thread thread;
45 bool running;
46 EmitterCb callback;
47 }
48