using System; using System.Collections.Generic; using Kyoo.Abstractions.Models.Exceptions; namespace Kyoo.Abstractions.Controllers { /// /// A manager to load plugins and retrieve information from them. /// public interface IPluginManager { /// /// Get a single plugin that match the type and name given. /// /// The name of the plugin /// The type of the plugin /// If no plugins match the query /// A plugin that match the queries public T GetPlugin(string name); /// /// Get all plugins of the given type. /// /// The type of plugins to get /// A list of plugins matching the given type or an empty list of none match. public ICollection GetPlugins(); /// /// Get all plugins currently running on Kyoo. This also includes deleted plugins if the app as not been restarted. /// /// All plugins currently loaded. public ICollection GetAllPlugins(); /// /// Load plugins and their dependencies from the plugin directory. /// /// /// An initial plugin list to use. /// You should not try to put plugins from the plugins directory here as they will get automatically loaded. /// public void LoadPlugins(ICollection plugins); /// /// Load plugins and their dependencies from the plugin directory. /// /// /// An initial plugin list to use. /// You should not try to put plugins from the plugins directory here as they will get automatically loaded. /// public void LoadPlugins(params Type[] plugins); } }