Heuristic for getting a particular message type from a FileDescriptorSet

2009-07-09 Thread Christopher Smith
I'm trying to do some work using dynamic message, working from a FileDescriptorSet produced by protoc. The heuristic I've come up with is something like: Parse the binary in to a FileDescriptorSet for each FileDescriptorProto in the set create the FileDescriptor from the FileDescriptorProto

RE: Howto build protobuf not as library, but directly linking object files?

2009-07-09 Thread Alex Black
Hey Bart, I'm not sure I'm seeing the full details of your situation, But on windows I compiled a library libprotobuf.lib, and linked to it statically, meaning it gets built into the exe (or dll) you're building. (I built 2 actually, a release one and a debug one). - Alex -Original

intermittent issue with encode (version 2.0.3)

2009-07-09 Thread Rizzuto, Raymond
I think I have an error in my code (C++) that only occurs when I have multiple threads, and a lot of message volume. Even then, I can run the same test many times, but only get a failure on some runs. With 7 threads running on a 4 core machine, and generating 480384 google protocol buffer

Re: intermittent issue with encode (version 2.0.3)

2009-07-09 Thread Kenton Varda
Run in a debugger and set a breakpoint at wire_format_inl.h:289. On Thu, Jul 9, 2009 at 1:56 PM, Rizzuto, Raymond raymond.rizz...@sig.comwrote: I think I have an error in my code (C++) that only occurs when I have multiple threads, and a lot of message volume. Even then, I can run the same

RE: intermittent issue with encode (version 2.0.3)

2009-07-09 Thread Rizzuto, Raymond
I'm trying to, without success. Breakpoints in header files, at least with the version of tools I have, don't work very well. From: Kenton Varda [mailto:ken...@google.com] Sent: Thursday, July 09, 2009 5:02 PM To: Rizzuto, Raymond Cc: protobuf@googlegroups.com

Re: intermittent issue with encode (version 2.0.3)

2009-07-09 Thread Kenton Varda
I suppose you could also temporarily edit the header file. On Thu, Jul 9, 2009 at 2:05 PM, Rizzuto, Raymond raymond.rizz...@sig.comwrote: I’m trying to, without success. Breakpoints in header files, at least with the version of tools I have, don’t work very well.

RE: intermittent issue with encode (version 2.0.3)

2009-07-09 Thread Rizzuto, Raymond
I'm going to try that. Since another group builds and packages the libraries I use, it'll take a bit to make a private copy with that change. As an enhancement request, I wish there was a function I could call to validate the message content before serialize, that would tell me about any

Re: intermittent issue with encode (version 2.0.3)

2009-07-09 Thread Kenton Varda
This is something you can do in your own code -- just call your validation function before serializing. If this were to be a feature of protocol buffers, then we'd have to store a pointer to your validator function somewhere. Storing it in the message object itself would harm performance and

Re: intermittent issue with encode (version 2.0.3)

2009-07-09 Thread Kenton Varda
Sorry, I think I misread your message. You just want there to me a method like IsInitialized() that you can call to validate UTF-8 stuff. I'll think about that. On Thu, Jul 9, 2009 at 2:32 PM, Kenton Varda ken...@google.com wrote: This is something you can do in your own code -- just call your

RE: intermittent issue with encode (version 2.0.3)

2009-07-09 Thread Rizzuto, Raymond
I am a bit nervous about the GCC4 comment in GeneratedMessageFactory::singleton (message.cc): // No need for thread-safety here because this will be called at static // initialization time. (And GCC4 makes this thread-safe anyway.) I'm using gcc 3.3.3. The singleton object in

Re: intermittent issue with encode (version 2.0.3)

2009-07-09 Thread Kenton Varda
As the comment says, the first call will always occur at startup time when there is only one thread anyway, so it's perfectly safe. The parenthetical about GCC4 is just an aside. On Thu, Jul 9, 2009 at 2:47 PM, Rizzuto, Raymond raymond.rizz...@sig.comwrote: I am a bit nervous about the GCC4