On Tuesday, July 9, 2013 1:51:51 PM UTC-5, Ilia Mirkin wrote:
>
> On Tue, Jul 9, 2013 at 11:36 AM, phreed <[email protected] <javascript:>>
> wrote:
> >
> >
> > On Monday, July 8, 2013 12:59:12 PM UTC-5, Ilia Mirkin wrote:
> >>
> >>
> >>
> >> 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.
> >
> >
> > Do you have an example decoder that can be used as a model
> > for such a custom decoder?
>
> Sadly, no. Perhaps I can poke the responsible parties for open-sourcing
> it.
>
I would appreciate that.
>
> > My situation is a bit different than the original poster.
> > I have a set of content sensitive network bridges.
> > Each bridge is interested in (potentially) different content and
> > as such I would rather not incur parsing costs that are not needed.
> >
>
> Well, if your proto looks something like
>
> message {
> optional Foo a = 1;
> optional Bar b = 2;
> ...
> }
>
> And each thing just needs either a or b or c etc, then it's fairly
> easy. If it's more involved, then it's more difficult :)
>
> The basic idea is that you read the tag, which includes the field
> type. If it's a tag you want, you decode it, e.g. by doing
> Foo.ParseFromString(). If it's not, you skip it (which you can do
> based on the field type, included in the tag). There are helpers in
> WireFormatLite for reading tags/skipping things. (At least for C++,
> not sure how the Java parsing code is organized.)
>
https://code.google.com/p/protobuf/source/browse/trunk/java/src/main/java/com/google/protobuf/WireFormat.java?r=349
Looks like the thing I need for java.
Thanks
> -ilia
>
--
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.