using MediaBrowser.Common.Plugins; using MediaBrowser.Common.Security; using MediaBrowser.Model.Configuration; using MediaBrowser.Model.System; using System; using System.Collections.Generic; using System.Threading.Tasks; namespace MediaBrowser.Common.Kernel { /// /// Interface IKernel /// public interface IKernel : IDisposable { /// /// Gets the application paths. /// /// The application paths. IApplicationPaths ApplicationPaths { get; } /// /// Gets the configuration. /// /// The configuration. BaseApplicationConfiguration Configuration { get; } /// /// Gets the kernel context. /// /// The kernel context. KernelContext KernelContext { get; } /// /// Inits this instance. /// /// Task. Task Init(); /// /// Gets or sets a value indicating whether this instance has pending kernel reload. /// /// true if this instance has pending kernel reload; otherwise, false. bool HasPendingRestart { get; } /// /// Gets the system status. /// /// SystemInfo. SystemInfo GetSystemInfo(); /// /// Called when [application updated]. /// /// The new version. void OnApplicationUpdated(Version newVersion); /// /// Gets the name of the web application. /// /// The name of the web application. string WebApplicationName { get; } /// /// Performs the pending restart. /// void PerformPendingRestart(); /// /// Gets the plugins. /// /// The plugins. IEnumerable Plugins { get; } /// /// Gets the UDP server port number. /// /// The UDP server port number. int UdpServerPortNumber { get; } /// /// Gets the HTTP server URL prefix. /// /// The HTTP server URL prefix. string HttpServerUrlPrefix { get; } /// /// Gets the TCP manager. /// /// The TCP manager. IServerManager ServerManager { get; } /// /// Gets the plug-in security manager. /// /// The plug-in security manager. ISecurityManager SecurityManager { get; set; } /// /// Occurs when [reload completed]. /// event EventHandler ReloadCompleted; /// /// Occurs when [configuration updated]. /// event EventHandler ConfigurationUpdated; /// /// Notifies the pending restart. /// void NotifyPendingRestart(); /// /// Gets the XML configuration. /// /// The type. /// The path. /// System.Object. object GetXmlConfiguration(Type type, string path); /// /// Limits simultaneous access to various resources /// /// The resource pools. ResourcePool ResourcePools { get; set; } /// /// Removes the plugin. /// /// The plugin. void RemovePlugin(IPlugin plugin); } }