public bool check(WithTime <Either <T1, T2> > data) { var t = data.timePoint; return(data.value.Match( (T2 t2) => { if (t >= time2.Unwrap(0)) { time2 = t; if (useVersionChecker[1]) { return versionChecker[1].check(t2); } else { return true; } } else { return false; } }, (T1 t1) => { if (t >= time1.Unwrap(0)) { time1 = t; if (useVersionChecker[0]) { return versionChecker[0].check(t1); } else { return true; } } else { return false; } } )); }
public bool check(WithTime <T> data) { lock (lockObj) { var t = data.timePoint; if (lastTime > t) { return(false); } if (useVersionChecker) { if (!versionChecker.check(data.value)) { return(false); } } lastTime = t; return(true); } }