Endian
I quickly reviewed the documentation and the faq and found no reference to the protocol demanding big endian or little endian or associated byte order conversion. Does the protocol require one or the other? Alternately, does the compiled have an endian switch/ conversion option in the resulting code? Specifically, I'll be generating binary data on a big endian and sending to a little endian. --~--~-~--~~~---~--~~ 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 -~--~~~~--~~--~--~---
Re: Core Dump with c++ 4.1.1
Sushil Shelly wrote: Kenton and Team, We recently moved to using c++ 4.1.1 and are getting a segmentation fault as shown below. We are simply building the tutorial code and then run 'add_person' (This same test runs fine when built with C++ 3.4.0). Did you re-build protobuf after upgrading to 4.1.1? C++ doesn't guarantee binary compatibility in this particular case - so if your library was built with the old compiler version and the test program with the new, it may be an issue. Partial core dump is shown below!! - Core was generated by `add_person'. Program terminated with signal 11, Segmentation fault. #0 0x0809dbc7 in std::_Rb_treestd::string, std::pairstd::string const, std::pairvoid const*, int , std::_Select1ststd::pairstd::string const, std::pairvoid const*, int , std::lessstd::string, std::allocatorstd::pairstd::string const, std::pairvoid const*, int ::insert_unique (this=0x4, _...@0xbfbed9c8) - This is fairly urgent for us and is a show-stopper - could you please comment.. thanks, Sushil. --~--~-~--~~~---~--~~ 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 -~--~~~~--~~--~--~---
Re: Core Dump with c++ 4.1.1
Yea we do a make clean and rebuild to get new libraries, Is there any one actually using C++ 4.1.1? On Fri, Aug 14, 2009 at 11:59 AM, Monty Taylor mord...@inaugust.com wrote: Sushil Shelly wrote: Kenton and Team, We recently moved to using c++ 4.1.1 and are getting a segmentation fault as shown below. We are simply building the tutorial code and then run 'add_person' (This same test runs fine when built with C++ 3.4.0). Did you re-build protobuf after upgrading to 4.1.1? C++ doesn't guarantee binary compatibility in this particular case - so if your library was built with the old compiler version and the test program with the new, it may be an issue. Partial core dump is shown below!! - Core was generated by `add_person'. Program terminated with signal 11, Segmentation fault. #0 0x0809dbc7 in std::_Rb_treestd::string, std::pairstd::string const, std::pairvoid const*, int , std::_Select1ststd::pairstd::string const, std::pairvoid const*, int , std::lessstd::string, std::allocatorstd::pairstd::string const, std::pairvoid const*, int ::insert_unique (this=0x4, _...@0xbfbed9c8) - This is fairly urgent for us and is a show-stopper - could you please comment.. thanks, Sushil. --~--~-~--~~~---~--~~ 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 -~--~~~~--~~--~--~---
Re: Core Dump with c++ 4.1.1
Sushil Shelly wrote: Yea we do a make clean and rebuild to get new libraries, Is there any one actually using C++ 4.1.1? By C++ 4.1.1 I'm assuming you are using GCC? If so, yes, I use this on several of the machines in my build farm for Drizzle (which uses Protobuf quite heavily) with no problems. If you do not mean GCC, then what compiler are you talking about? Monty On Fri, Aug 14, 2009 at 11:59 AM, Monty Taylor mord...@inaugust.com mailto:mord...@inaugust.com wrote: Sushil Shelly wrote: Kenton and Team, We recently moved to using c++ 4.1.1 and are getting a segmentation fault as shown below. We are simply building the tutorial code and then run 'add_person' (This same test runs fine when built with C++ 3.4.0). Did you re-build protobuf after upgrading to 4.1.1? C++ doesn't guarantee binary compatibility in this particular case - so if your library was built with the old compiler version and the test program with the new, it may be an issue. Partial core dump is shown below!! - Core was generated by `add_person'. Program terminated with signal 11, Segmentation fault. #0 0x0809dbc7 in std::_Rb_treestd::string, std::pairstd::string const, std::pairvoid const*, int , std::_Select1ststd::pairstd::string const, std::pairvoid const*, int , std::lessstd::string, std::allocatorstd::pairstd::string const, std::pairvoid const*, int ::insert_unique (this=0x4, _...@0xbfbed9c8) - This is fairly urgent for us and is a show-stopper - could you please comment.. thanks, Sushil. --~--~-~--~~~---~--~~ 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 -~--~~~~--~~--~--~---
Re: Endian
On Fri, Aug 14, 2009 at 8:28 AM, DavePpelow...@pelowitz.com wrote: I quickly reviewed the documentation and the faq and found no reference to the protocol demanding big endian or little endian or associated byte order conversion. Does the protocol require one or the other? Alternately, does the compiled have an endian switch/ conversion option in the resulting code? Specifically, I'll be generating binary data on a big endian and sending to a little endian. The generated code of protocol buffers guarantee that you get read the data out in the correct byte order for the local machine. The _binary_ encoding of the protocol buffers is independent of the platform it is sent from, so you don't have to care about that. So you're all good ;) -h (the binary format is doing little endian because of slightly better performance on the typical machines Google uses .. but as I said, you don't have to care about that). --~--~-~--~~~---~--~~ 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 -~--~~~~--~~--~--~---
Re: Endian
The encoding documentation: http://code.google.com/apis/protocolbuffers/docs/encoding.html http://code.google.com/apis/protocolbuffers/docs/encoding.htmlspecifies that fixed-width numbers are encoded in little-endian order. However, you only have to know that if you are writing a protobuf parser or encoder. As a user, this is all handled automatically. On Fri, Aug 14, 2009 at 8:28 AM, DaveP pelow...@pelowitz.com wrote: I quickly reviewed the documentation and the faq and found no reference to the protocol demanding big endian or little endian or associated byte order conversion. Does the protocol require one or the other? Alternately, does the compiled have an endian switch/ conversion option in the resulting code? Specifically, I'll be generating binary data on a big endian and sending to a little endian. --~--~-~--~~~---~--~~ 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 -~--~~~~--~~--~--~---
Re: protobuf HPUX support
Thanks. In order to accept this I'll need you to sign the Contributor License Agreement: http://code.google.com/legal/individual-cla-v1.0.html -- If you own copyright on this patch. http://code.google.com/legal/corporate-cla-v1.0.html -- If your employer does. You can sign the individual agreement via the web page. Let me know when you've signed and I'll submit this. 2009/8/13 COFF a...@sibmail.ru New patch avoid this sent. On 14 авг, 10:54, COFF a...@sibmail.ru wrote: Thank you for answer. I will try doing this way too. On 14 авг, 10:18, Kenton Varda ken...@google.com wrote: Instead of changing everything that calls EXPECT_EQ on strings, can we change the implementation of EXPECT_EQ itself so that doesn't trigger this error? For example, could it be overloaded with an explicit implementation for non-const strings? Any changes to gtest will have to be submitted back to the gtest project. Protocol Buffers ships with the verbatim gtest code -- we don't maintain local modifications. On Thu, Aug 13, 2009 at 7:47 PM, COFF a...@sibmail.ru wrote: I sent patches directly to you. Note on adding also VC 7.1 support (macro EXPECT_EQ produse Internal Compiller Error on non const std::string) On 14 авг, 02:24, Kenton Varda ken...@google.com wrote: Please send a patch. Use diff -u to create it (see the man page), or if you made your changes against the SVN sources, just use svn diff. On Wed, Aug 12, 2009 at 10:08 PM, COFF a...@sibmail.ru wrote: Hello Kenton! I succesfully merge my project on new version of protobuf. I made patches that enable HPUX (and partialy STLPORT) support in protobuf (only .cc and .h - I not use autoconf stuff). Can and how I send it to you? Best regards, Alex. --~--~-~--~~~---~--~~ 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 -~--~~~~--~~--~--~---
combine protobuf messages
Hi, I have a following use case and I'm not sure what will be the best way to go. I have a relatively complex protobuf message that I'm using in my application. It should be correctly initialized my application to works. The problem I have is that the information that makes this complete message is provided from several different sources. I have no control over them (how much and what information they will provide). The only requirement is at the end after all of the information is collected from all of the sources the message is full. The sources will have priorities so if there are overlaps of the information the information from the source with high priority will be used. What most probably I need is: 1. How to serialize parts from the message without validation 2. How to combine two parts. Or how to parse second part which may overlap some of the already existing parts Any other ideas? thanks, George --~--~-~--~~~---~--~~ 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 -~--~~~~--~~--~--~---
Re: combine protobuf messages
On Fri, Aug 14, 2009 at 1:18 PM, George Georgiev georgi.georg...@citrix.com wrote: 1. How to serialize parts from the message without validation Use the Partial serialization and parsing methods, e.g. SerializePartialToString() and ParsePartialFromString(). These do not check required fields. 2. How to combine two parts. Or how to parse second part which may overlap some of the already existing parts Use MergeFrom(): MyMessage combined; // Iterate over messages from lowest to highest priority. for (int priority = 0; priority max_priority; ++priority) { combined.MergeFrom(messages_by_priority[priority]); } // Check if (!combined.IsInitialized()) { cerr Missing required fields: combined.InitializationErrorString() endl; return false; } As documented, the semantics of MergeFrom() are: Singular fields will be overwritten, except for embedded messages which will be merged. Repeated fields will be concatenated. So, if you merge the highest-priority message last, then its values will end up taking precedence. If MergeFrom() isn't quite what you want, then you'll have to write a custom algorithm based on reflection. --~--~-~--~~~---~--~~ 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 -~--~~~~--~~--~--~---
RE: combine protobuf messages
Hi, MergeFrom sounds good. The only issue that I still will have is with the repeated fields. For some of them I will have an Id attribute. So what I would like to achieve is when I merge the messages instead of adding new partial message in the list it to combine those of the repeated messages that have the same Id. custom algorithm based on reflection I suppose this is what I need in this case. Could you please give me a bit more information what you mean. Thanks -George From: Kenton Varda [mailto:ken...@google.com] Sent: Friday, August 14, 2009 2:01 PM To: George Georgiev Cc: Protocol Buffers Subject: Re: combine protobuf messages On Fri, Aug 14, 2009 at 1:18 PM, George Georgiev georgi.georg...@citrix.commailto:georgi.georg...@citrix.com wrote: 1. How to serialize parts from the message without validation Use the Partial serialization and parsing methods, e.g. SerializePartialToString() and ParsePartialFromString(). These do not check required fields. 2. How to combine two parts. Or how to parse second part which may overlap some of the already existing parts Use MergeFrom(): MyMessage combined; // Iterate over messages from lowest to highest priority. for (int priority = 0; priority max_priority; ++priority) { combined.MergeFrom(messages_by_priority[priority]); } // Check if (!combined.IsInitialized()) { cerr Missing required fields: combined.InitializationErrorString() endl; return false; } As documented, the semantics of MergeFrom() are: Singular fields will be overwritten, except for embedded messages which will be merged. Repeated fields will be concatenated. So, if you merge the highest-priority message last, then its values will end up taking precedence. If MergeFrom() isn't quite what you want, then you'll have to write a custom algorithm based on reflection. --~--~-~--~~~---~--~~ 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 -~--~~~~--~~--~--~---
Re: combine protobuf messages
If you can just write code specific to your message type which deals with merging items with the same ID, I'd suggest doing that. If you really need to write a totally generic algorithm, you can use reflection as documented here: http://code.google.com/apis/protocolbuffers/docs/reference/cpp/google.protobuf.message.html#Reflection On Fri, Aug 14, 2009 at 4:46 PM, George Georgiev georgi.georg...@citrix.com wrote: Hi, MergeFrom sounds good. The only issue that I still will have is with the repeated fields. For some of them I will have an Id attribute. So what I would like to achieve is when I merge the messages instead of adding new partial message in the list it to combine those of the repeated messages that have the same Id. custom algorithm based on reflection I suppose this is what I need in this case. Could you please give me a bit more information what you mean. Thanks -George -- *From:* Kenton Varda [mailto:ken...@google.com] *Sent:* Friday, August 14, 2009 2:01 PM *To:* George Georgiev *Cc:* Protocol Buffers *Subject:* Re: combine protobuf messages On Fri, Aug 14, 2009 at 1:18 PM, George Georgiev georgi.georg...@citrix.com wrote: 1. How to serialize parts from the message without validation Use the Partial serialization and parsing methods, e.g. SerializePartialToString() and ParsePartialFromString(). These do not check required fields. 2. How to combine two parts. Or how to parse second part which may overlap some of the already existing parts Use MergeFrom(): MyMessage combined; // Iterate over messages from lowest to highest priority. for (int priority = 0; priority max_priority; ++priority) { combined.MergeFrom(messages_by_priority[priority]); } // Check if (!combined.IsInitialized()) { cerr Missing required fields: combined.InitializationErrorString() endl; return false; } As documented, the semantics of MergeFrom() are: Singular fields will be overwritten, except for embedded messages which will be merged. Repeated fields will be concatenated. So, if you merge the highest-priority message last, then its values will end up taking precedence. If MergeFrom() isn't quite what you want, then you'll have to write a custom algorithm based on reflection. --~--~-~--~~~---~--~~ 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 -~--~~~~--~~--~--~---