MqttV500PacketFormatter.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. using System;
  2. using MQTTnet.Adapter;
  3. using MQTTnet.Packets;
  4. namespace MQTTnet.Formatter.V5
  5. {
  6. public class MqttV500PacketFormatter : IMqttPacketFormatter
  7. {
  8. private readonly MqttV500PacketEncoder _encoder;
  9. private readonly MqttV500PacketDecoder _decoder = new MqttV500PacketDecoder();
  10. public MqttV500PacketFormatter()
  11. {
  12. _encoder = new MqttV500PacketEncoder();
  13. }
  14. public MqttV500PacketFormatter(IMqttPacketWriter writer)
  15. {
  16. _encoder = new MqttV500PacketEncoder(writer);
  17. }
  18. public IMqttDataConverter DataConverter { get; } = new MqttV500DataConverter();
  19. public ArraySegment<byte> Encode(MqttBasePacket mqttPacket)
  20. {
  21. if (mqttPacket == null) throw new ArgumentNullException(nameof(mqttPacket));
  22. return _encoder.Encode(mqttPacket);
  23. }
  24. public MqttBasePacket Decode(ReceivedMqttPacket receivedMqttPacket)
  25. {
  26. if (receivedMqttPacket == null) throw new ArgumentNullException(nameof(receivedMqttPacket));
  27. return _decoder.Decode(receivedMqttPacket);
  28. }
  29. public void FreeBuffer()
  30. {
  31. _encoder.FreeBuffer();
  32. }
  33. }
  34. }