/* This software is licensed by the MIT License, see LICENSE file */ /* Copyright © 2024-2025 Gregory Lirent */ namespace WebmrAPI.Services.Scanners { public class ScanQueue : IScannable { private ScanTarget _target = 0; public ScanTarget Target { get => _target; } private Queue _queue = new(); public ScanQueue Add(IScannable item) { _queue.Enqueue(item); _target |= item.Target; return this; } public async Task ScanAsync() { var tasks = new List(); while (_queue.Count > 0) { tasks.Add(_queue.Dequeue().ScanAsync()); } await Task.WhenAll(tasks.ToArray()); } } }