X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=pb_decode.h;h=2be920506725119a5d5b1c8cc746e47922423c34;hb=dcab39a41c0a403db38860c22426075e6ae9f25d;hp=ad45efbf0d7e47005c17bbe86a2394ef699de657;hpb=0fb5e5e068326b23493952619d7efb640cb37377;p=apps%2Fagl-service-can-low-level.git diff --git a/pb_decode.h b/pb_decode.h index ad45efbf..2be92050 100644 --- a/pb_decode.h +++ b/pb_decode.h @@ -19,12 +19,10 @@ * Rules for callback: * 1) Return false on IO errors. This will cause decoding to abort. * - * 2) If buf is NULL, read but don't store bytes ("skip input"). - * - * 3) You can use state to store your own data (e.g. buffer pointer), + * 2) You can use state to store your own data (e.g. buffer pointer), * and rely on pb_read to verify that no-body reads past bytes_left. * - * 4) Your callback may be used with substreams, in which case bytes_left + * 3) Your callback may be used with substreams, in which case bytes_left * is different than from the main stream. Don't use bytes_left to compute * any pointers. */ @@ -48,6 +46,12 @@ bool pb_read(pb_istream_t *stream, uint8_t *buf, size_t count); */ bool pb_decode(pb_istream_t *stream, const pb_field_t fields[], void *dest_struct); +/* Same as pb_decode, except does not initialize the destination structure + * to default values. This is slightly faster if you need no default values + * and just do memset(struct, 0, sizeof(struct)) yourself. + */ +bool pb_decode_noinit(pb_istream_t *stream, const pb_field_t fields[], void *dest_struct); + /* --- Helper functions --- * You may want to use these from your caller or callbacks. */