aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Model/Tasks
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Model/Tasks')
-rw-r--r--MediaBrowser.Model/Tasks/IConfigurableScheduledTask.cs9
-rw-r--r--MediaBrowser.Model/Tasks/IScheduledTaskWorker.cs3
-rw-r--r--MediaBrowser.Model/Tasks/ITaskManager.cs31
-rw-r--r--MediaBrowser.Model/Tasks/TaskCompletionEventArgs.cs18
-rw-r--r--MediaBrowser.Model/Tasks/TaskInfo.cs5
-rw-r--r--MediaBrowser.Model/Tasks/TaskOptions.cs9
-rw-r--r--MediaBrowser.Model/Tasks/TaskTriggerInfo.cs17
7 files changed, 78 insertions, 14 deletions
diff --git a/MediaBrowser.Model/Tasks/IConfigurableScheduledTask.cs b/MediaBrowser.Model/Tasks/IConfigurableScheduledTask.cs
index 6212d76f7..b4f99208d 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
{
+ /// <summary>
+ /// Interface for configurable scheduled tasks.
+ /// </summary>
public interface IConfigurableScheduledTask
{
/// <summary>
@@ -16,6 +17,10 @@ namespace MediaBrowser.Model.Tasks
/// <value><c>true</c> if this instance is enabled; otherwise, <c>false</c>.</value>
bool IsEnabled { get; }
+ /// <summary>
+ /// Gets a value indicating whether this instance is logged.
+ /// </summary>
+ /// <value><c>true</c> if this instance is logged; otherwise, <c>false</c>.</value>
bool IsLogged { get; }
}
}
diff --git a/MediaBrowser.Model/Tasks/IScheduledTaskWorker.cs b/MediaBrowser.Model/Tasks/IScheduledTaskWorker.cs
index ca769e26b..dcf849fcd 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.
/// </summary>
/// <value>The triggers.</value>
- TaskTriggerInfo[] Triggers { get; set; }
+ IReadOnlyList<TaskTriggerInfo> Triggers { get; set; }
/// <summary>
/// Gets the unique id.
diff --git a/MediaBrowser.Model/Tasks/ITaskManager.cs b/MediaBrowser.Model/Tasks/ITaskManager.cs
index 5b55667e8..6066bbde4 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
{
+ /// <summary>
+ /// Interface for the TaskManager class.
+ /// </summary>
public interface ITaskManager : IDisposable
{
+ /// <summary>
+ /// Event handler for task execution.
+ /// </summary>
event EventHandler<GenericEventArgs<IScheduledTaskWorker>>? TaskExecuting;
+ /// <summary>
+ /// Event handler for task completion.
+ /// </summary>
event EventHandler<TaskCompletionEventArgs>? TaskCompleted;
/// <summary>
/// Gets the list of Scheduled Tasks.
/// </summary>
/// <value>The scheduled tasks.</value>
- IScheduledTaskWorker[] ScheduledTasks { get; }
+ IReadOnlyList<IScheduledTaskWorker> ScheduledTasks { get; }
/// <summary>
/// Cancels if running and queue.
@@ -56,6 +63,10 @@ namespace MediaBrowser.Model.Tasks
void QueueScheduledTask<T>()
where T : IScheduledTask;
+ /// <summary>
+ /// Queues the scheduled task if it is not already running.
+ /// </summary>
+ /// <typeparam name="T">An implementation of <see cref="IScheduledTask" />.</typeparam>
void QueueIfNotRunning<T>()
where T : IScheduledTask;
@@ -72,10 +83,24 @@ namespace MediaBrowser.Model.Tasks
/// <param name="tasks">The tasks.</param>
void AddTasks(IEnumerable<IScheduledTask> tasks);
+ /// <summary>
+ /// Adds the tasks.
+ /// </summary>
+ /// <param name="task">The tasks.</param>
void Cancel(IScheduledTaskWorker task);
+ /// <summary>
+ /// Executes the tasks.
+ /// </summary>
+ /// <param name="task">The tasks.</param>
+ /// <param name="options">The options.</param>
+ /// <returns>The executed tasks.</returns>
Task Execute(IScheduledTaskWorker task, TaskOptions options);
+ /// <summary>
+ /// Executes the tasks.
+ /// </summary>
+ /// <typeparam name="T">An implementation of <see cref="IScheduledTask" />.</typeparam>
void Execute<T>()
where T : IScheduledTask;
}
diff --git a/MediaBrowser.Model/Tasks/TaskCompletionEventArgs.cs b/MediaBrowser.Model/Tasks/TaskCompletionEventArgs.cs
index 48950667e..ab2c0ada5 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
{
+ /// <summary>
+ /// Class containing event arguments for task completion.
+ /// </summary>
public class TaskCompletionEventArgs : EventArgs
{
+ /// <summary>
+ /// Initializes a new instance of the <see cref="TaskCompletionEventArgs"/> class.
+ /// </summary>
+ /// <param name="task">Instance of the <see cref="IScheduledTaskWorker"/> interface.</param>
+ /// <param name="result">The task result.</param>
public TaskCompletionEventArgs(IScheduledTaskWorker task, TaskResult result)
{
Task = task;
Result = result;
}
+ /// <summary>
+ /// Gets the task.
+ /// </summary>
+ /// <value>The task.</value>
public IScheduledTaskWorker Task { get; }
+ /// <summary>
+ /// Gets the result.
+ /// </summary>
+ /// <value>The result.</value>
public TaskResult Result { get; }
}
}
diff --git a/MediaBrowser.Model/Tasks/TaskInfo.cs b/MediaBrowser.Model/Tasks/TaskInfo.cs
index 16de0b121..8c8ddc597 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
/// </summary>
public TaskInfo()
{
- Triggers = Array.Empty<TaskTriggerInfo>();
+ Triggers = [];
}
/// <summary>
@@ -50,7 +51,7 @@ namespace MediaBrowser.Model.Tasks
/// Gets or sets the triggers.
/// </summary>
/// <value>The triggers.</value>
- public TaskTriggerInfo[] Triggers { get; set; }
+ public IReadOnlyList<TaskTriggerInfo> Triggers { get; set; }
/// <summary>
/// Gets or sets the description.
diff --git a/MediaBrowser.Model/Tasks/TaskOptions.cs b/MediaBrowser.Model/Tasks/TaskOptions.cs
index 3a221b878..799c0554b 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
{
+ /// <summary>
+ /// Class containing options for tasks.
+ /// </summary>
public class TaskOptions
{
+ /// <summary>
+ /// Gets or sets the maximum runtime in ticks.
+ /// </summary>
+ /// <value>The ticks.</value>
public long? MaxRuntimeTicks { get; set; }
}
}
diff --git a/MediaBrowser.Model/Tasks/TaskTriggerInfo.cs b/MediaBrowser.Model/Tasks/TaskTriggerInfo.cs
index 1d8767dc1..63709557d 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
/// </summary>
public class TaskTriggerInfo
{
+ /// <summary>
+ /// The daily trigger.
+ /// </summary>
public const string TriggerDaily = "DailyTrigger";
+
+ /// <summary>
+ /// The weekly trigger.
+ /// </summary>
public const string TriggerWeekly = "WeeklyTrigger";
+
+ /// <summary>
+ /// The interval trigger.
+ /// </summary>
public const string TriggerInterval = "IntervalTrigger";
+
+ /// <summary>
+ /// The startup trigger.
+ /// </summary>
public const string TriggerStartup = "StartupTrigger";
/// <summary>