private const int TAG = 0x47505450; // "GPTP" public static GptpData Read(BinaryReader r) { var h = new GptpData(); h.Init(r, r.ReadInt32BE()); return(h); }
protected override void ReadData(BinaryReader r) { if (Tag != TAG) { throw new Exception($"Invalid header magic number 0x{Tag:4X}"); } GptpData.Read(r); while (r.PeekChar() >= 0) { var tag = r.ReadInt32BE(); switch (tag) { case AddrBlock.TAG: // ADDR DataBlocks.Add(AddrBlock.Read(r, tag)); break; case LZ4Block.TAG: // LZ4A DataBlocks.Add(LZ4Block.Read(r, tag)); break; default: throw new Exception("Unknown block magic number 0x{tag:4X}"); } } }