Mini8DataQueue.cs 792 B

1234567891011121314151617181920212223242526272829
  1. namespace MinicsConsole.Helper.RawDataFilter;
  2. internal class Mini8DataQueue : IMini8DataFilter, IDisposable
  3. {
  4. public Mini8DataQueue()
  5. {
  6. this._InputQueue = new(OutputQueueHandler);
  7. }
  8. public IDataSender? NextSender { get; set; }
  9. private readonly EventQueue<(Mini8Output mini8Output, ChannelData channelData)> _InputQueue;
  10. public bool Send(Mini8Output mini8Output, ChannelData channelData, object? state)
  11. {
  12. this._InputQueue.Enqueue((mini8Output, channelData));
  13. return true;
  14. }
  15. private void OutputQueueHandler((Mini8Output mini8Output, ChannelData channelData) item)
  16. {
  17. this.NextSender?.Send(item.mini8Output, item.channelData, null);
  18. }
  19. public void Dispose()
  20. {
  21. this._InputQueue?.Dispose();
  22. }
  23. }