Added document generation

This commit is contained in:
Simon Gruber
2023-11-22 15:23:23 +01:00
parent 8ada606fa6
commit 3c50e7121d
2056 changed files with 2654 additions and 199 deletions
+23 -20
View File
@@ -2,9 +2,14 @@
public abstract class TaskMonitor : ITaskMonitor
{
protected static IReadOnlyDictionary<TaskStatus, string> StatusMap { get; } =
new Dictionary<TaskStatus, string>
{
/// <inheritdoc />
public TimeSpan Interval { get; init; } = TimeSpan.FromSeconds(1);
private readonly ICollection<(string? Name, Task Task)> _tasks;
protected static IReadOnlyDictionary<TaskStatus, string> StatusMap { get; } =
new Dictionary<TaskStatus, string>
{
{ TaskStatus.RanToCompletion, "DONE" },
{ TaskStatus.Faulted, "FAULT" },
{ TaskStatus.Canceled, "CANCL" },
@@ -13,27 +18,25 @@ public abstract class TaskMonitor : ITaskMonitor
{ TaskStatus.WaitingForActivation, "WAIT" },
{ TaskStatus.Running, "RUN" },
{ TaskStatus.WaitingForChildrenToComplete, "RUN" },
};
};
private readonly ICollection<(string? Name, Task Task)> _tasks;
protected TaskMonitor(IEnumerable<(string? Name, Task Task)> tasks) => _tasks = tasks.ToArray();
protected TaskMonitor(IEnumerable<(string? Name, Task Task)> tasks) => _tasks = tasks.ToArray();
protected TaskMonitor(IEnumerable<Task> tasks) :
this(tasks.Select(t => (t.Id.ToString(), t))!)
{ }
protected TaskMonitor(IEnumerable<Task> tasks) :
this(tasks.Select(t => (t.Id.ToString(), t))!)
{ }
public Task Run()
{
var waitTask = Task.WhenAll(_tasks.Select(i => i.Task));
public Task Run()
while (!waitTask.Wait(Interval))
{
var waitTask = Task.WhenAll(_tasks.Select(i => i.Task));
while (!waitTask.Wait(TimeSpan.FromSeconds(1)))
{
OnUpdate(_tasks);
}
return waitTask;
OnUpdate(_tasks);
}
protected abstract void OnUpdate(ICollection<(string? Name, Task Task)> tasks);
}
return waitTask;
}
protected abstract void OnUpdate(ICollection<(string? Name, Task Task)> tasks);
}