diff options
| author | LukePulverenti <luke.pulverenti@gmail.com> | 2013-02-26 11:10:55 -0500 |
|---|---|---|
| committer | LukePulverenti <luke.pulverenti@gmail.com> | 2013-02-26 11:10:55 -0500 |
| commit | 6efd22a3d22f8d87ad17da3a1e47ca26c5bb09f2 (patch) | |
| tree | 04a9058a1f3ad39d1247245427589def347d710d /MediaBrowser.ServerApplication/ApplicationHost.cs | |
| parent | efdb2f3990f6a5250949b7a86bbd83def876f612 (diff) | |
added a shutdown api method, font size fix and other decouplings
Diffstat (limited to 'MediaBrowser.ServerApplication/ApplicationHost.cs')
| -rw-r--r-- | MediaBrowser.ServerApplication/ApplicationHost.cs | 55 |
1 files changed, 31 insertions, 24 deletions
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; @@ -66,16 +67,6 @@ namespace MediaBrowser.ServerApplication private readonly IServerApplicationPaths _applicationPaths = new ServerApplicationPaths(); /// <summary> - /// The _task manager - /// </summary> - private readonly ITaskManager _taskManager; - - /// <summary> - /// The _task manager - /// </summary> - private readonly IHttpServer _httpServer; - - /// <summary> /// Gets a value indicating whether this instance is first run. /// </summary> /// <value><c>true</c> if this instance is first run; otherwise, <c>false</c>.</value> @@ -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); } /// <summary> /// Registers resources that classes will depend on /// </summary> - private void RegisterResources() + private void RegisterResources(ITaskManager taskManager, IHttpServer httpServer, INetworkManager networkManager, IServerManager serverManager) { RegisterSingleInstance<IKernel>(Kernel); RegisterSingleInstance(Kernel); @@ -121,28 +117,31 @@ namespace MediaBrowser.ServerApplication RegisterSingleInstance(_applicationPaths); RegisterSingleInstance<IApplicationPaths>(_applicationPaths); - RegisterSingleInstance(_taskManager); + RegisterSingleInstance(taskManager); RegisterSingleInstance<IIsoManager>(new PismoIsoManager(Logger)); RegisterSingleInstance<IBlurayExaminer>(new BdInfoExaminer()); RegisterSingleInstance<IHttpClient>(new HttpManager(_applicationPaths, Logger)); - RegisterSingleInstance<INetworkManager>(new NetworkManager()); RegisterSingleInstance<IZipClient>(new DotNetZipClient()); RegisterSingleInstance<IWebSocketServer>(() => new AlchemyServer(Logger)); RegisterSingleInstance(_jsonSerializer); RegisterSingleInstance(_xmlSerializer); RegisterSingleInstance(ProtobufSerializer); - RegisterSingleInstance<IUdpServer>(new UdpServer()); - RegisterSingleInstance(_httpServer); + RegisterSingleInstance<IUdpServer>(new UdpServer(Logger), false); + RegisterSingleInstance(httpServer, false); + + RegisterSingleInstance(networkManager); + + RegisterSingleInstance(serverManager); } /// <summary> /// Finds the parts. /// </summary> - private void FindParts() + private void FindParts(ITaskManager taskManager, IHttpServer httpServer) { - _taskManager.AddTasks(GetExports<IScheduledTask>(false)); + taskManager.AddTasks(GetExports<IScheduledTask>(false)); - _httpServer.Init(GetExports<IRestfulService>(false)); + httpServer.Init(GetExports<IRestfulService>(false)); } /// <summary> @@ -240,5 +239,13 @@ namespace MediaBrowser.ServerApplication // Include composable parts in the running assembly yield return GetType().Assembly; } + + /// <summary> + /// Shuts down. + /// </summary> + public void Shutdown() + { + App.Instance.Shutdown(); + } } } |
