Refactor package deserialization.

This commit is contained in:
Christian Kratky
2018-06-17 14:36:32 +02:00
parent 56e9e15ac0
commit baac26c5f6
7 changed files with 50 additions and 22 deletions
@@ -46,12 +46,19 @@ namespace MQTTnet.Benchmarks
[Benchmark]
public void Deserialize_10000_Messages()
{
var channel = new BenchmarkMqttChannel(_serializedPacket);
for (var i = 0; i < 10000; i++)
{
var channel = new BenchmarkMqttChannel(_serializedPacket);
channel.Reset();
var header = MqttPacketReader.ReadFixedHeaderAsync(channel, CancellationToken.None).GetAwaiter().GetResult();
_serializer.Deserialize(new ReceivedMqttPacket(header.Flags, new MqttPacketBodyReader(_serializedPacket.Array, _serializedPacket.Count - header.RemainingLength)));
var receivedPacket = new ReceivedMqttPacket(
header.Flags,
new MqttPacketBodyReader(_serializedPacket.Array, _serializedPacket.Count - header.RemainingLength));
_serializer.Deserialize(receivedPacket);
}
}
@@ -68,6 +75,11 @@ namespace MQTTnet.Benchmarks
public string Endpoint { get; }
public void Reset()
{
_position = _buffer.Offset;
}
public Task ConnectAsync(CancellationToken cancellationToken)
{
throw new NotImplementedException();