Пример #1
0
            internal FieldData AddField(TzdbStreamFieldId fieldNumber, IList <string> stringPool)
            {
                FieldData ret = new FieldData(fieldNumber, stringPool);

                fields.Add(ret);
                return(ret);
            }
Пример #2
0
 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));
     }
 }
Пример #3
0
 private TzdbStreamField(TzdbStreamFieldId id, byte[] data)
 {
     this.id   = id;
     this.data = data;
 }
Пример #4
0
 internal FieldData AddField(TzdbStreamFieldId fieldNumber, IList<string> stringPool)
 {
     FieldData ret = new FieldData(fieldNumber, stringPool);
     fields.Add(ret);
     return ret;
 }
Пример #5
0
 internal FieldData(TzdbStreamFieldId fieldId, IList<string> stringPool)
 {
     this.FieldId = fieldId;
     this.stream = new MemoryStream();
     this.Writer = new DateTimeZoneWriter(stream, stringPool);
 }
Пример #6
0
 internal FieldData(TzdbStreamFieldId fieldId, IList <string> stringPool)
 {
     this.fieldId = fieldId;
     this.stream  = new MemoryStream();
     this.writer  = new DateTimeZoneWriter(stream, stringPool);
 }
Пример #7
0
 internal TzdbStreamField(TzdbStreamFieldId id, byte[] data)
 {
     this.Id   = id;
     this.data = data;
 }