added span based writer

This commit is contained in:
JanEggers
2019-04-15 14:43:49 +02:00
parent aee10ba6fa
commit a9944def68
15 changed files with 334 additions and 62 deletions
@@ -12,14 +12,26 @@ namespace MQTTnet.Formatter
private IMqttPacketFormatter _formatter;
public MqttPacketFormatterAdapter()
: this(new MqttPacketWriter())
{
}
public MqttPacketFormatterAdapter(MqttProtocolVersion protocolVersion)
: this(protocolVersion, new MqttPacketWriter())
{
}
public MqttPacketFormatterAdapter(MqttProtocolVersion protocolVersion)
public MqttPacketFormatterAdapter(MqttProtocolVersion protocolVersion, IMqttPacketWriter writer)
: this(writer)
{
UseProtocolVersion(protocolVersion);
}
public MqttPacketFormatterAdapter(IMqttPacketWriter writer)
{
Writer = writer;
}
public MqttProtocolVersion ProtocolVersion { get; private set; } = MqttProtocolVersion.Unknown;
public IMqttDataConverter DataConverter
@@ -31,6 +43,8 @@ namespace MQTTnet.Formatter
return _formatter.DataConverter;
}
}
public IMqttPacketWriter Writer { get; }
public ArraySegment<byte> Encode(MqttBasePacket packet)
{
@@ -80,20 +94,20 @@ namespace MQTTnet.Formatter
{
case MqttProtocolVersion.V500:
{
_formatter = new MqttV500PacketFormatter();
_formatter = new MqttV500PacketFormatter(Writer);
break;
}
case MqttProtocolVersion.V311:
{
_formatter = new MqttV311PacketFormatter();
_formatter = new MqttV311PacketFormatter(Writer);
break;
}
case MqttProtocolVersion.V310:
{
_formatter = new MqttV310PacketFormatter();
_formatter = new MqttV310PacketFormatter(Writer);
break;
}