internal FieldData AddField(TzdbStreamFieldId fieldNumber, IList <string> stringPool) { FieldData ret = new FieldData(fieldNumber, stringPool); fields.Add(ret); return(ret); }
internal static IEnumerable <TzdbStreamField> ReadFields(Stream input) { while (true) { int fieldId = input.ReadByte(); if (fieldId == -1) { yield break; } TzdbStreamFieldId id = (TzdbStreamFieldId)(byte)fieldId; // Read 7-bit-encoded length int length = new DateTimeZoneReader(input, null).ReadCount(); byte[] data = new byte[length]; int offset = 0; while (offset < data.Length) { int bytesRead = input.Read(data, offset, data.Length - offset); if (bytesRead == 0) { throw new InvalidNodaDataException("Stream ended after reading " + offset + " bytes out of " + data.Length); } offset += bytesRead; } yield return(new TzdbStreamField(id, data)); } }
private TzdbStreamField(TzdbStreamFieldId id, byte[] data) { this.id = id; this.data = data; }
internal FieldData AddField(TzdbStreamFieldId fieldNumber, IList<string> stringPool) { FieldData ret = new FieldData(fieldNumber, stringPool); fields.Add(ret); return ret; }
internal FieldData(TzdbStreamFieldId fieldId, IList<string> stringPool) { this.FieldId = fieldId; this.stream = new MemoryStream(); this.Writer = new DateTimeZoneWriter(stream, stringPool); }
internal FieldData(TzdbStreamFieldId fieldId, IList <string> stringPool) { this.fieldId = fieldId; this.stream = new MemoryStream(); this.writer = new DateTimeZoneWriter(stream, stringPool); }
internal TzdbStreamField(TzdbStreamFieldId id, byte[] data) { this.Id = id; this.data = data; }