private static DebugModuleProperties Decode(ReadOnlySpan <byte> memory) { var reader = new BinarySpanReader(memory, ByteOrder.LittleEndian); var endPoint = new EndPointAddress(reader.Read().ToArray()); // TODO: This copies var module = new ModuleIdentifier(reader.ReadString()); var major = reader.ReadInt32(); var minor = reader.ReadInt32(); var revision = reader.ReadInt32(); var isPreRelease = reader.ReadBool(); var version = new ModuleVersion(major, minor, revision, isPreRelease); return(new DebugModuleProperties(endPoint, module, version)); }
private EndPointAddress ReadEndPointAddress(ref BinarySpanReader reader) { var localEndPointBytesLenght = reader.ReadInt32(); if (localEndPointBytesLenght == 0) { return(EndPointAddress.UnknownAddress); } var utf8EncodedValue = reader.Read(localEndPointBytesLenght); var copy = utf8EncodedValue.ToArray(); // TODO return(new EndPointAddress(copy)); }
private (EndPointAddress endPoint, IReadOnlyCollection <ReadOnlyMemory <char> > prefixes) ReadRunningModuleEntry(IEntry entry) { var reader = new BinarySpanReader(entry.Value.Span, ByteOrder.LittleEndian); var endPoint = ReadEndPointAddress(ref reader); var prefixesCount = reader.ReadInt32(); var prefixes = new List <ReadOnlyMemory <char> >(capacity: prefixesCount); for (var i = 0; i < prefixesCount; i++) { var prefix = reader.ReadString().AsMemory(); prefixes.Add(prefix); } return(endPoint, prefixes); }