public override Builder MergeFrom(CodedInputStream input, ExtensionRegistry extensionRegistry) { UnknownFieldSet.Builder unknownFieldsBuilder = UnknownFieldSet.CreateBuilder(unknownFields); unknownFieldsBuilder.MergeFrom(input, extensionRegistry, this); unknownFields = unknownFieldsBuilder.Build(); return(this); }
public void SkipWholeMessage() { TestAllTypes message = TestUtil.GetAllSet(); byte[] rawBytes = message.ToByteArray(); // Create two parallel inputs. Parse one as unknown fields while using // skipField() to skip each field on the other. Expect the same tags. CodedInputStream input1 = CodedInputStream.CreateInstance(rawBytes); CodedInputStream input2 = CodedInputStream.CreateInstance(rawBytes); UnknownFieldSet.Builder unknownFields = UnknownFieldSet.CreateBuilder(); uint tag; string name; while (input1.ReadTag(out tag, out name)) { uint tag2; Assert.IsTrue(input2.ReadTag(out tag2, out name)); Assert.AreEqual(tag, tag2); unknownFields.MergeFieldFrom(tag, input1); input2.SkipField(); } }
public virtual TBuilder MergeFrom(CodedInputStream input, ExtensionRegistry extensionRegistry) { UnknownFieldSet.Builder unknownFields = UnknownFieldSet.CreateBuilder(UnknownFields); unknownFields.MergeFrom(input, extensionRegistry, this); UnknownFields = unknownFields.Build(); return(ThisBuilder); }
/// <summary> /// Reads a group field value from the stream and merges it into the given /// UnknownFieldSet. /// </summary> public void ReadUnknownGroup(int fieldNumber, UnknownFieldSet.Builder builder) { if (recursionDepth >= recursionLimit) { throw InvalidProtocolBufferException.RecursionLimitExceeded(); } ++recursionDepth; builder.MergeFrom(this); CheckLastTagWas(WireFormat.MakeTag(fieldNumber, WireFormat.WireType.EndGroup)); --recursionDepth; }
/// <summary> /// Constructs a protocol buffer which contains fields with all the same /// numbers as allFieldsData except that each field is some other wire /// type. /// </summary> private ByteString GetBizarroData() { UnknownFieldSet.Builder bizarroFields = UnknownFieldSet.CreateBuilder(); UnknownField varintField = UnknownField.CreateBuilder().AddVarint(1).Build(); UnknownField fixed32Field = UnknownField.CreateBuilder().AddFixed32(1).Build(); foreach (KeyValuePair <int, UnknownField> entry in unknownFields.FieldDictionary) { if (entry.Value.VarintList.Count == 0) { // Original field is not a varint, so use a varint. bizarroFields.AddField(entry.Key, varintField); } else { // Original field *is* a varint, so use something else. bizarroFields.AddField(entry.Key, fixed32Field); } } return(bizarroFields.Build().ToByteString()); }
protected override bool ParseUnknownField(ICodedInputStream input, UnknownFieldSet.Builder unknownFields, ExtensionRegistry extensionRegistry, uint tag, string fieldName) { return(unknownFields.MergeFieldFrom(input, extensionRegistry, this, tag, fieldName)); }
protected virtual bool ParseUnknownField(ICodedInputStream input, UnknownFieldSet.Builder unknownFields, ExtensionRegistry extensionRegistry, uint tag, string fieldName) { return(unknownFields.MergeFieldFrom(tag, input)); }