Lines Matching defs:message
76 { Timestamp.Descriptor.FullName, (parser, message, tokenizer) => MergeTimestamp(message, tokenizer.Next()) },
77 { Duration.Descriptor.FullName, (parser, message, tokenizer) => MergeDuration(message, tokenizer.Next()) },
78 { Value.Descriptor.FullName, (parser, message, tokenizer) => parser.MergeStructValue(message, tokenizer) },
79 { ListValue.Descriptor.FullName, (parser, message, tokenizer) =>
80 parser.MergeRepeatedField(message, message.Descriptor.Fields[ListValue.ValuesFieldNumber], tokenizer) },
81 { Struct.Descriptor.FullName, (parser, message, tokenizer) => parser.MergeStruct(message, tokenizer) },
82 { Any.Descriptor.FullName, (parser, message, tokenizer) => parser.MergeAny(message, tokenizer) },
83 { FieldMask.Descriptor.FullName, (parser, message, tokenizer) => MergeFieldMask(message, tokenizer.Next()) },
97 private static void MergeWrapperField(JsonParser parser, IMessage message, JsonTokenizer tokenizer)
99 parser.MergeField(message, message.Descriptor.Fields[WrappersReflection.WrapperValueFieldNumber], tokenizer);
119 /// Parses <paramref name="json"/> and merges the information into the given message.
121 /// <param name="message">The message to merge the JSON information into.</param>
123 internal void Merge(IMessage message, string json)
125 Merge(message, new StringReader(json));
129 /// Parses JSON read from <paramref name="jsonReader"/> and merges the information into the given message.
131 /// <param name="message">The message to merge the JSON information into.</param>
133 internal void Merge(IMessage message, TextReader jsonReader)
136 Merge(message, tokenizer);
145 /// Merges the given message using data from the given tokenizer. In most cases, the next
151 private void Merge(IMessage message, JsonTokenizer tokenizer)
157 if (message.Descriptor.IsWellKnownType)
160 if (WellKnownTypeHandlers.TryGetValue(message.Descriptor.FullName, out handler))
162 handler(this, message, tokenizer);
172 var descriptor = message.Descriptor;
175 // The set is created lazily to avoid the overhead of creating a set for every message
204 MergeField(message, field, tokenizer);
220 private void MergeField(IMessage message, FieldDescriptor field, JsonTokenizer tokenizer)
232 field.Accessor.Clear(message);
240 MergeMapField(message, field, tokenizer);
244 MergeRepeatedField(message, field, tokenizer);
249 field.Accessor.SetValue(message, value);
253 private void MergeRepeatedField(IMessage message, FieldDescriptor field, JsonTokenizer tokenizer)
261 IList list = (IList) field.Accessor.GetValue(message);
279 private void MergeMapField(IMessage message, FieldDescriptor field, JsonTokenizer tokenizer)
295 IDictionary dictionary = (IDictionary) field.Accessor.GetValue(message);
356 // TODO: Merge the current value in message? (Public API currently doesn't make this relevant as we don't expose merging.)
388 /// Parses <paramref name="json"/> into a new message.
390 /// <typeparam name="T">The type of message to create.</typeparam>
393 /// <exception cref="InvalidProtocolBufferException">The JSON does not represent a Protocol Buffers message correctly</exception>
401 /// Parses JSON read from <paramref name="jsonReader"/> into a new message.
403 /// <typeparam name="T">The type of message to create.</typeparam>
406 /// <exception cref="InvalidProtocolBufferException">The JSON does not represent a Protocol Buffers message correctly</exception>
410 T message = new T();
411 Merge(message, jsonReader);
412 return message;
416 /// Parses <paramref name="json"/> into a new message.
419 /// <param name="descriptor">Descriptor of message type to parse.</param>
421 /// <exception cref="InvalidProtocolBufferException">The JSON does not represent a Protocol Buffers message correctly</exception>
430 /// Parses JSON read from <paramref name="jsonReader"/> into a new message.
433 /// <param name="descriptor">Descriptor of message type to parse.</param>
435 /// <exception cref="InvalidProtocolBufferException">The JSON does not represent a Protocol Buffers message correctly</exception>
440 IMessage message = descriptor.Parser.CreateTemplate();
441 Merge(message, jsonReader);
442 return message;
445 private void MergeStructValue(IMessage message, JsonTokenizer tokenizer)
448 var fields = message.Descriptor.Fields;
452 fields[Value.NullValueFieldNumber].Accessor.SetValue(message, 0);
455 fields[Value.StringValueFieldNumber].Accessor.SetValue(message, firstToken.StringValue);
458 fields[Value.NumberValueFieldNumber].Accessor.SetValue(message, firstToken.NumberValue);
462 fields[Value.BoolValueFieldNumber].Accessor.SetValue(message, firstToken.Type == JsonToken.TokenType.True);
470 field.Accessor.SetValue(message, structMessage);
479 field.Accessor.SetValue(message, list);
487 private void MergeStruct(IMessage message, JsonTokenizer tokenizer)
496 var field = message.Descriptor.Fields[Struct.FieldsFieldNumber];
497 MergeMapField(message, field, tokenizer);
500 private void MergeAny(IMessage message, JsonTokenizer tokenizer)
503 // the type registry for the relevant message, and replay the stream, omitting the @type property.
524 throw new InvalidProtocolBufferException("Any message with no @type");
557 // Now that we have the message data, we can pack it into an Any (the message received as a parameter).
558 message.Descriptor.Fields[Any.TypeUrlFieldNumber].Accessor.SetValue(message, typeUrl);
559 message.Descriptor.Fields[Any.ValueFieldNumber].Accessor.SetValue(message, data);
744 /// Creates a new instance of the message type for the given field.
801 private static void MergeTimestamp(IMessage message, JsonToken token)
861 // The resulting timestamp after offset change would be out of our expected range. Currently the Timestamp message doesn't validate this
868 message.Descriptor.Fields[Timestamp.SecondsFieldNumber].Accessor.SetValue(message, timestamp.Seconds);
869 message.Descriptor.Fields[Timestamp.NanosFieldNumber].Accessor.SetValue(message, timestamp.Nanos);
877 private static void MergeDuration(IMessage message, JsonToken token)
912 message.Descriptor.Fields[Duration.SecondsFieldNumber].Accessor.SetValue(message, seconds);
913 message.Descriptor.Fields[Duration.NanosFieldNumber].Accessor.SetValue(message, nanos);
921 private static void MergeFieldMask(IMessage message, JsonToken token)
929 IList messagePaths = (IList) message.Descriptor.Fields[FieldMask.PathsFieldNumber].Accessor.GetValue(message);
1007 /// messages, not collections - so a message within a collection within a message only counts as