using System; namespace RGB.NET.Core; /// /// Represents a generic update queue. /// /// The identifier used to identify the data processed by this queue. /// The type of the data processed by this queue. public interface IUpdateQueue : IReferenceCounting, IDisposable where TIdentifier : notnull { /// /// Gets a bool indicating if the queue requires a flush of all data due to an internal error. /// bool RequiresFlush { get; } /// /// Sets or merges the provided data set in the current dataset and notifies the trigger that there is new data available. /// /// The set of data. // ReSharper disable once MemberCanBeProtected.Global void SetData(ReadOnlySpan<(TIdentifier, TData)> dataSet); /// /// Resets the current data set. /// void Reset(); } /// /// Represents a generic update queue processing -data using -identifiers. /// public interface IUpdateQueue : IUpdateQueue;