aboutsummaryrefslogtreecommitdiff
path: root/Jellyfin.Server/CoreAppHost.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Jellyfin.Server/CoreAppHost.cs')
-rw-r--r--Jellyfin.Server/CoreAppHost.cs57
1 files changed, 57 insertions, 0 deletions
diff --git a/Jellyfin.Server/CoreAppHost.cs b/Jellyfin.Server/CoreAppHost.cs
new file mode 100644
index 000000000..64e03f22e
--- /dev/null
+++ b/Jellyfin.Server/CoreAppHost.cs
@@ -0,0 +1,57 @@
+using System.Collections.Generic;
+using System.Reflection;
+using Emby.Server.Implementations;
+using Emby.Server.Implementations.HttpServer;
+using Jellyfin.SocketSharp;
+using MediaBrowser.Model.IO;
+using MediaBrowser.Model.System;
+using Microsoft.Extensions.Logging;
+
+namespace Jellyfin.Server
+{
+ public class CoreAppHost : ApplicationHost
+ {
+ public CoreAppHost(ServerApplicationPaths applicationPaths, ILoggerFactory loggerFactory, StartupOptions options, IFileSystem fileSystem, IEnvironmentInfo environmentInfo, MediaBrowser.Controller.Drawing.IImageEncoder imageEncoder, ISystemEvents systemEvents, MediaBrowser.Common.Net.INetworkManager networkManager)
+ : base(applicationPaths, loggerFactory, options, fileSystem, environmentInfo, imageEncoder, systemEvents, networkManager)
+ {
+ }
+
+ public override bool CanSelfRestart
+ {
+ get
+ {
+ // A restart script must be provided
+ return StartupOptions.ContainsOption("-restartpath");
+ }
+ }
+
+ protected override void RestartInternal() => Program.Restart();
+
+ protected override IEnumerable<Assembly> GetAssembliesWithPartsInternal()
+ => new [] { typeof(CoreAppHost).Assembly };
+
+ protected override void ShutdownInternal() => Program.Shutdown();
+
+ protected override bool SupportsDualModeSockets
+ {
+ get
+ {
+ return true;
+ }
+ }
+
+ protected override IHttpListener CreateHttpListener()
+ => new WebSocketSharpListener(
+ Logger,
+ Certificate,
+ StreamHelper,
+ TextEncoding,
+ NetworkManager,
+ SocketFactory,
+ CryptographyProvider,
+ SupportsDualModeSockets,
+ FileSystemManager,
+ EnvironmentInfo
+ );
+ }
+}