in Source/Tx.Core/CompositeDeserializer.cs [101:128]
public void OnNext(TInput value)
{
DateTimeOffset? timestamp = null;
foreach (var d in _deserializers)
{
Timestamped<object> ts;
if (d.TryDeserialize(value, out ts))
{
if (timestamp.HasValue && timestamp.Value != ts.Timestamp)
{
_observer.OnError(new Exception("Several type maps return different timestamps for the same source event."));
return;
}
timestamp = ts.Timestamp;
// TODO: this achieves the right semantics,
// but the performance will be sub optimal
if (ts.Timestamp.DateTime < StartTime)
return;
if (ts.Timestamp.DateTime > EndTime)
return;
_observer.OnNext(ts);
}
}
}