From 6efd22a3d22f8d87ad17da3a1e47ca26c5bb09f2 Mon Sep 17 00:00:00 2001 From: LukePulverenti Date: Tue, 26 Feb 2013 11:10:55 -0500 Subject: added a shutdown api method, font size fix and other decouplings --- MediaBrowser.ServerApplication/ApplicationHost.cs | 55 +++++++++++++---------- 1 file changed, 31 insertions(+), 24 deletions(-) (limited to 'MediaBrowser.ServerApplication/ApplicationHost.cs') diff --git a/MediaBrowser.ServerApplication/ApplicationHost.cs b/MediaBrowser.ServerApplication/ApplicationHost.cs index e862a394e..07246eded 100644 --- a/MediaBrowser.ServerApplication/ApplicationHost.cs +++ b/MediaBrowser.ServerApplication/ApplicationHost.cs @@ -4,6 +4,7 @@ using MediaBrowser.Common.Implementations; using MediaBrowser.Common.Implementations.ScheduledTasks; using MediaBrowser.Common.Implementations.Serialization; using MediaBrowser.Common.IO; +using MediaBrowser.Common.Implementations.Server; using MediaBrowser.Common.Kernel; using MediaBrowser.Common.Net; using MediaBrowser.Common.ScheduledTasks; @@ -65,16 +66,6 @@ namespace MediaBrowser.ServerApplication /// private readonly IServerApplicationPaths _applicationPaths = new ServerApplicationPaths(); - /// - /// The _task manager - /// - private readonly ITaskManager _taskManager; - - /// - /// The _task manager - /// - private readonly IHttpServer _httpServer; - /// /// Gets a value indicating whether this instance is first run. /// @@ -89,29 +80,34 @@ namespace MediaBrowser.ServerApplication : base() { IsFirstRun = !File.Exists(_applicationPaths.SystemConfigurationFilePath); - + Logger = new NLogger("App"); DiscoverTypes(); - _taskManager = new TaskManager(_applicationPaths, _jsonSerializer, Logger); + Kernel = new Kernel(this, _applicationPaths, _xmlSerializer, Logger); + + var networkManager = new NetworkManager(); + + var serverManager = new ServerManager(this, Kernel, networkManager, _jsonSerializer, Logger); + + var taskManager = new TaskManager(_applicationPaths, _jsonSerializer, Logger, serverManager); - Kernel = new Kernel(this, _applicationPaths, _xmlSerializer, _taskManager, Logger); ReloadLogger(); Logger.Info("Version {0} initializing", ApplicationVersion); - _httpServer = ServerFactory.CreateServer(this, ProtobufSerializer, Logger, "Media Browser", "index.html"); + var httpServer = ServerFactory.CreateServer(this, ProtobufSerializer, Logger, "Media Browser", "index.html"); - RegisterResources(); + RegisterResources(taskManager, httpServer, networkManager, serverManager); - FindParts(); + FindParts(taskManager, httpServer); } /// /// Registers resources that classes will depend on /// - private void RegisterResources() + private void RegisterResources(ITaskManager taskManager, IHttpServer httpServer, INetworkManager networkManager, IServerManager serverManager) { RegisterSingleInstance(Kernel); RegisterSingleInstance(Kernel); @@ -121,28 +117,31 @@ namespace MediaBrowser.ServerApplication RegisterSingleInstance(_applicationPaths); RegisterSingleInstance(_applicationPaths); - RegisterSingleInstance(_taskManager); + RegisterSingleInstance(taskManager); RegisterSingleInstance(new PismoIsoManager(Logger)); RegisterSingleInstance(new BdInfoExaminer()); RegisterSingleInstance(new HttpManager(_applicationPaths, Logger)); - RegisterSingleInstance(new NetworkManager()); RegisterSingleInstance(new DotNetZipClient()); RegisterSingleInstance(() => new AlchemyServer(Logger)); RegisterSingleInstance(_jsonSerializer); RegisterSingleInstance(_xmlSerializer); RegisterSingleInstance(ProtobufSerializer); - RegisterSingleInstance(new UdpServer()); - RegisterSingleInstance(_httpServer); + RegisterSingleInstance(new UdpServer(Logger), false); + RegisterSingleInstance(httpServer, false); + + RegisterSingleInstance(networkManager); + + RegisterSingleInstance(serverManager); } /// /// Finds the parts. /// - private void FindParts() + private void FindParts(ITaskManager taskManager, IHttpServer httpServer) { - _taskManager.AddTasks(GetExports(false)); + taskManager.AddTasks(GetExports(false)); - _httpServer.Init(GetExports(false)); + httpServer.Init(GetExports(false)); } /// @@ -240,5 +239,13 @@ namespace MediaBrowser.ServerApplication // Include composable parts in the running assembly yield return GetType().Assembly; } + + /// + /// Shuts down. + /// + public void Shutdown() + { + App.Instance.Shutdown(); + } } } -- cgit v1.2.3