ITaskManager.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. using MediaBrowser.Model.Tasks;
  2. using System;
  3. using System.Collections.Generic;
  4. namespace MediaBrowser.Common.ScheduledTasks
  5. {
  6. public interface ITaskManager : IDisposable
  7. {
  8. /// <summary>
  9. /// Gets the list of Scheduled Tasks
  10. /// </summary>
  11. /// <value>The scheduled tasks.</value>
  12. IScheduledTask[] ScheduledTasks { get; }
  13. /// <summary>
  14. /// Cancels if running and queue.
  15. /// </summary>
  16. /// <typeparam name="T"></typeparam>
  17. void CancelIfRunningAndQueue<T>()
  18. where T : IScheduledTask;
  19. /// <summary>
  20. /// Queues the scheduled task.
  21. /// </summary>
  22. /// <typeparam name="T"></typeparam>
  23. void QueueScheduledTask<T>()
  24. where T : IScheduledTask;
  25. /// <summary>
  26. /// Queues the scheduled task.
  27. /// </summary>
  28. /// <param name="task">The task.</param>
  29. void QueueScheduledTask(IScheduledTask task);
  30. /// <summary>
  31. /// Adds the tasks.
  32. /// </summary>
  33. /// <param name="tasks">The tasks.</param>
  34. void AddTasks(IEnumerable<IScheduledTask> tasks);
  35. /// <summary>
  36. /// Called when [task completed].
  37. /// </summary>
  38. /// <param name="task">The task.</param>
  39. /// <param name="startTime">The start time.</param>
  40. /// <param name="endTime">The end time.</param>
  41. /// <param name="status">The status.</param>
  42. void OnTaskCompleted(IScheduledTask task, DateTime startTime, DateTime endTime, TaskCompletionStatus status);
  43. /// <summary>
  44. /// Gets the last execution result.
  45. /// </summary>
  46. /// <param name="task">The task.</param>
  47. /// <returns>TaskResult.</returns>
  48. TaskResult GetLastExecutionResult(IScheduledTask task);
  49. /// <summary>
  50. /// Loads the triggers.
  51. /// </summary>
  52. /// <param name="task">The task.</param>
  53. /// <returns>IEnumerable{BaseTaskTrigger}.</returns>
  54. IEnumerable<ITaskTrigger> LoadTriggers(IScheduledTask task);
  55. /// <summary>
  56. /// Saves the triggers.
  57. /// </summary>
  58. /// <param name="task">The task.</param>
  59. /// <param name="triggers">The triggers.</param>
  60. void SaveTriggers(IScheduledTask task, IEnumerable<ITaskTrigger> triggers);
  61. }
  62. }