1 package mircoders.global;
8 public class ProducerEngine {
11 private Thread queueThread;
13 protected ProducerEngine() {
14 producers = MirGlobal.localizer().producers().factories();
17 // queueThread = new Thread(
20 public void addTask(String aProducerFactory, String aVerb) {
21 produceNow(aProducerFactory, aVerb, new PrintWriter(new NullWriter()));
24 public void produceNow(String aProducerFactory, String aVerb, PrintWriter aLogger) {
29 startTime = System.currentTimeMillis();
31 aLogger.println("Producing (" + aProducerFactory + "," + aVerb + ")<br>");
33 if (producers == null)
34 aLogger.println("??<br>");
36 ProducerFactory factory = (ProducerFactory) producers.get(aProducerFactory);
39 throw new Exception("No producer factory '"+aProducerFactory+"' present.");
41 Producer producer = factory.makeProducer(aVerb);
43 producer.produce(aLogger);
45 endTime = System.currentTimeMillis();
47 aLogger.println("Time: " + (endTime-startTime) + " ms<br>");
51 aLogger.println("exception occurred:<br>");
52 aLogger.println(e.getMessage());
53 e.printStackTrace(aLogger);
60 private class ProducerQueueItem {
64 public ProducerQueueItem(String aFactory, String aVerb) {
69 public String getVerb() {
73 public String getFactory() {
78 private class ProducerQueue implements Runnable {