[protobuf] Find and set data to a sub message by message path.

2017-04-13 Thread Trung Hoang Nguyen
Hi everyone,

I'm newbie of Google buffer protocol, and now I have an issue as below:
I have a path string and value like that:

> path_string = "classA.classB.classC.foo_variable ";
> set_value = 1000;


a common set function:

> void set(path_string, set_value);


and some messages:

message classA {
> ...
> classB = 1;
> }
> message classB {
> ...
> classC =1;
> }
> message classC {
> ...
> int foo_variable = 10;
> }


Now with the path_string I need to find out the foo_variable and set its 
value to 1000.
How can I do it with google buffer protocol?

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to protobuf+unsubscr...@googlegroups.com.
To post to this group, send email to protobuf@googlegroups.com.
Visit this group at https://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.


[protobuf] Enum values and proto3 Any types

2017-04-13 Thread Josh Humphries
I have a question about Any types in proto3. I'm guessing they aren't quite
fully-fleshed out since I haven't found a lot in the way of doc or real
support in the Java and Go implementations.

My question: can you use enums or scalar types as values of an Any field?
If so, how do they look?

For scalar types, I can understand if the answer is to use the wrapper
well-known types instead. *But* there doesn't appear to be a wrapper for
enum values. There is a well-known type named google.protobuf.EnumValue,
however it is part of the "schema description" well-known types and doesn't
carry enough data for wrapping an enum value (mainly, it's missing a
reference to its enum type, e.g. a type URL).

It would be nice if the Any message's type_url field could be a URL that
returned an enum description, not just a message description. But the docs
state that the contents at that URL are an encoded google.protobuf.Type,
which describes a message and does not support enum types. Should it
instead have a single one-of field that can be an enum or message
description?

Similarly, the type_url field for google.protobuf.Field is in a similar
conundrum. The doc states it is *"t**he field type URL, without the scheme,
for message or enumeration types"*, but nothing really talks about
enumeration types. The naive assumption is that the URL contents are an
enum description (e.g. an encoded google.protobuf.Enum). But if that's the
case, I could try to put an enum type into an Any field and indicate that
same URL. I then get into trouble because I'd be looking to parse a
google.protobuf.Type, in order to understand the Any message contents, but
actually get back the bytes for a google.protobuf.Enum.

That doesn't seem sound.


*Josh Humphries*
jh...@bluegosling.com

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to protobuf+unsubscr...@googlegroups.com.
To post to this group, send email to protobuf@googlegroups.com.
Visit this group at https://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.