static public Entry CreateEntry(CalithaBinReader reader) { Entry entry = null; byte entryType = reader.ReadByte(); switch (entryType) { case 69: // 'E' entry = new EmptyEntry(); break; case 98: // 'b' entry = new ByteEntry(reader); break; case 66: // 'B' entry = new BooleanEntry(reader); break; case 73: // 'I' entry = new IntegerEntry(reader); break; case 83: // 'S' entry = new StringEntry(reader); break; default: //Unknown throw new CGTStructureException("Unknown entry type"); } return(entry); }
private Record ReadRecord(CalithaBinReader reader) { Record record = new Record(); byte entriesHeader = reader.ReadByte(); if (entriesHeader != 77) // 'M' { throw new CGTStructureException("Invalid entries header at byte "+(stream.Position-1)); } ushort entriesCount = reader.ReadUInt16(); for (int i=0;i<entriesCount;i++) { record.Entries.Add(ReadEntry(reader)); } return record; }
public ByteEntry(CalithaBinReader reader) { value = reader.ReadByte(); }