From 08ed0a9a5d2a241abe4304e03fab4ae74291e3c9 Mon Sep 17 00:00:00 2001 From: Shadowghost Date: Wed, 4 Sep 2024 17:38:10 +0200 Subject: Cleanup tasks --- .../Tasks/IConfigurableScheduledTask.cs | 9 +++++-- MediaBrowser.Model/Tasks/IScheduledTaskWorker.cs | 3 ++- MediaBrowser.Model/Tasks/ITaskManager.cs | 31 +++++++++++++++++++--- .../Tasks/TaskCompletionEventArgs.cs | 18 +++++++++++-- MediaBrowser.Model/Tasks/TaskInfo.cs | 5 ++-- MediaBrowser.Model/Tasks/TaskOptions.cs | 9 +++++-- MediaBrowser.Model/Tasks/TaskTriggerInfo.cs | 17 ++++++++++-- 7 files changed, 78 insertions(+), 14 deletions(-) (limited to 'MediaBrowser.Model/Tasks') diff --git a/MediaBrowser.Model/Tasks/IConfigurableScheduledTask.cs b/MediaBrowser.Model/Tasks/IConfigurableScheduledTask.cs index 6212d76f78..b4f99208d0 100644 --- a/MediaBrowser.Model/Tasks/IConfigurableScheduledTask.cs +++ b/MediaBrowser.Model/Tasks/IConfigurableScheduledTask.cs @@ -1,7 +1,8 @@ -#pragma warning disable CS1591 - namespace MediaBrowser.Model.Tasks { + /// + /// Interface for configurable scheduled tasks. + /// public interface IConfigurableScheduledTask { /// @@ -16,6 +17,10 @@ namespace MediaBrowser.Model.Tasks /// true if this instance is enabled; otherwise, false. bool IsEnabled { get; } + /// + /// Gets a value indicating whether this instance is logged. + /// + /// true if this instance is logged; otherwise, false. bool IsLogged { get; } } } diff --git a/MediaBrowser.Model/Tasks/IScheduledTaskWorker.cs b/MediaBrowser.Model/Tasks/IScheduledTaskWorker.cs index ca769e26b3..dcf849fcd5 100644 --- a/MediaBrowser.Model/Tasks/IScheduledTaskWorker.cs +++ b/MediaBrowser.Model/Tasks/IScheduledTaskWorker.cs @@ -1,5 +1,6 @@ #nullable disable using System; +using System.Collections.Generic; using Jellyfin.Data.Events; namespace MediaBrowser.Model.Tasks @@ -60,7 +61,7 @@ namespace MediaBrowser.Model.Tasks /// Gets or sets the triggers that define when the task will run. /// /// The triggers. - TaskTriggerInfo[] Triggers { get; set; } + IReadOnlyList Triggers { get; set; } /// /// Gets the unique id. diff --git a/MediaBrowser.Model/Tasks/ITaskManager.cs b/MediaBrowser.Model/Tasks/ITaskManager.cs index 5b55667e82..6066bbde49 100644 --- a/MediaBrowser.Model/Tasks/ITaskManager.cs +++ b/MediaBrowser.Model/Tasks/ITaskManager.cs @@ -1,5 +1,3 @@ -#pragma warning disable CS1591 - using System; using System.Collections.Generic; using System.Threading.Tasks; @@ -7,17 +5,26 @@ using Jellyfin.Data.Events; namespace MediaBrowser.Model.Tasks { + /// + /// Interface for the TaskManager class. + /// public interface ITaskManager : IDisposable { + /// + /// Event handler for task execution. + /// event EventHandler>? TaskExecuting; + /// + /// Event handler for task completion. + /// event EventHandler? TaskCompleted; /// /// Gets the list of Scheduled Tasks. /// /// The scheduled tasks. - IScheduledTaskWorker[] ScheduledTasks { get; } + IReadOnlyList ScheduledTasks { get; } /// /// Cancels if running and queue. @@ -56,6 +63,10 @@ namespace MediaBrowser.Model.Tasks void QueueScheduledTask() where T : IScheduledTask; + /// + /// Queues the scheduled task if it is not already running. + /// + /// An implementation of . void QueueIfNotRunning() where T : IScheduledTask; @@ -72,10 +83,24 @@ namespace MediaBrowser.Model.Tasks /// The tasks. void AddTasks(IEnumerable tasks); + /// + /// Adds the tasks. + /// + /// The tasks. void Cancel(IScheduledTaskWorker task); + /// + /// Executes the tasks. + /// + /// The tasks. + /// The options. + /// The executed tasks. Task Execute(IScheduledTaskWorker task, TaskOptions options); + /// + /// Executes the tasks. + /// + /// An implementation of . void Execute() where T : IScheduledTask; } diff --git a/MediaBrowser.Model/Tasks/TaskCompletionEventArgs.cs b/MediaBrowser.Model/Tasks/TaskCompletionEventArgs.cs index 48950667e6..ab2c0ada53 100644 --- a/MediaBrowser.Model/Tasks/TaskCompletionEventArgs.cs +++ b/MediaBrowser.Model/Tasks/TaskCompletionEventArgs.cs @@ -1,19 +1,33 @@ -#pragma warning disable CS1591 - using System; namespace MediaBrowser.Model.Tasks { + /// + /// Class containing event arguments for task completion. + /// public class TaskCompletionEventArgs : EventArgs { + /// + /// Initializes a new instance of the class. + /// + /// Instance of the interface. + /// The task result. public TaskCompletionEventArgs(IScheduledTaskWorker task, TaskResult result) { Task = task; Result = result; } + /// + /// Gets the task. + /// + /// The task. public IScheduledTaskWorker Task { get; } + /// + /// Gets the result. + /// + /// The result. public TaskResult Result { get; } } } diff --git a/MediaBrowser.Model/Tasks/TaskInfo.cs b/MediaBrowser.Model/Tasks/TaskInfo.cs index 16de0b1210..8c8ddc597d 100644 --- a/MediaBrowser.Model/Tasks/TaskInfo.cs +++ b/MediaBrowser.Model/Tasks/TaskInfo.cs @@ -1,5 +1,6 @@ #nullable disable using System; +using System.Collections.Generic; namespace MediaBrowser.Model.Tasks { @@ -13,7 +14,7 @@ namespace MediaBrowser.Model.Tasks /// public TaskInfo() { - Triggers = Array.Empty(); + Triggers = []; } /// @@ -50,7 +51,7 @@ namespace MediaBrowser.Model.Tasks /// Gets or sets the triggers. /// /// The triggers. - public TaskTriggerInfo[] Triggers { get; set; } + public IReadOnlyList Triggers { get; set; } /// /// Gets or sets the description. diff --git a/MediaBrowser.Model/Tasks/TaskOptions.cs b/MediaBrowser.Model/Tasks/TaskOptions.cs index 3a221b878f..799c0554b8 100644 --- a/MediaBrowser.Model/Tasks/TaskOptions.cs +++ b/MediaBrowser.Model/Tasks/TaskOptions.cs @@ -1,9 +1,14 @@ -#pragma warning disable CS1591 - namespace MediaBrowser.Model.Tasks { + /// + /// Class containing options for tasks. + /// public class TaskOptions { + /// + /// Gets or sets the maximum runtime in ticks. + /// + /// The ticks. public long? MaxRuntimeTicks { get; set; } } } diff --git a/MediaBrowser.Model/Tasks/TaskTriggerInfo.cs b/MediaBrowser.Model/Tasks/TaskTriggerInfo.cs index 1d8767dc16..63709557db 100644 --- a/MediaBrowser.Model/Tasks/TaskTriggerInfo.cs +++ b/MediaBrowser.Model/Tasks/TaskTriggerInfo.cs @@ -1,6 +1,4 @@ #nullable disable -#pragma warning disable CS1591 - using System; namespace MediaBrowser.Model.Tasks @@ -10,9 +8,24 @@ namespace MediaBrowser.Model.Tasks /// public class TaskTriggerInfo { + /// + /// The daily trigger. + /// public const string TriggerDaily = "DailyTrigger"; + + /// + /// The weekly trigger. + /// public const string TriggerWeekly = "WeeklyTrigger"; + + /// + /// The interval trigger. + /// public const string TriggerInterval = "IntervalTrigger"; + + /// + /// The startup trigger. + /// public const string TriggerStartup = "StartupTrigger"; /// -- cgit v1.2.3