aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Common.Implementations
diff options
context:
space:
mode:
authorLukePulverenti <luke.pulverenti@gmail.com>2013-02-27 11:46:48 -0500
committerLukePulverenti <luke.pulverenti@gmail.com>2013-02-27 11:46:48 -0500
commitca7ee684730fe0d99a6160659c679c36a1646c88 (patch)
tree9f422d7e01d4affa330e448fbaba05c249fce627 /MediaBrowser.Common.Implementations
parentff6325efc5ae478c68dc140c5adbae089a6f7f4b (diff)
fixed the plugin catalog not loading
Diffstat (limited to 'MediaBrowser.Common.Implementations')
-rw-r--r--MediaBrowser.Common.Implementations/BaseApplicationHost.cs40
-rw-r--r--MediaBrowser.Common.Implementations/ServerManager/ServerManager.cs17
2 files changed, 55 insertions, 2 deletions
diff --git a/MediaBrowser.Common.Implementations/BaseApplicationHost.cs b/MediaBrowser.Common.Implementations/BaseApplicationHost.cs
index e8acf2975..65d170382 100644
--- a/MediaBrowser.Common.Implementations/BaseApplicationHost.cs
+++ b/MediaBrowser.Common.Implementations/BaseApplicationHost.cs
@@ -1,5 +1,13 @@
-using MediaBrowser.Common.Kernel;
+using MediaBrowser.Common.IO;
+using MediaBrowser.Common.Implementations.HttpServer;
+using MediaBrowser.Common.Implementations.Udp;
+using MediaBrowser.Common.Implementations.WebSocket;
+using MediaBrowser.Common.Kernel;
+using MediaBrowser.Common.Net;
+using MediaBrowser.Common.ScheduledTasks;
+using MediaBrowser.Model.IO;
using MediaBrowser.Model.Logging;
+using MediaBrowser.Model.MediaInfo;
using MediaBrowser.Model.Serialization;
using SimpleInjector;
using System;
@@ -130,6 +138,18 @@ namespace MediaBrowser.Common.Implementations
/// </summary>
/// <returns>IApplicationPaths.</returns>
protected abstract IApplicationPaths GetApplicationPaths();
+
+ /// <summary>
+ /// Finds the parts.
+ /// </summary>
+ protected virtual void FindParts()
+ {
+ Resolve<ITaskManager>().AddTasks(GetExports<IScheduledTask>(false));
+
+ Resolve<IHttpServer>().Init(GetExports<IRestfulService>(false));
+
+ Resolve<IServerManager>().AddWebSocketListeners(GetExports<IWebSocketListener>());
+ }
/// <summary>
/// Discovers the types.
@@ -144,6 +164,24 @@ namespace MediaBrowser.Common.Implementations
}
/// <summary>
+ /// Registers resources that classes will depend on
+ /// </summary>
+ protected virtual void RegisterResources(ITaskManager taskManager, INetworkManager networkManager, IServerManager serverManager)
+ {
+ RegisterSingleInstance(LogManager);
+ RegisterSingleInstance(Logger);
+
+ RegisterSingleInstance(ApplicationPaths);
+ RegisterSingleInstance(taskManager);
+ RegisterSingleInstance<IWebSocketServer>(() => new AlchemyServer(Logger));
+ RegisterSingleInstance(ProtobufSerializer);
+ RegisterSingleInstance<IUdpServer>(new UdpServer(Logger), false);
+
+ RegisterSingleInstance(networkManager);
+ RegisterSingleInstance(serverManager);
+ }
+
+ /// <summary>
/// Gets a list of types within an assembly
/// This will handle situations that would normally throw an exception - such as a type within the assembly that depends on some other non-existant reference
/// </summary>
diff --git a/MediaBrowser.Common.Implementations/ServerManager/ServerManager.cs b/MediaBrowser.Common.Implementations/ServerManager/ServerManager.cs
index bd584bf0c..31f6922c2 100644
--- a/MediaBrowser.Common.Implementations/ServerManager/ServerManager.cs
+++ b/MediaBrowser.Common.Implementations/ServerManager/ServerManager.cs
@@ -96,6 +96,12 @@ namespace MediaBrowser.Common.Implementations.ServerManager
}
/// <summary>
+ /// Gets the web socket listeners.
+ /// </summary>
+ /// <value>The web socket listeners.</value>
+ private List<IWebSocketListener> WebSocketListeners = new List<IWebSocketListener>();
+
+ /// <summary>
/// Initializes a new instance of the <see cref="ServerManager" /> class.
/// </summary>
/// <param name="applicationHost">The application host.</param>
@@ -234,7 +240,7 @@ namespace MediaBrowser.Common.Implementations.ServerManager
/// <param name="result">The result.</param>
private async void ProcessWebSocketMessageReceived(WebSocketMessageInfo result)
{
- var tasks = _kernel.WebSocketListeners.Select(i => Task.Run(async () =>
+ var tasks = WebSocketListeners.Select(i => Task.Run(async () =>
{
try
{
@@ -514,5 +520,14 @@ namespace MediaBrowser.Common.Implementations.ServerManager
ReloadExternalWebSocketServer();
}
}
+
+ /// <summary>
+ /// Adds the web socket listeners.
+ /// </summary>
+ /// <param name="listeners">The listeners.</param>
+ public void AddWebSocketListeners(IEnumerable<IWebSocketListener> listeners)
+ {
+ WebSocketListeners.AddRange(listeners);
+ }
}
}