Commit in lcsim/src/org/lcsim/contrib/timb/util on MAIN
DriverAdapter.java+65added 1.1
fastmc modifications Oct 2005 - Feb 2006 

lcsim/src/org/lcsim/contrib/timb/util
DriverAdapter.java added at 1.1
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();
+   }
+}
CVSspam 0.2.8