private static void readHeader <T>(BinaryReader reader, IList <T> items, HeaderCallback <T> readCallback) { // Count int count = BinaryReaderTools.ReadNumber(reader); // Items) for (int i = 0; i < count; i++) { string itemAsText = BinaryReaderTools.ReadString(reader); T item = readCallback(itemAsText); items.Add(item); } }
private static void ReadHeader <T>(BinaryReader reader, ICollection <T> items, HeaderCallback <T> readCallback) { // Count var count = BinaryReaderTools.ReadNumber(reader); // Items for (var i = 0; i < count; i++) { var itemAsText = BinaryReaderTools.ReadString(reader); var item = readCallback(itemAsText); items.Add(item); } }
IEnumerable <string> GetPathList(BinaryReader reader, RiotArchiveHeader header) { var stream = reader.BaseStream; stream.Seek(header.PathListOffset, SeekOrigin.Begin); var pathListInfo = reader.ReadStruct <RiotPathListHeader>(); var stringOffsets = GetStringOffsets(reader, (int)pathListInfo.Length).ToArray(); foreach (var offset in stringOffsets) { stream.Seek(header.PathListOffset + offset.Offset, SeekOrigin.Begin); yield return(BinaryReaderTools.GetStaticLengthString(reader, (int)offset.Length)); } }
/// <summary> /// Reads property name /// </summary> /// <returns></returns> public string ReadName() { return(BinaryReaderTools.ReadString(_reader)); }
/// <summary> /// Reads simple value (value of a simple property) /// </summary> /// <param name = "expectedType"></param> /// <returns></returns> public object ReadValue(Type expectedType) { return(BinaryReaderTools.ReadValue(expectedType, _reader)); }
/// <summary> /// Read array of integers which were saved as 1,2 or 4 bytes, according to their size /// </summary> /// <returns>Empty array if there are no indexes</returns> public int[] ReadNumbers() { return(BinaryReaderTools.ReadNumbers(_reader)); }
/// <summary> /// Read integer which was saved as 1,2 or 4 bytes, according to its size /// </summary> /// <returns></returns> public int ReadNumber() { return(BinaryReaderTools.ReadNumber(_reader)); }
/// <summary> /// Read type /// </summary> /// <returns></returns> public Type ReadType() { int index = BinaryReaderTools.ReadNumber(_reader); return(_types[index]); }
/// <summary> /// Reads property name /// </summary> /// <returns></returns> public string ReadName() { int index = BinaryReaderTools.ReadNumber(_reader); return(_names[index]); }