using System; using System.Collections.Generic; using Kyoo.Models.Exceptions; namespace Kyoo.Controllers { /// /// A service to handle long running tasks. /// /// The concurrent number of running tasks is implementation dependent. public interface ITaskManager { /// /// Start a new task (or queue it). /// /// The slug of the task to run /// A list of arguments to pass to the task. An automatic conversion will be made if arguments to not fit. /// If the number of arguments is invalid or if an argument can't be converted. /// The task could not be found. void StartTask(string taskSlug, Dictionary arguments = null); /// /// Get all currently running tasks /// /// A list of currently running tasks. ICollection GetRunningTasks(); /// /// Get all available tasks /// /// A list of every tasks that this instance know. ICollection GetAllTasks(); } }