123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- using System;
- using System.Collections.Generic;
- using System.Threading.Tasks;
- 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>
- IReadOnlyList<IScheduledTaskWorker> ScheduledTasks { get; }
- /// <summary>
- /// Cancels if running and queue.
- /// </summary>
- /// <typeparam name="T">An implementation of <see cref="IScheduledTask" />.</typeparam>
- /// <param name="options">Task options.</param>
- void CancelIfRunningAndQueue<T>(TaskOptions options)
- where T : IScheduledTask;
- /// <summary>
- /// Cancels if running and queue.
- /// </summary>
- /// <typeparam name="T">An implementation of <see cref="IScheduledTask" />.</typeparam>
- void CancelIfRunningAndQueue<T>()
- where T : IScheduledTask;
- /// <summary>
- /// Cancels if running.
- /// </summary>
- /// <typeparam name="T">An implementation of <see cref="IScheduledTask" />.</typeparam>
- void CancelIfRunning<T>()
- where T : IScheduledTask;
- /// <summary>
- /// Queues the scheduled task.
- /// </summary>
- /// <typeparam name="T">An implementation of <see cref="IScheduledTask" />.</typeparam>
- /// <param name="options">Task options.</param>
- void QueueScheduledTask<T>(TaskOptions options)
- where T : IScheduledTask;
- /// <summary>
- /// Queues the scheduled task.
- /// </summary>
- /// <typeparam name="T">An implementation of <see cref="IScheduledTask" />.</typeparam>
- 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;
- /// <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>
- /// Adds the tasks.
- /// </summary>
- /// <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;
- }
- }
|