diff options
Diffstat (limited to 'MediaBrowser.Model/Tasks')
| -rw-r--r-- | MediaBrowser.Model/Tasks/IConfigurableScheduledTask.cs | 3 | ||||
| -rw-r--r-- | MediaBrowser.Model/Tasks/IScheduledTask.cs | 13 | ||||
| -rw-r--r-- | MediaBrowser.Model/Tasks/IScheduledTaskWorker.cs | 10 | ||||
| -rw-r--r-- | MediaBrowser.Model/Tasks/ITaskManager.cs | 26 | ||||
| -rw-r--r-- | MediaBrowser.Model/Tasks/ITaskTrigger.cs | 18 | ||||
| -rw-r--r-- | MediaBrowser.Model/Tasks/ScheduledTaskHelpers.cs | 6 | ||||
| -rw-r--r-- | MediaBrowser.Model/Tasks/TaskCompletionEventArgs.cs | 12 | ||||
| -rw-r--r-- | MediaBrowser.Model/Tasks/TaskCompletionStatus.cs | 10 | ||||
| -rw-r--r-- | MediaBrowser.Model/Tasks/TaskInfo.cs | 21 | ||||
| -rw-r--r-- | MediaBrowser.Model/Tasks/TaskOptions.cs | 2 | ||||
| -rw-r--r-- | MediaBrowser.Model/Tasks/TaskResult.cs | 3 | ||||
| -rw-r--r-- | MediaBrowser.Model/Tasks/TaskState.cs | 10 | ||||
| -rw-r--r-- | MediaBrowser.Model/Tasks/TaskTriggerInfo.cs | 17 |
13 files changed, 92 insertions, 59 deletions
diff --git a/MediaBrowser.Model/Tasks/IConfigurableScheduledTask.cs b/MediaBrowser.Model/Tasks/IConfigurableScheduledTask.cs index 9c4b75c54..6212d76f7 100644 --- a/MediaBrowser.Model/Tasks/IConfigurableScheduledTask.cs +++ b/MediaBrowser.Model/Tasks/IConfigurableScheduledTask.cs @@ -1,3 +1,5 @@ +#pragma warning disable CS1591 + namespace MediaBrowser.Model.Tasks { public interface IConfigurableScheduledTask @@ -7,6 +9,7 @@ namespace MediaBrowser.Model.Tasks /// </summary> /// <value><c>true</c> if this instance is hidden; otherwise, <c>false</c>.</value> bool IsHidden { get; } + /// <summary> /// Gets a value indicating whether this instance is enabled. /// </summary> diff --git a/MediaBrowser.Model/Tasks/IScheduledTask.cs b/MediaBrowser.Model/Tasks/IScheduledTask.cs index a615ebb07..bf87088e4 100644 --- a/MediaBrowser.Model/Tasks/IScheduledTask.cs +++ b/MediaBrowser.Model/Tasks/IScheduledTask.cs @@ -6,16 +6,19 @@ using System.Threading.Tasks; namespace MediaBrowser.Model.Tasks { /// <summary> - /// Interface IScheduledTaskWorker + /// Interface IScheduledTaskWorker. /// </summary> public interface IScheduledTask { /// <summary> - /// Gets the name of the task + /// Gets the name of the task. /// </summary> /// <value>The name.</value> string Name { get; } + /// <summary> + /// Gets the key of the task. + /// </summary> string Key { get; } /// <summary> @@ -31,7 +34,7 @@ namespace MediaBrowser.Model.Tasks string Category { get; } /// <summary> - /// Executes the task + /// Executes the task. /// </summary> /// <param name="cancellationToken">The cancellation token.</param> /// <param name="progress">The progress.</param> @@ -39,9 +42,9 @@ namespace MediaBrowser.Model.Tasks Task Execute(CancellationToken cancellationToken, IProgress<double> progress); /// <summary> - /// Gets the default triggers. + /// Gets the default triggers that define when the task will run. /// </summary> - /// <returns>IEnumerable{BaseTaskTrigger}.</returns> + /// <returns>The default triggers that define when the task will run.</returns> IEnumerable<TaskTriggerInfo> GetDefaultTriggers(); } } diff --git a/MediaBrowser.Model/Tasks/IScheduledTaskWorker.cs b/MediaBrowser.Model/Tasks/IScheduledTaskWorker.cs index 61e3a65eb..ca769e26b 100644 --- a/MediaBrowser.Model/Tasks/IScheduledTaskWorker.cs +++ b/MediaBrowser.Model/Tasks/IScheduledTaskWorker.cs @@ -1,10 +1,11 @@ +#nullable disable using System; -using MediaBrowser.Model.Events; +using Jellyfin.Data.Events; namespace MediaBrowser.Model.Tasks { /// <summary> - /// Interface IScheduledTaskWorker + /// Interface IScheduledTaskWorker. /// </summary> public interface IScheduledTaskWorker : IDisposable { @@ -14,7 +15,7 @@ namespace MediaBrowser.Model.Tasks event EventHandler<GenericEventArgs<double>> TaskProgress; /// <summary> - /// Gets or sets the scheduled task. + /// Gets the scheduled task. /// </summary> /// <value>The scheduled task.</value> IScheduledTask ScheduledTask { get; } @@ -56,10 +57,9 @@ namespace MediaBrowser.Model.Tasks double? CurrentProgress { get; } /// <summary> - /// Gets the triggers that define when the task will run + /// Gets or sets the triggers that define when the task will run. /// </summary> /// <value>The triggers.</value> - /// <exception cref="ArgumentNullException">value</exception> TaskTriggerInfo[] Triggers { get; set; } /// <summary> diff --git a/MediaBrowser.Model/Tasks/ITaskManager.cs b/MediaBrowser.Model/Tasks/ITaskManager.cs index 57b8d1af8..a86bf2a1c 100644 --- a/MediaBrowser.Model/Tasks/ITaskManager.cs +++ b/MediaBrowser.Model/Tasks/ITaskManager.cs @@ -1,14 +1,20 @@ +#pragma warning disable CS1591 + using System; using System.Collections.Generic; using System.Threading.Tasks; -using MediaBrowser.Model.Events; +using Jellyfin.Data.Events; namespace MediaBrowser.Model.Tasks { public interface ITaskManager : IDisposable { + event EventHandler<GenericEventArgs<IScheduledTaskWorker>> TaskExecuting; + + event EventHandler<TaskCompletionEventArgs> TaskCompleted; + /// <summary> - /// Gets the list of Scheduled Tasks + /// Gets the list of Scheduled Tasks. /// </summary> /// <value>The scheduled tasks.</value> IScheduledTaskWorker[] ScheduledTasks { get; } @@ -16,7 +22,7 @@ namespace MediaBrowser.Model.Tasks /// <summary> /// Cancels if running and queue. /// </summary> - /// <typeparam name="T"></typeparam> + /// <typeparam name="T">An implementatin of <see cref="IScheduledTask" />.</typeparam> /// <param name="options">Task options.</param> void CancelIfRunningAndQueue<T>(TaskOptions options) where T : IScheduledTask; @@ -24,21 +30,21 @@ namespace MediaBrowser.Model.Tasks /// <summary> /// Cancels if running and queue. /// </summary> - /// <typeparam name="T"></typeparam> + /// <typeparam name="T">An implementatin of <see cref="IScheduledTask" />.</typeparam> void CancelIfRunningAndQueue<T>() where T : IScheduledTask; /// <summary> /// Cancels if running. /// </summary> - /// <typeparam name="T"></typeparam> + /// <typeparam name="T">An implementatin of <see cref="IScheduledTask" />.</typeparam> void CancelIfRunning<T>() where T : IScheduledTask; /// <summary> /// Queues the scheduled task. /// </summary> - /// <typeparam name="T"></typeparam> + /// <typeparam name="T">An implementatin of <see cref="IScheduledTask" />.</typeparam> /// <param name="options">Task options.</param> void QueueScheduledTask<T>(TaskOptions options) where T : IScheduledTask; @@ -46,7 +52,7 @@ namespace MediaBrowser.Model.Tasks /// <summary> /// Queues the scheduled task. /// </summary> - /// <typeparam name="T"></typeparam> + /// <typeparam name="T">An implementatin of <see cref="IScheduledTask" />.</typeparam> void QueueScheduledTask<T>() where T : IScheduledTask; @@ -56,6 +62,8 @@ namespace MediaBrowser.Model.Tasks /// <summary> /// Queues the scheduled task. /// </summary> + /// <param name="task">The <see cref="IScheduledTask" /> to queue.</param> + /// <param name="options">The <see cref="TaskOptions" /> to use.</param> void QueueScheduledTask(IScheduledTask task, TaskOptions options); /// <summary> @@ -65,12 +73,10 @@ namespace MediaBrowser.Model.Tasks void AddTasks(IEnumerable<IScheduledTask> tasks); void Cancel(IScheduledTaskWorker task); + Task Execute(IScheduledTaskWorker task, TaskOptions options); void Execute<T>() where T : IScheduledTask; - - event EventHandler<GenericEventArgs<IScheduledTaskWorker>> TaskExecuting; - event EventHandler<TaskCompletionEventArgs> TaskCompleted; } } diff --git a/MediaBrowser.Model/Tasks/ITaskTrigger.cs b/MediaBrowser.Model/Tasks/ITaskTrigger.cs index c8433ed21..999db9605 100644 --- a/MediaBrowser.Model/Tasks/ITaskTrigger.cs +++ b/MediaBrowser.Model/Tasks/ITaskTrigger.cs @@ -4,27 +4,31 @@ using Microsoft.Extensions.Logging; namespace MediaBrowser.Model.Tasks { /// <summary> - /// Interface ITaskTrigger + /// Interface ITaskTrigger. /// </summary> public interface ITaskTrigger { /// <summary> - /// Fires when the trigger condition is satisfied and the task should run + /// Fires when the trigger condition is satisfied and the task should run. /// </summary> - event EventHandler<EventArgs> Triggered; + event EventHandler<EventArgs>? Triggered; /// <summary> - /// Gets or sets the options of this task. + /// Gets the options of this task. /// </summary> - TaskOptions TaskOptions { get; set; } + TaskOptions TaskOptions { get; } /// <summary> - /// Stars waiting for the trigger action + /// Stars waiting for the trigger action. /// </summary> + /// <param name="lastResult">Result of the last run triggerd task.</param> + /// <param name="logger">The <see cref="ILogger"/>.</param> + /// <param name="taskName">The name of the task.</param> + /// <param name="isApplicationStartup">Wheter or not this is is fired during startup.</param> void Start(TaskResult lastResult, ILogger logger, string taskName, bool isApplicationStartup); /// <summary> - /// Stops waiting for the trigger action + /// Stops waiting for the trigger action. /// </summary> void Stop(); } diff --git a/MediaBrowser.Model/Tasks/ScheduledTaskHelpers.cs b/MediaBrowser.Model/Tasks/ScheduledTaskHelpers.cs index e461e4a4b..9063903ae 100644 --- a/MediaBrowser.Model/Tasks/ScheduledTaskHelpers.cs +++ b/MediaBrowser.Model/Tasks/ScheduledTaskHelpers.cs @@ -1,7 +1,7 @@ namespace MediaBrowser.Model.Tasks { /// <summary> - /// Class ScheduledTaskHelpers + /// Class ScheduledTaskHelpers. /// </summary> public static class ScheduledTaskHelpers { @@ -14,9 +14,7 @@ namespace MediaBrowser.Model.Tasks { var isHidden = false; - var configurableTask = task.ScheduledTask as IConfigurableScheduledTask; - - if (configurableTask != null) + if (task.ScheduledTask is IConfigurableScheduledTask configurableTask) { isHidden = configurableTask.IsHidden; } diff --git a/MediaBrowser.Model/Tasks/TaskCompletionEventArgs.cs b/MediaBrowser.Model/Tasks/TaskCompletionEventArgs.cs index 05eaff8da..48950667e 100644 --- a/MediaBrowser.Model/Tasks/TaskCompletionEventArgs.cs +++ b/MediaBrowser.Model/Tasks/TaskCompletionEventArgs.cs @@ -1,11 +1,19 @@ +#pragma warning disable CS1591 + using System; namespace MediaBrowser.Model.Tasks { public class TaskCompletionEventArgs : EventArgs { - public IScheduledTaskWorker Task { get; set; } + public TaskCompletionEventArgs(IScheduledTaskWorker task, TaskResult result) + { + Task = task; + Result = result; + } + + public IScheduledTaskWorker Task { get; } - public TaskResult Result { get; set; } + public TaskResult Result { get; } } } diff --git a/MediaBrowser.Model/Tasks/TaskCompletionStatus.cs b/MediaBrowser.Model/Tasks/TaskCompletionStatus.cs index 4d7ff523d..5c8b5f223 100644 --- a/MediaBrowser.Model/Tasks/TaskCompletionStatus.cs +++ b/MediaBrowser.Model/Tasks/TaskCompletionStatus.cs @@ -1,27 +1,27 @@ namespace MediaBrowser.Model.Tasks { /// <summary> - /// Enum TaskCompletionStatus + /// Enum TaskCompletionStatus. /// </summary> public enum TaskCompletionStatus { /// <summary> - /// The completed + /// The completed. /// </summary> Completed, /// <summary> - /// The failed + /// The failed. /// </summary> Failed, /// <summary> - /// Manually cancelled by the user + /// Manually cancelled by the user. /// </summary> Cancelled, /// <summary> - /// Aborted due to a system failure or shutdown + /// Aborted due to a system failure or shutdown. /// </summary> Aborted } diff --git a/MediaBrowser.Model/Tasks/TaskInfo.cs b/MediaBrowser.Model/Tasks/TaskInfo.cs index 8d80e68cf..16de0b121 100644 --- a/MediaBrowser.Model/Tasks/TaskInfo.cs +++ b/MediaBrowser.Model/Tasks/TaskInfo.cs @@ -1,11 +1,22 @@ +#nullable disable +using System; + namespace MediaBrowser.Model.Tasks { /// <summary> - /// Class TaskInfo + /// Class TaskInfo. /// </summary> public class TaskInfo { /// <summary> + /// Initializes a new instance of the <see cref="TaskInfo"/> class. + /// </summary> + public TaskInfo() + { + Triggers = Array.Empty<TaskTriggerInfo>(); + } + + /// <summary> /// Gets or sets the name. /// </summary> /// <value>The name.</value> @@ -64,13 +75,5 @@ namespace MediaBrowser.Model.Tasks /// </summary> /// <value>The key.</value> public string Key { get; set; } - - /// <summary> - /// Initializes a new instance of the <see cref="TaskInfo"/> class. - /// </summary> - public TaskInfo() - { - Triggers = new TaskTriggerInfo[] { }; - } } } diff --git a/MediaBrowser.Model/Tasks/TaskOptions.cs b/MediaBrowser.Model/Tasks/TaskOptions.cs index a9f03303a..3a221b878 100644 --- a/MediaBrowser.Model/Tasks/TaskOptions.cs +++ b/MediaBrowser.Model/Tasks/TaskOptions.cs @@ -1,3 +1,5 @@ +#pragma warning disable CS1591 + namespace MediaBrowser.Model.Tasks { public class TaskOptions diff --git a/MediaBrowser.Model/Tasks/TaskResult.cs b/MediaBrowser.Model/Tasks/TaskResult.cs index eede9069f..31001aeb2 100644 --- a/MediaBrowser.Model/Tasks/TaskResult.cs +++ b/MediaBrowser.Model/Tasks/TaskResult.cs @@ -1,9 +1,10 @@ +#nullable disable using System; namespace MediaBrowser.Model.Tasks { /// <summary> - /// Class TaskExecutionInfo + /// Class TaskExecutionInfo. /// </summary> public class TaskResult { diff --git a/MediaBrowser.Model/Tasks/TaskState.cs b/MediaBrowser.Model/Tasks/TaskState.cs index 91bc7f682..619dedb70 100644 --- a/MediaBrowser.Model/Tasks/TaskState.cs +++ b/MediaBrowser.Model/Tasks/TaskState.cs @@ -1,20 +1,22 @@ namespace MediaBrowser.Model.Tasks { /// <summary> - /// Enum TaskState + /// Enum TaskState. /// </summary> public enum TaskState { /// <summary> - /// The idle + /// The idle. /// </summary> Idle, + /// <summary> - /// The cancelling + /// The cancelling. /// </summary> Cancelling, + /// <summary> - /// The running + /// The running. /// </summary> Running } diff --git a/MediaBrowser.Model/Tasks/TaskTriggerInfo.cs b/MediaBrowser.Model/Tasks/TaskTriggerInfo.cs index 714f11872..f8a8c727e 100644 --- a/MediaBrowser.Model/Tasks/TaskTriggerInfo.cs +++ b/MediaBrowser.Model/Tasks/TaskTriggerInfo.cs @@ -1,12 +1,21 @@ +#nullable disable +#pragma warning disable CS1591 + using System; namespace MediaBrowser.Model.Tasks { /// <summary> - /// Class TaskTriggerInfo + /// Class TaskTriggerInfo. /// </summary> public class TaskTriggerInfo { + public const string TriggerDaily = "DailyTrigger"; + public const string TriggerWeekly = "WeeklyTrigger"; + public const string TriggerInterval = "IntervalTrigger"; + public const string TriggerSystemEvent = "SystemEventTrigger"; + public const string TriggerStartup = "StartupTrigger"; + /// <summary> /// Gets or sets the type. /// </summary> @@ -36,11 +45,5 @@ namespace MediaBrowser.Model.Tasks /// </summary> /// <value>The maximum runtime ticks.</value> public long? MaxRuntimeTicks { get; set; } - - public const string TriggerDaily = "DailyTrigger"; - public const string TriggerWeekly = "WeeklyTrigger"; - public const string TriggerInterval = "IntervalTrigger"; - public const string TriggerSystemEvent = "SystemEventTrigger"; - public const string TriggerStartup = "StartupTrigger"; } } |
