public override void Decode() { MemoryStream stream = new MemoryStream(Data); SubRecords = new List <SubRecord>(); while (stream.Position < Size) { SubRecords.Add(SubRecord.Read(stream)); } }
public new static SubRecord ReadBase(Stream stream) { BinaryReader reader = new BinaryReader(stream); SubRecord record = new SubRecord(); record.Type = reader.ReadUInt16(); record.Size = reader.ReadUInt16(); record.Data = reader.ReadBytes(record.Size); return(record); }
public static SubRecord Read(Stream stream) { SubRecord record = SubRecord.ReadBase(stream); switch (record.Type) { case SubRecordType.CommonObjectData: return(new CommonObjectData(record)); case SubRecordType.GroupMarker: return(new GroupMarker(record)); case SubRecordType.End: return(new End(record)); default: return(record); } }
public End(SubRecord record) : base(record) { }
public CommonObjectData(SubRecord record) : base(record) { }
public GroupMarker(SubRecord record) : base(record) { }
public SubRecord(SubRecord record) : base(record) { }