Oh, huh, good to know. Sorry for the misinformation Constantine.

On Mon, Jun 7, 2010 at 9:02 PM, Kenton Varda <ken...@google.com> wrote:

> Actually, UnknownFieldSet is exactly where the custom options will end up
> if their definitions are not compiled into the binary.  DescriptorPool
> converts all UninterpretedOptions into either extensions or unknown fields
> when building the descriptors.
>
> The way to access them is to take the FieldOptions message from your
> descriptor, serialize it, then re-parse it into a DynamicMessage using a
> DescriptorPool in which the custom options are defined.  Rather convoluted,
> but we don't have a better way.
>
> On Mon, Jun 7, 2010 at 3:25 PM, Jason Hsueh <jas...@google.com> wrote:
>
>> Hm. Can you send the code snippet you are using to try to access your
>> custom option? You should just be accessing the options proto from
>> FieldDescriptor::options(), and calling GetExtension() on that.
>>
>>  Also, UnknownFields doesn't have anything to do with options extensions.
>> Did you mean UninterpretedOptions instead? UnknownFields store data that
>> exists in the serialization that the message definition doesn't know what to
>> do with. FieldOptions don't exist in the serialization - they're just
>> properties of the message definition.
>>
>>
>> On Mon, Jun 7, 2010 at 5:40 AM, Constanine Verutin <cveru...@gmail.com>wrote:
>>
>>> Hello,
>>>
>>> I'm curious is there any way to access extension fields for
>>> FieldOptions(or MessageOptions) in DynamicMessage?
>>>
>>> i.e.
>>>
>>> We define message and option, like this:
>>>
>>> extend google.protobuf.FieldOptions {
>>>    optional string my_opt = 50001;
>>> }
>>>
>>> message MyMessage {
>>>    required string my_field [(my_opt) = "opt"];
>>> }
>>>
>>> Then we load this .proto in runtime via Importer, get the Message
>>> object from DynamicMessageFactory, then parse encoded message. Now,
>>> using Reflection/Descriptor I want to get all options for
>>> my_field(including extensions), but only standard options are
>>> accessible, all extensions go to UnknownFields, so I can get only
>>> their values but not names. My question: is there any way to get all
>>> options(with extensions) of field/message, if message/option
>>> definitions were loaded in runtime?
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups
>>> "Protocol Buffers" group.
>>> To post to this group, send email to proto...@googlegroups.com.
>>> To unsubscribe from this group, send email to
>>> protobuf+unsubscr...@googlegroups.com<protobuf%2bunsubscr...@googlegroups.com>
>>> .
>>> 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 proto...@googlegroups.com.
>> To unsubscribe from this group, send email to
>> protobuf+unsubscr...@googlegroups.com<protobuf%2bunsubscr...@googlegroups.com>
>> .
>> 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 proto...@googlegroups.com.
To unsubscribe from this group, send email to 
protobuf+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/protobuf?hl=en.

Reply via email to