1 package mircoders.global;
8 public class ProducerEngine {
11 private Thread queueThread;
13 void ProducerEngine() {
14 producers = MirGlobal.localizer().producers().factories();
17 // queueThread = new Thread(
20 void addTask(String aProducerFactory, String aVerb) {
21 produceNow(aProducerFactory, aVerb, new PrintWriter(new NullWriter()));
24 void produceNow(String aProducerFactory, String aVerb, PrintWriter aLogger) {
26 aLogger.println("Producing <" + aProducerFactory + "," + aVerb + "><br>");
28 ProducerFactory factory = (ProducerFactory) producers.get(aProducerFactory);
31 throw new Exception("No producer factory '"+aProducerFactory+"' present.");
33 Producer producer = factory.makeProducer(aVerb);
35 producer.produce(aLogger);
39 aLogger.println("exception occurred:<br>");
40 aLogger.println(e.getMessage());
41 e.printStackTrace(aLogger);
48 private class ProducerQueueItem {
52 public ProducerQueueItem(String aFactory, String aVerb) {
57 public String getVerb() {
61 public String getFactory() {
66 private class ProducerQueue implements Runnable {