On Thu, Apr 29, 2010 at 3:01 PM, Adam Kwintkiewicz <
[email protected]> wrote:
> They have different wire type (2; 3 and 4). They are stored in different
> ways and because of that they have a little bit different code inside
> parsing/serializing methods.
The wire type and the field number combine to form the tag. The tag is
obviously a property of the specific field, not the message type. So this
affects the code you generate for that field, but should not affect the code
you generate for the message type.
Here's an example of a single message type used as both a field and a
sub-message:
message Foo {
optoinal group Bar = 1 { ... }
}
message Baz {
optional Foo.Bar bar = 1;
}
When serializing Foo.bar, you need to use group encoding, but when
serializing Baz.bar, you need to use sub-message encoding.
>
>
> 2010/4/29 Kenton Varda <[email protected]>
>
>> Why do you need to generate different code for the two? All the official
>> code generators generate exactly the same code for message classes whether
>> they be nested messages or groups. Version 1 of protocol buffers generated
>> different classes and it proved to be an enormous pain.
>>
>> On Thu, Apr 29, 2010 at 2:04 PM, Adam Kwintkiewicz <
>> [email protected]> wrote:
>>
>>> hmm this is a slight problem. I am iterating over the nested messages and
>>> then generating a message/group code. I don't have reference to the specific
>>> field
>>>
>>> 2010/4/29 Kenton Varda <[email protected]>
>>>
>>> A single message type can be used as both a message and as a group, so
>>>> there is no way to tell which it is from the Descriptor. You have to have
>>>> the FieldDescriptor in the containing message.
>>>>
>>>>
>>>> On Thu, Apr 29, 2010 at 1:36 PM, adamdms
>>>> <[email protected]>wrote:
>>>>
>>>>> how to check whether the current message (Descriptor *) is a group?
>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "Protocol Buffers" group.
>>>>> To post to this group, send email to [email protected].
>>>>> To unsubscribe from this group, send email to
>>>>> [email protected]<protobuf%[email protected]>
>>>>> .
>>>>> For more options, visit this group at
>>>>> http://groups.google.com/group/protobuf?hl=en.
>>>>>
>>>>>
>>>>
>>>
>>
>
--
You received this message because you are subscribed to the Google Groups
"Protocol Buffers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/protobuf?hl=en.