in Source/Tx.Bond/BinaryEtwObservable.cs [133:185]
private static IObservable<EtwNativeEvent> CreateEtwObservable(
bool useSequentialReader,
DateTime? startTime,
DateTime? endTime,
params string[] files)
{
if (startTime.HasValue != endTime.HasValue)
{
throw new ArgumentException("Specify both start and end times or leave both of them null.");
}
if (startTime.HasValue && startTime.Value >= endTime.Value)
{
throw new ArgumentException("Start time should be less than end time.");
}
if (files == null)
{
throw new ArgumentNullException(nameof(files));
}
if (files.Length == 0)
{
throw new ArgumentException("The Files parameter should contain at least one element.");
}
IObservable<EtwNativeEvent> etwObservable;
if (useSequentialReader)
{
if (startTime.HasValue)
{
etwObservable = EtwObservable.FromSequentialFiles(startTime.Value, endTime.Value, files);
}
else
{
etwObservable = EtwObservable.FromSequentialFiles(files);
}
}
else
{
if (startTime.HasValue)
{
etwObservable = EtwObservable.FromFiles(startTime.Value, endTime.Value, files);
}
else
{
etwObservable = EtwObservable.FromFiles(files);
}
}
return etwObservable;
}