// // RawPacketResponder.cs // // Copyright (c) František Boháček. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. using Microsoft.Extensions.Logging; using NosSmooth.Comms.Data.Messages; using NosSmooth.Comms.Data.Responders; using NosSmooth.Core.Client; using NosSmooth.Core.Extensions; using NosSmooth.Core.Packets; using NosSmooth.Packets; using NosSmooth.PacketSerializer; using NosSmooth.PacketSerializer.Errors; using Remora.Results; namespace NosSmooth.Comms.Local.MessageResponders; /// /// Responds to raw packets. /// public class RawPacketResponder : IMessageResponder { private readonly INostaleClient _client; private readonly IPacketHandler _packetHandler; private readonly IPacketSerializer _serializer; private readonly ILogger _logger; /// /// Initializes a new instance of the class. /// /// The nostale client. /// The packet handler. /// The serializer. /// The logger. public RawPacketResponder(INostaleClient client, IPacketHandler packetHandler, IPacketSerializer serializer, ILogger logger) { _client = client; _packetHandler = packetHandler; _serializer = serializer; _logger = logger; } /// public Task Respond(RawPacketMessage message, CancellationToken ct = default) { return _packetHandler.HandlePacketAsync ( _client, message.Source, message.Packet, ct ); } }