lcsim/src/org/lcsim/contrib/timb/util
diff -N DriverAdapter.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ DriverAdapter.java 26 May 2006 07:21:39 -0000 1.1
@@ -0,0 +1,65 @@
+package org.lcsim.util;
+
+import org.freehep.record.loop.event.ConfigurationEvent;
+import org.freehep.record.loop.event.RecordAdapter;
+import org.freehep.record.loop.event.RecordEvent;
+import org.freehep.record.loop.event.RecordSuppliedEvent;
+import org.lcsim.event.EventHeader;
+
+
+/**
+ * Drive a Driver from a Record loop
+ * @author Tony Johnson
+ */
+public class DriverAdapter extends RecordAdapter
+{
+ private Driver driver;
+ private long nskip;
+ private long neventheader;
+
+ public DriverAdapter(Driver driver)
+ {
+ this(driver, 0);
+ }
+
+ public DriverAdapter(Driver driver, long nskip)
+ {
+ this.driver = driver;
+ this.nskip = nskip ;
+ neventheader = 0;
+ }
+
+ public void finish(RecordEvent event)
+ {
+ driver.endOfData();
+ }
+
+ public void suspend(RecordEvent event)
+ {
+ driver.suspend();
+ }
+
+ public void resume(RecordEvent event)
+ {
+ driver.resume();
+ }
+
+ public void recordSupplied(RecordSuppliedEvent rse)
+ {
+ Object event = rse.getRecord();
+ if (event instanceof EventHeader) {
+ neventheader++;
+ if(neventheader > nskip) driver.process((EventHeader) event);
+ }
+ }
+
+ public void configure(ConfigurationEvent event)
+ {
+ driver.startOfData();
+ }
+
+ public void reconfigure(ConfigurationEvent event)
+ {
+ driver.startOfData();
+ }
+}