Unfortunately it's not guaranteed that earlier fields appear earlier in the message. Although that is often the case, I wouldn't recommend writing your code s.t. it assumes this. The usual way that I handle this is by splitting the message into a header and data message, and then send something like
<header length varint> <header data> <data length varint> <data data> That way your manager thread just decodes the header figures out what to do, and sends it on. Then the actual worker thread decodes the data. If this is not an option, you can write a custom decoder that just skips over fields you don't need to read. This is a little tricky, but if you're not trying to be too generic it shouldn't be that much code. On Mon, Jul 8, 2013 at 6:54 AM, <[email protected]> wrote: > Hi Group, > I am using protobuf in a multi-threaded software. Here manager thread > decodes the protobuf encoded message and then assign the message to a > particular worker thread based on key. I want to minimize per message > processing at manager thread. Is it possible to encode the key at the head > of message and decode only this key at manager thread. Complete decoding of > message will be moved to the actual worker thread. > thanks > Ittium > > -- > 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 http://groups.google.com/group/protobuf. > For more options, visit https://groups.google.com/groups/opt_out. > > -- 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 http://groups.google.com/group/protobuf. For more options, visit https://groups.google.com/groups/opt_out.
