Mercurial > projects > dreactor
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 |