3083837c623a6730fd1250bae9678c59b524350c
[mir.git] / source / mircoders / global / ProducerEngine.java
1 package mircoders.global;
2
3 import java.util.*;
4 import java.io.*;
5 import mir.producer.*;
6 import mir.util.*;
7
8 public class ProducerEngine {
9   private Map producers;
10   private List Queue;
11   private Thread queueThread;
12
13   protected ProducerEngine() {
14     producers = MirGlobal.localizer().producers().factories();
15     Queue = new Vector();
16
17 //    queueThread = new Thread(
18   }
19
20   public void addTask(String aProducerFactory, String aVerb) {
21     produceNow(aProducerFactory, aVerb, new PrintWriter(new NullWriter()));
22   }
23
24   public void produceNow(String aProducerFactory, String aVerb, PrintWriter aLogger) {
25     try {
26                   long startTime;
27                   long endTime;
28
29                   startTime = System.currentTimeMillis();
30
31       aLogger.println("Producing (" + aProducerFactory + "," + aVerb + ")<br>");
32
33       if (producers == null)
34         aLogger.println("??<br>");
35
36       ProducerFactory factory = (ProducerFactory) producers.get(aProducerFactory);
37
38       if (factory == null )
39         throw new Exception("No producer factory '"+aProducerFactory+"' present.");
40
41       Producer producer = factory.makeProducer(aVerb);
42
43       producer.produce(aLogger);
44
45                   endTime = System.currentTimeMillis();
46
47                   aLogger.println("Time: " + (endTime-startTime) + " ms<br>");
48     }
49     catch (Throwable e) {
50       try {
51         aLogger.println("exception occurred:<br>");
52         aLogger.println(e.getMessage());
53         e.printStackTrace(aLogger);
54       }
55       catch (Throwable f) {
56       }
57     }
58   }
59
60   private class ProducerQueueItem {
61     String factory;
62     String verb;
63
64     public ProducerQueueItem(String aFactory, String aVerb) {
65       factory = aFactory;
66       verb = aVerb;
67     }
68
69     public String getVerb() {
70       return verb;
71     }
72
73     public String getFactory() {
74       return factory;
75     }
76   }
77
78   private class ProducerQueue implements Runnable {
79     public void run() {
80       while (false) {
81       }
82     }
83   }
84
85 }