public void AddEntriesFrom(ref ParseContext ctx, Codec codec) { var adapter = new Codec.MessageAdapter(codec); do { adapter.Reset(); ctx.ReadMessage(adapter); this[adapter.Key] = adapter.Value; } while (ParsingPrimitives.MaybeConsumeTag(ref ctx.buffer, ref ctx.state, codec.MapTag)); }
/// <summary> /// Adds entries to the map from the given stream. /// </summary> /// <remarks> /// It is assumed that the stream is initially positioned after the tag specified by the codec. /// This method will continue reading entries from the stream until the end is reached, or /// a different tag is encountered. /// </remarks> /// <param name="input">Stream to read from</param> /// <param name="codec">Codec describing how the key/value pairs are encoded</param> public void AddEntriesFrom(CodedInputStream input, Codec codec) { var adapter = new Codec.MessageAdapter(codec); do { adapter.Reset(); input.ReadMessage(adapter); this[adapter.Key] = adapter.Value; } while (input.MaybeConsumeTag(codec.MapTag)); }