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>
<data length varint>
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
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, <itt...@gmail.com> 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.
> 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 protobuf+unsubscr...@googlegroups.com.
> To post to this group, send email to firstname.lastname@example.org.
> 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 post to this group, send email to email@example.com.
Visit this group at http://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/groups/opt_out.