Can you give an example of a specific field that has different values between the old and new messages? I suspect the problem might be that you're expecting them to be equal on a byte-for-byte comparison of their in-memory structure, and that will usually not be the case because the messages will contain things like pointers to submessages.
On Wed, May 29, 2019 at 11:06 AM Boris Pitel <[email protected]> wrote: > Adam, the new deserealized object doesn't contain ANY data which was in > original object instance. > > To put it simple > 1) we have obj > 2) we make a string obj.SerializetoString ( & body) > 3) We parse the string into new object : newobj.ParseFromString ( body). > 4) I expect obj == newobj. But it isn't so. newobj is not equal to obj ( > in terms of content - field value) > > Thanks, > Boris > > > On Wednesday, May 29, 2019 at 1:41:48 PM UTC-4, Adam Cozzette wrote: >> >> Hmm, that makes me think perhaps everything is working then. What is >> different about the messages in a way that you didn't expect? >> >> On Wed, May 29, 2019 at 10:37 AM Boris Pitel <[email protected]> wrote: >> >>> 89. The same as original object. >>> It is strange. Isn't it? >>> >>> >>> >>> On Wednesday, May 29, 2019 at 1:12:35 PM UTC-4, Adam Cozzette wrote: >>>> >>>> What's the value of pnewObj->_objectSetType.ByteSizeLong() after the >>>> parse? >>>> >>>> On Wed, May 29, 2019 at 10:01 AM Boris Pitel <[email protected]> >>>> wrote: >>>> >>>>> Thank you, Adam! >>>>> Yes, both returns values are true, and size is very reasonable - 89. >>>>> Any other ideas? :( >>>>> -Boris >>>>> >>>>> >>>>> On Wednesday, May 29, 2019 at 12:57:49 PM UTC-4, Adam Cozzette wrote: >>>>>> >>>>>> So after parsing, the message is just empty? The first thing I would >>>>>> do is double-check that SerializeToString() and ParseFromString() are >>>>>> returning true and also verify that the length of the serialized string >>>>>> is >>>>>> reasonable. >>>>>> >>>>>> On Wed, May 29, 2019 at 9:48 AM Boris Pitel <[email protected]> >>>>>> wrote: >>>>>> >>>>>>> Ok, let me explain. I have a class let's call it PriceTicObjectSet. >>>>>>> This class is a wrapper around protobuf class. This PriceTicObjectSet >>>>>>> has >>>>>>> member variables which are directly point to protobuf class variables - >>>>>>> just setters and getters. Function toString is for convenience only, >>>>>>> all it >>>>>>> does it is dumps the content of the instance of PriceTicObjectSet. Its >>>>>>> implementation is like : >>>>>>> ..... >>>>>>> if ( name_internal != NULL ) toReturn += ("name=" + >>>>>>> name_internal->value() ); >>>>>>> .... >>>>>>> >>>>>>> in other words toString() is just not essential here. We could just >>>>>>> use debugger and see that after ParseFromString the object doesn't >>>>>>> change >>>>>>> at all. >>>>>>> >>>>>>> Sorry for not being clear. >>>>>>> >>>>>>> Thanks, >>>>>>> >>>>>>> -Boris >>>>>>> >>>>>>> >>>>>>> On Wednesday, May 29, 2019 at 12:15:02 PM UTC-4, Adam Cozzette wrote: >>>>>>>> >>>>>>>> Could you provide some more details on what that function does and >>>>>>>> what its outputting? Without that it is hard to know what the problem >>>>>>>> is. >>>>>>>> >>>>>>>> On Wed, May 29, 2019 at 8:04 AM Boris Pitel <[email protected]> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> toString is just a function which dumps the object >>>>>>>>> ( PriceTicObjectSet ) - PriceTicObjectSet is just a very thin wrapper >>>>>>>>> around protobuf class. I use toString to see the content of the >>>>>>>>> message. >>>>>>>>> >>>>>>>>> -Boris >>>>>>>>> >>>>>>>>> On Wednesday, May 29, 2019 at 10:40:02 AM UTC-4, Adam Cozzette >>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>> What does your toString() function do? >>>>>>>>>> >>>>>>>>>> On Wed, May 29, 2019 at 7:32 AM Boris Pitel <[email protected]> >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> Hello team, >>>>>>>>>>> I am new to C++ protobuf. library. >>>>>>>>>>> I experience following difficulty. >>>>>>>>>>> I have an pObj, i serialize it using SerializeToString, then as >>>>>>>>>>> a test i try to deserialize the string using ParseFromString. I >>>>>>>>>>> expect that >>>>>>>>>>> after deserialization the object will contain the same data as >>>>>>>>>>> original >>>>>>>>>>> pObj. It doesn't happen. The new object contains nulls. The >>>>>>>>>>> ParseFromString >>>>>>>>>>> return true. Here is the pseudo-code: >>>>>>>>>>> >>>>>>>>>>> string body; >>>>>>>>>>> int n1 = pObj->_objectSetType.ByteSizeLong(); >>>>>>>>>>> result = pObj->_objectSetType.SerializeToString(&body); >>>>>>>>>>> PriceTicObjectSet* pnewObj = new PriceTicObjectSet; >>>>>>>>>>> result = pnewObj->_objectSetType.ParseFromString(body); >>>>>>>>>>> >>>>>>>>>>> string dump1 = toString(pObj); >>>>>>>>>>> printf("Dump1:\n%s\n", dump1.c_str()); >>>>>>>>>>> string dump2 = toString(pnewObj); >>>>>>>>>>> printf("Dump2:\n%s\n", dump2.c_str()); >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Again, I expect that after deserialization objects pObj and >>>>>>>>>>> pnewObj contain same data. >>>>>>>>>>> This issue puzzles me and it is really important to solve it. >>>>>>>>>>> >>>>>>>>>>> Please can somebody help me - probably I am doing something >>>>>>>>>>> wrong. >>>>>>>>>>> >>>>>>>>>>> Thank you >>>>>>>>>>> >>>>>>>>>>> Boris Pitel >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> 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 [email protected]. >>>>>>>>>>> To post to this group, send email to [email protected]. >>>>>>>>>>> Visit this group at https://groups.google.com/group/protobuf. >>>>>>>>>>> To view this discussion on the web visit >>>>>>>>>>> https://groups.google.com/d/msgid/protobuf/dfae067f-71ec-4550-b18e-aa8aabab0af2%40googlegroups.com >>>>>>>>>>> <https://groups.google.com/d/msgid/protobuf/dfae067f-71ec-4550-b18e-aa8aabab0af2%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>>>>>> . >>>>>>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> On Wednesday, May 29, 2019 at 10:40:02 AM UTC-4, Adam Cozzette >>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>> What does your toString() function do? >>>>>>>>>> >>>>>>>>>> On Wed, May 29, 2019 at 7:32 AM Boris Pitel <[email protected]> >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> Hello team, >>>>>>>>>>> I am new to C++ protobuf. library. >>>>>>>>>>> I experience following difficulty. >>>>>>>>>>> I have an pObj, i serialize it using SerializeToString, then as >>>>>>>>>>> a test i try to deserialize the string using ParseFromString. I >>>>>>>>>>> expect that >>>>>>>>>>> after deserialization the object will contain the same data as >>>>>>>>>>> original >>>>>>>>>>> pObj. It doesn't happen. The new object contains nulls. The >>>>>>>>>>> ParseFromString >>>>>>>>>>> return true. Here is the pseudo-code: >>>>>>>>>>> >>>>>>>>>>> string body; >>>>>>>>>>> int n1 = pObj->_objectSetType.ByteSizeLong(); >>>>>>>>>>> result = pObj->_objectSetType.SerializeToString(&body); >>>>>>>>>>> PriceTicObjectSet* pnewObj = new PriceTicObjectSet; >>>>>>>>>>> result = pnewObj->_objectSetType.ParseFromString(body); >>>>>>>>>>> >>>>>>>>>>> string dump1 = toString(pObj); >>>>>>>>>>> printf("Dump1:\n%s\n", dump1.c_str()); >>>>>>>>>>> string dump2 = toString(pnewObj); >>>>>>>>>>> printf("Dump2:\n%s\n", dump2.c_str()); >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Again, I expect that after deserialization objects pObj and >>>>>>>>>>> pnewObj contain same data. >>>>>>>>>>> This issue puzzles me and it is really important to solve it. >>>>>>>>>>> >>>>>>>>>>> Please can somebody help me - probably I am doing something >>>>>>>>>>> wrong. >>>>>>>>>>> >>>>>>>>>>> Thank you >>>>>>>>>>> >>>>>>>>>>> Boris Pitel >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> 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 [email protected]. >>>>>>>>>>> To post to this group, send email to [email protected]. >>>>>>>>>>> Visit this group at https://groups.google.com/group/protobuf. >>>>>>>>>>> To view this discussion on the web visit >>>>>>>>>>> https://groups.google.com/d/msgid/protobuf/dfae067f-71ec-4550-b18e-aa8aabab0af2%40googlegroups.com >>>>>>>>>>> <https://groups.google.com/d/msgid/protobuf/dfae067f-71ec-4550-b18e-aa8aabab0af2%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>>>>>> . >>>>>>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>>>>>> >>>>>>>>>> -- >>>>>>>>> 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 [email protected]. >>>>>>>>> To post to this group, send email to [email protected]. >>>>>>>>> Visit this group at https://groups.google.com/group/protobuf. >>>>>>>>> To view this discussion on the web visit >>>>>>>>> https://groups.google.com/d/msgid/protobuf/d3e71b81-66db-48d9-8cc3-640aee92919a%40googlegroups.com >>>>>>>>> <https://groups.google.com/d/msgid/protobuf/d3e71b81-66db-48d9-8cc3-640aee92919a%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>>>> . >>>>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>>>> >>>>>>>> -- >>>>>>> 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 [email protected]. >>>>>>> To post to this group, send email to [email protected]. >>>>>>> Visit this group at https://groups.google.com/group/protobuf. >>>>>>> To view this discussion on the web visit >>>>>>> https://groups.google.com/d/msgid/protobuf/bb594c06-2d62-46b6-9f53-b65f26af4dd8%40googlegroups.com >>>>>>> <https://groups.google.com/d/msgid/protobuf/bb594c06-2d62-46b6-9f53-b65f26af4dd8%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>> . >>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>> >>>>>> -- >>>>> 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 [email protected]. >>>>> To post to this group, send email to [email protected]. >>>>> Visit this group at https://groups.google.com/group/protobuf. >>>>> To view this discussion on the web visit >>>>> https://groups.google.com/d/msgid/protobuf/41c133de-c9f7-478c-a910-446248251197%40googlegroups.com >>>>> <https://groups.google.com/d/msgid/protobuf/41c133de-c9f7-478c-a910-446248251197%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>> . >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> -- >>> 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 [email protected]. >>> To post to this group, send email to [email protected]. >>> Visit this group at https://groups.google.com/group/protobuf. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/protobuf/32df94fb-c76d-4916-bbe2-9ef70bb06ae8%40googlegroups.com >>> <https://groups.google.com/d/msgid/protobuf/32df94fb-c76d-4916-bbe2-9ef70bb06ae8%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> For more options, visit https://groups.google.com/d/optout. >>> >> -- > 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 [email protected]. > To post to this group, send email to [email protected]. > Visit this group at https://groups.google.com/group/protobuf. > To view this discussion on the web visit > https://groups.google.com/d/msgid/protobuf/0375fb61-963a-4127-bb8a-c44ba6237ffa%40googlegroups.com > <https://groups.google.com/d/msgid/protobuf/0375fb61-963a-4127-bb8a-c44ba6237ffa%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- 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 [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/protobuf. To view this discussion on the web visit https://groups.google.com/d/msgid/protobuf/CADqAXr70evhinDAWs9yN58z5-fBznKo1ERwV93%3DgpjQnJQJGtA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
