Thanks for the quick reply -- I noticed this in the documentation after searching for default instance:
"For embedded messages, the default value is always the "default instance" or "prototype" of the message, which has none of its fields set." So, does this mean that even the required fields will be set to their default values in this prototype object? Or is there some other algorithm for the values of the fields within the prototype/default instance? For broader context, I'm trying to figure out how to determine if an optional field was actually set in the transmitted protocol buffer or whether its default value was filled in automatically. In reference to the example below, if the title field had been set to "Field of Dreams" and then the user set it to an empty string "", I would want to actually update the value in my data store to be the empty string. However, if the user didn't change the title field at all, I will still see an empty string in the title field when I try and get at the field through the accessor. I'm looking for a way to setup my protocol buffer format so I can distinguish between those two cases. Thanks again. On Jun 4, 9:45 am, Jason Hsueh <[email protected]> wrote: > No, protobuf accessors never return null. For message fields, you get the > default instance of the message type. > > > > On Fri, Jun 4, 2010 at 9:32 AM, Jax <[email protected]> wrote: > > > This should be pretty straightforward, but I couldn't find it in any > > of the documentation on default values. > > > A slight change from some example code in the google documentation: > > > message SearchResponse { > > optional Result result = 1; > > } > > > message Result { > > required string url = 1; > > optional string title = 2; > > repeated string snippets = 3; > > } > > > My question is, what is the default value for the Result in the above > > code? Does it get set to null since (I presume) it will be compiled > > into an object when the protocol buffer gets compiled into Java or C#? > > Or do default values work differently for a nested message than for > > base types? > > > -- > > 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] > > om> > > . > > 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.
