using System.Threading.Channels; using Inspectron.Epson.Queue; namespace Inspectron.Epson.PrintServer.JobSources; public class SingleJobSource: IPrintJobSource { public SingleJobSource(PrintJob job) { _channel.Writer.WriteAsync(job); } private Channel _channel = Channel.CreateUnbounded(); public Task StartAsync() { return Task.CompletedTask; } public async Task GetNextJobAsync(CancellationToken cancellationToken) { return await _channel.Reader.ReadAsync(cancellationToken); } }