mirror of
https://github.com/dotnet/MQTTnet.git
synced 2026-10-19 19:13:11 +08:00
39 lines
1.1 KiB
C#
39 lines
1.1 KiB
C#
using System;
|
|
using MQTTnet.Adapter;
|
|
using MQTTnet.Packets;
|
|
|
|
namespace MQTTnet.Formatter.V5
|
|
{
|
|
public sealed class MqttV500PacketFormatter : IMqttPacketFormatter
|
|
{
|
|
readonly MqttV500PacketDecoder _decoder = new MqttV500PacketDecoder();
|
|
readonly MqttV500PacketEncoder _encoder;
|
|
|
|
public MqttV500PacketFormatter(IMqttPacketWriter writer)
|
|
{
|
|
_encoder = new MqttV500PacketEncoder(writer);
|
|
}
|
|
|
|
public IMqttDataConverter DataConverter { get; } = new MqttV500DataConverter();
|
|
|
|
public ArraySegment<byte> Encode(MqttBasePacket mqttPacket)
|
|
{
|
|
if (mqttPacket == null) throw new ArgumentNullException(nameof(mqttPacket));
|
|
|
|
return _encoder.Encode(mqttPacket);
|
|
}
|
|
|
|
public MqttBasePacket Decode(ReceivedMqttPacket receivedMqttPacket)
|
|
{
|
|
if (receivedMqttPacket == null) throw new ArgumentNullException(nameof(receivedMqttPacket));
|
|
|
|
return _decoder.Decode(receivedMqttPacket);
|
|
}
|
|
|
|
public void FreeBuffer()
|
|
{
|
|
_encoder.FreeBuffer();
|
|
}
|
|
}
|
|
}
|