#pragma warning disable CS1591 using System; using MediaBrowser.Model.Plugins; using Microsoft.Extensions.DependencyInjection; namespace MediaBrowser.Common.Plugins { /// /// Interface IPlugin. /// public interface IPlugin { /// /// Gets the name of the plugin. /// /// The name. string Name { get; } /// /// Gets the description. /// /// The description. string Description { get; } /// /// Gets the unique id. /// /// The unique id. Guid Id { get; } /// /// Gets the plugin version. /// /// The version. Version Version { get; } /// /// Gets the path to the assembly file. /// /// The assembly file path. string AssemblyFilePath { get; } /// /// Gets a value indicating whether the plugin can be uninstalled. /// bool CanUninstall { get; } /// /// Gets the full path to the data folder, where the plugin can store any miscellaneous files needed. /// /// The data folder path. string DataFolderPath { get; } /// /// Gets the plugin info. /// /// PluginInfo. PluginInfo GetPluginInfo(); /// /// Called when just before the plugin is uninstalled from the server. /// void OnUninstalling(); /// /// Registers the plugin's services to the service collection. /// /// The service collection. void RegisterServices(IServiceCollection serviceCollection); /// /// Unregisters the plugin's services from the service collection. /// /// The service collection. void UnregisterServices(IServiceCollection serviceCollection); } public interface IHasPluginConfiguration { /// /// Gets the type of configuration this plugin uses. /// /// The type of the configuration. Type ConfigurationType { get; } /// /// Gets the plugin's configuration. /// /// The configuration. BasePluginConfiguration Configuration { get; } /// /// Completely overwrites the current configuration with a new copy /// Returns true or false indicating success or failure. /// /// The configuration. /// configuration is null. void UpdateConfiguration(BasePluginConfiguration configuration); void SetStartupInfo(Action directoryCreateFn); } }