// // IPacketSource.cs // // Copyright (c) František Boháček. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. using System.Diagnostics.CodeAnalysis; namespace Anonymizer.Sinks; /// /// An interface for receiving packets from an arbitrary source. /// public interface IPacketSource { /// /// The current cursor position (current packet index). /// public long Cursor { get; } /// /// Tries to get next packet, if there is any. /// /// /// Moves the cursor. /// /// The information about next packet. /// The cancellation token used for cancelling the operation. /// Whether next packet was loaded and cursor moved. If false, there are no more packets. public Task TryGetNextPacketAsync([NotNullWhen(true)] out PacketInfo? packetInfo, CancellationToken ct = default); }