hps-java/src/main/java/org/lcsim/hps/evio
diff -u -r1.6 -r1.7
--- EvioFileProducer.java 16 Mar 2012 19:10:23 -0000 1.6
+++ EvioFileProducer.java 25 Mar 2012 07:26:15 -0000 1.7
@@ -14,6 +14,7 @@
import org.jlab.coda.jevio.EvioReader;
// This is copied and modified from Carl Timmer's EvioProducer class in et 12 org.jlab.coda.et.apps package.
+// TODO Add option to set number of events in put array.
public class EvioFileProducer {
EvioReader reader;
@@ -24,6 +25,7 @@
int port = EtConstants.serverPort;
int group = 1;
int size = 10000; // Default event size.
+ int delay = 0;
EvioFileProducer()
{}
@@ -105,7 +107,22 @@
usage();
return;
}
- }
+ }
+ else if (args[i].equalsIgnoreCase("-d")) {
+ try {
+ delay = Integer.parseInt(args[++i]);
+ if (delay < 1) {
+ System.out.println("delay must be > 0.");
+ usage();
+ return;
+ }
+ }
+ catch (NumberFormatException ex) {
+ System.out.println("Did not specify a proper delay.");
+ usage();
+ return;
+ }
+ }
else {
usage();
return;
@@ -134,6 +151,13 @@
// Open EVIO reader.
reader = new EvioReader(evioFileName);
+ // Print number of events.
+ System.out.println("EVIO file opened with " + reader.getEventCount() + " events");
+
+ // Press ENTER to start producing events.
+ System.out.println("Press ENTER to start producing events...");
+ System.console().readLine();
+
// Loop until event source is exhausted.
//int eventCount = 0;
EvioEvent event = reader.parseNextEvent();
@@ -147,7 +171,9 @@
1, // number of events
size, // size of event but overwritten later
group); // group number; default value is arbitrary
-
+
+ if (delay > 0) Thread.sleep(delay);
+
// Write EVIO event to EtEvent's buffer.
ByteBuffer buf = mevs[0].getDataBuffer();
EventWriter writer = new EventWriter(buf, 100000, 100, null, null);