< Summary

Class:DCL.CRDT.CRDTDeserializer
Assembly:DCL.CRDTProtocol.Deserializer
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/CRDTProtocol/Deserializer/CRDTDeserializer.cs
Covered lines:12
Uncovered lines:0
Coverable lines:12
Total lines:36
Line coverage:100% (12 of 12)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
CRDTDeserializer()0%110100%
Deserialize(...)0%440100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/CRDTProtocol/Deserializer/CRDTDeserializer.cs

#LineLine coverage
 1using KernelCommunication;
 2
 3namespace DCL.CRDT
 4{
 5    // Deserialize CRDT binary messages (BigEndian)
 6    public static class CRDTDeserializer
 7    {
 18        internal static readonly CRDTComponentMessageHeader componentHeader = new CRDTComponentMessageHeader();
 9
 10        public static CRDTMessage Deserialize(IBinaryReader dataReader, CrdtMessageType messageType)
 11        {
 2112            componentHeader.entityId = dataReader.ReadInt32();
 2113            componentHeader.componentClassId = dataReader.ReadInt32();
 2114            componentHeader.timestamp = dataReader.ReadInt64();
 2115            componentHeader.dataLength = dataReader.ReadInt32();
 16
 2117            byte[] data = null;
 2118            if (componentHeader.dataLength > 0 && messageType != CrdtMessageType.DELETE_COMPONENT)
 19            {
 1620                data = dataReader.ReadBytes(componentHeader.dataLength);
 1621            }
 522            else if (messageType == CrdtMessageType.PUT_COMPONENT)
 23            {
 424                data = new byte[0];
 25            }
 26
 2127            return new CRDTMessage()
 28            {
 29                key1 = componentHeader.entityId,
 30                key2 = componentHeader.componentClassId,
 31                timestamp = componentHeader.timestamp,
 32                data = data
 33            };
 34        }
 35    }
 36}