From 07791d46a571d3d6eed23e98ec0fe1c46ea0d37f Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sun, 23 Oct 2016 15:14:57 -0400 Subject: rework scheduled tasks in preparation of common project going portable --- .../Tasks/IConfigurableScheduledTask.cs | 18 +++++++++ MediaBrowser.Model/Tasks/IScheduledTask.cs | 47 ++++++++++++++++++++++ MediaBrowser.Model/Tasks/TaskExecutionOptions.cs | 11 +++++ MediaBrowser.Model/Tasks/TaskTriggerInfo.cs | 6 +++ 4 files changed, 82 insertions(+) create mode 100644 MediaBrowser.Model/Tasks/IConfigurableScheduledTask.cs create mode 100644 MediaBrowser.Model/Tasks/IScheduledTask.cs create mode 100644 MediaBrowser.Model/Tasks/TaskExecutionOptions.cs (limited to 'MediaBrowser.Model/Tasks') diff --git a/MediaBrowser.Model/Tasks/IConfigurableScheduledTask.cs b/MediaBrowser.Model/Tasks/IConfigurableScheduledTask.cs new file mode 100644 index 0000000000..ed981a905b --- /dev/null +++ b/MediaBrowser.Model/Tasks/IConfigurableScheduledTask.cs @@ -0,0 +1,18 @@ +namespace MediaBrowser.Model.Tasks +{ + public interface IConfigurableScheduledTask + { + /// + /// Gets a value indicating whether this instance is hidden. + /// + /// true if this instance is hidden; otherwise, false. + bool IsHidden { get; } + /// + /// Gets a value indicating whether this instance is enabled. + /// + /// true if this instance is enabled; otherwise, false. + bool IsEnabled { get; } + + bool IsLogged { get; } + } +} \ No newline at end of file diff --git a/MediaBrowser.Model/Tasks/IScheduledTask.cs b/MediaBrowser.Model/Tasks/IScheduledTask.cs new file mode 100644 index 0000000000..81ba239ad8 --- /dev/null +++ b/MediaBrowser.Model/Tasks/IScheduledTask.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.Threading; +using System.Threading.Tasks; + +namespace MediaBrowser.Model.Tasks +{ + /// + /// Interface IScheduledTaskWorker + /// + public interface IScheduledTask + { + /// + /// Gets the name of the task + /// + /// The name. + string Name { get; } + + string Key { get; } + + /// + /// Gets the description. + /// + /// The description. + string Description { get; } + + /// + /// Gets the category. + /// + /// The category. + string Category { get; } + + /// + /// Executes the task + /// + /// The cancellation token. + /// The progress. + /// Task. + Task Execute(CancellationToken cancellationToken, IProgress progress); + + /// + /// Gets the default triggers. + /// + /// IEnumerable{BaseTaskTrigger}. + IEnumerable GetDefaultTriggers(); + } +} diff --git a/MediaBrowser.Model/Tasks/TaskExecutionOptions.cs b/MediaBrowser.Model/Tasks/TaskExecutionOptions.cs new file mode 100644 index 0000000000..faba35b222 --- /dev/null +++ b/MediaBrowser.Model/Tasks/TaskExecutionOptions.cs @@ -0,0 +1,11 @@ + +namespace MediaBrowser.Model.Tasks +{ + /// + /// A class that encomposases all common task run properties. + /// + public class TaskExecutionOptions + { + public int? MaxRuntimeMs { get; set; } + } +} diff --git a/MediaBrowser.Model/Tasks/TaskTriggerInfo.cs b/MediaBrowser.Model/Tasks/TaskTriggerInfo.cs index aacd56e655..69578c41d0 100644 --- a/MediaBrowser.Model/Tasks/TaskTriggerInfo.cs +++ b/MediaBrowser.Model/Tasks/TaskTriggerInfo.cs @@ -42,5 +42,11 @@ namespace MediaBrowser.Model.Tasks /// /// The maximum runtime ms. public int? MaxRuntimeMs { 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"; } } -- cgit v1.2.3