servicepoint-tanks/TanksServer/TickSteps/SendToServicePointDisplay.cs

26 lines
669 B
C#
Raw Normal View History

using System.Net.Sockets;
2024-04-07 20:16:22 +02:00
using TanksServer.Models;
using TanksServer.Services;
2024-04-07 19:52:16 +02:00
namespace TanksServer.TickSteps;
2024-04-07 19:52:16 +02:00
internal sealed class SendToServicePointDisplay(
2024-04-07 20:16:22 +02:00
IOptions<ServicePointDisplayConfiguration> options,
LastFinishedFrameProvider lastFinishedFrameProvider
2024-04-07 13:02:49 +02:00
) : ITickStep, IDisposable
{
2024-04-07 20:16:22 +02:00
private readonly UdpClient? _udpClient = options.Value.Enable
? new(options.Value.Hostname, options.Value.Port)
: null;
2024-04-07 13:02:49 +02:00
public Task TickAsync()
{
2024-04-07 20:16:22 +02:00
return _udpClient?.SendAsync(lastFinishedFrameProvider.LastFrame.Data).AsTask() ?? Task.CompletedTask;
2024-04-07 13:02:49 +02:00
}
public void Dispose()
{
2024-04-07 20:16:22 +02:00
_udpClient?.Dispose();
}
}