Add missing POSIX version of INetworkPromptReaper

This commit is contained in:
Cyberboss
2018-09-24 15:50:52 -04:00
parent b92b931354
commit 0f10aeb2d1
3 changed files with 23 additions and 10 deletions
@@ -0,0 +1,12 @@
using Tgstation.Server.Host.Core;
namespace Tgstation.Server.Host.Components.Watchdog
{
//POSIX BYOND doesn't prompt you when you change the port
/// <inheritdoc />
sealed class PosixNetworkPromptReaper : INetworkPromptReaper
{
/// <inheritdoc />
public void RegisterProcess(IProcess process) { }
}
}
@@ -13,7 +13,7 @@ using Tgstation.Server.Host.Core;
namespace Tgstation.Server.Host.Components.Watchdog
{
/// <inheritdoc />
sealed class NetworkPromptReaper : IHostedService, INetworkPromptReaper, IDisposable
sealed class WindowsNetworkPromptReaper : IHostedService, INetworkPromptReaper, IDisposable
{
/// <summary>
/// Number of times to send the button click message. Should be at least 2 or it may fail to focus the window
@@ -26,12 +26,12 @@ namespace Tgstation.Server.Host.Components.Watchdog
const int RecheckDelayMs = 250;
/// <summary>
/// The <see cref="ILogger"/> for the <see cref="NetworkPromptReaper"/>
/// The <see cref="ILogger"/> for the <see cref="WindowsNetworkPromptReaper"/>
/// </summary>
readonly ILogger<NetworkPromptReaper> logger;
readonly ILogger<WindowsNetworkPromptReaper> logger;
/// <summary>
/// The <see cref="CancellationTokenSource"/> for the <see cref="NetworkPromptReaper"/>
/// The <see cref="CancellationTokenSource"/> for the <see cref="WindowsNetworkPromptReaper"/>
/// </summary>
readonly CancellationTokenSource cancellationTokenSource;
@@ -41,7 +41,7 @@ namespace Tgstation.Server.Host.Components.Watchdog
readonly List<IProcess> registeredProcesses;
/// <summary>
/// The <see cref="Task"/> representing the lifetime of the <see cref="NetworkPromptReaper"/>
/// The <see cref="Task"/> representing the lifetime of the <see cref="WindowsNetworkPromptReaper"/>
/// </summary>
Task runTask;
@@ -79,10 +79,10 @@ namespace Tgstation.Server.Host.Components.Watchdog
}
/// <summary>
/// Construct a <see cref="NetworkPromptReaper"/>
/// Construct a <see cref="WindowsNetworkPromptReaper"/>
/// </summary>
/// <param name="logger">The value of <see cref="logger"/></param>
public NetworkPromptReaper(ILogger<NetworkPromptReaper> logger)
public WindowsNetworkPromptReaper(ILogger<WindowsNetworkPromptReaper> logger)
{
this.logger = logger ?? throw new ArgumentNullException(nameof(logger));
@@ -199,9 +199,9 @@ namespace Tgstation.Server.Host.Core
services.AddSingleton<IByondInstaller, WindowsByondInstaller>();
services.AddSingleton<IPostWriteHandler, WindowsPostWriteHandler>();
services.AddSingleton<NetworkPromptReaper>();
services.AddSingleton<INetworkPromptReaper>(x => x.GetRequiredService<NetworkPromptReaper>());
services.AddSingleton<IHostedService>(x => x.GetRequiredService<NetworkPromptReaper>());
services.AddSingleton<WindowsNetworkPromptReaper>();
services.AddSingleton<INetworkPromptReaper>(x => x.GetRequiredService<WindowsNetworkPromptReaper>());
services.AddSingleton<IHostedService>(x => x.GetRequiredService<WindowsNetworkPromptReaper>());
}
else
{
@@ -209,6 +209,7 @@ namespace Tgstation.Server.Host.Core
services.AddSingleton<ISymlinkFactory, PosixSymlinkFactory>();
services.AddSingleton<IByondInstaller, PosixByondInstaller>();
services.AddSingleton<IPostWriteHandler, PosixPostWriteHandler>();
services.AddSingleton<INetworkPromptReaper, PosixNetworkPromptReaper>();
}
services.AddSingleton<IProcessExecutor, ProcessExecutor>();