aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.ServerApplication/ApplicationHost.cs
diff options
context:
space:
mode:
authorLukePulverenti <luke.pulverenti@gmail.com>2013-02-26 11:10:55 -0500
committerLukePulverenti <luke.pulverenti@gmail.com>2013-02-26 11:10:55 -0500
commit6efd22a3d22f8d87ad17da3a1e47ca26c5bb09f2 (patch)
tree04a9058a1f3ad39d1247245427589def347d710d /MediaBrowser.ServerApplication/ApplicationHost.cs
parentefdb2f3990f6a5250949b7a86bbd83def876f612 (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.cs55
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();
+ }
}
}