package edu.sc.seis.sod.subsetter.availableData; import org.w3c.dom.Element; import edu.iris.Fissures.IfSeismogramDC.RequestFilter; import edu.iris.Fissures.model.MicroSecondDate; import edu.iris.Fissures.model.TimeInterval; import edu.iris.Fissures.network.ChannelImpl; import edu.sc.seis.fissuresUtil.cache.CacheEvent; import edu.sc.seis.fissuresUtil.cache.EventUtil; import edu.sc.seis.fissuresUtil.chooser.ClockUtil; import edu.sc.seis.sod.ConfigurationException; import edu.sc.seis.sod.CookieJar; import edu.sc.seis.sod.SodUtil; import edu.sc.seis.sod.status.StringTree; import edu.sc.seis.sod.status.StringTreeLeaf; public class PostEventWait implements AvailableDataSubsetter { public PostEventWait(Element config) throws ConfigurationException { postOriginTime = SodUtil.loadTimeInterval(config); } public StringTree accept(CacheEvent ev, ChannelImpl chan, RequestFilter[] request, RequestFilter[] available, CookieJar cookies) { MicroSecondDate originTime = new MicroSecondDate(EventUtil.extractOrigin(ev).getOriginTime()); MicroSecondDate waitTime = originTime.add(postOriginTime); if ( ! waitTime.after(ClockUtil.now())) { return new StringTreeLeaf(this, false, "Wait until: "+waitTime); } return new StringTreeLeaf(this, true); } private TimeInterval postOriginTime; }