Example #1
0
 public FieldAcceptance AcceptField(int tag, ArraySegment <byte> value)
 {
     if (Count == 0)
     {
         T elem = new T();
         FieldAcceptance res = elem.AcceptField(tag, value);
         Assert.True(res != FieldAcceptance.AlreadySet);
         if (res == FieldAcceptance.Accepted)
         {
             Add(elem);
         }
         return(res);
     }
     else
     {
         FieldAcceptance res = this[Count - 1].AcceptField(tag, value);
         if (res == FieldAcceptance.AlreadySet)
         {
             Add(new T());
             res = this[Count - 1].AcceptField(tag, value);
             Assert.True(res == FieldAcceptance.Accepted, "res = {0}", res);
         }
         return(res);
     }
 }
Example #2
0
 public FieldAcceptance AcceptField(int tag, ArraySegment <byte> value)
 {
     foreach (IFields fields in (IEnumerable <IFields>) this)
     {
         FieldAcceptance res = fields.AcceptField(tag, value);
         if (res != FieldAcceptance.TagMismatch)
         {
             return(res);
         }
     }
     return(FieldAcceptance.TagMismatch);
 }