On Wed, Sep 23, 2009 at 09:53, jayt0...@gmail.com <jayt0...@gmail.com> wrote:
>
> what about if you have something like
>
>  message foo1 {
>    optional int32 value1 = 1;
>    optional int32 value2 = 2;
>
>  }
>
>  message foo2 {
>    repeated foo1 stuff1 = 1;
>    optional foo1 stuff2 = 2;
>  }
>
> do you know how to add another stuff1 to foo2 structure?

 foo1* added_value = foo2_message.add_stuff1();
 added_value->set_value1(42);
 added_value->set_value2(43);

 .. or the usual with CopyFrom()
 foo2_message.add_stuff1()->CopyFrom(some_foo1);

>
>
> On Sep 23, 8:45 am, "jayt0...@gmail.com" <jayt0...@gmail.com> wrote:
>> message foo1 {
>>    optional int32 value1 = 1;
>>    optional int32 value2 = 2;
>>
>> }
>>
>> message foo2 {
>>    optional foo1 stuff1 = 1;
>>    optional foo2 stuff2 = 2;
>>
>> }
>>
>> foo1 msg_foo1;
>> foo2 msg_foo2;
>>
>> msg_foo2.set_stuff1(foo1);
>>
>> This is the concept of what I'm trying to do.
>>
>> On Sep 23, 8:25 am, Henner Zeller <h.zel...@acm.org> wrote:
>>
>> > Hi,
>>
>> > On Wed, Sep 23, 2009 at 08:13, jayt0...@gmail.com <jayt0...@gmail.com> 
>> > wrote:
>>
>> > > I am having trouble accessing many members of my .proto file.  It
>> > > seems that compound members are not accessible with set_() method
>> > > calls.  I saw in your example code the use of mutable_() calls. What
>> > > does this apply to and is there documentation on it? could this be the
>> > > solution to my problem?
>>
>> > You should describe your problem more closely, it is not quite clear
>> > what you mean.
>>
>> > If you have a message Bar, that contains a message Foo, say:
>>
>> > message Foo {
>> >    optional int32 value = 1;
>>
>> > }
>>
>> > message Bar {
>> >    optional Foo foo = 1;
>>
>> > }
>>
>> > you would access 'foo' to set a value with
>> >    Bar message;
>> >    message.mutable_foo()->set_value(42);
>> > If there is no 'foo', it will implicitly be created (so has_bar() will
>> > return 'true' afterwards').
>>
>> > .. while accessing can be const
>> >    if (message.has_foo())
>> >       printf("%d", message.bar().value());
>>
>> > But it sounds like you would like to 'set' a complete Foo message. So
>> > if you want to 'set' a complete Foo, you would use CopyFrom()
>> >   Foo foo_message;
>> >   foo_message.set_value(42);
>>
>> >   Bar bar_message;
>> >   bar_message.mutable_bar()->CopyFrom(foo_message);
>>
>> > -h
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To post to this group, send email to protobuf@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