diff options
author | Joshua Haberman <jhaberman@gmail.com> | 2017-09-25 18:00:12 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-09-25 18:00:12 -0700 |
commit | bcb62b7fbfb0c959f7d3671b40c1b7efbb3a4156 (patch) | |
tree | 85c6e64d44beb2c970728290c7f88d87c736642e /upb/handlers.h | |
parent | ae30b4a816a57a8101ce187245edc3050d515c06 (diff) | |
parent | 0a9681874ee9ec1e3104b4bdb8e6b2396561ccb6 (diff) |
Merge pull request #92 from TeBoring/unknown
Add new "unknown field" handler.
Diffstat (limited to 'upb/handlers.h')
-rw-r--r-- | upb/handlers.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/upb/handlers.h b/upb/handlers.h index 54a3c1c..993af13 100644 --- a/upb/handlers.h +++ b/upb/handlers.h @@ -104,7 +104,8 @@ UPB_END_EXTERN_C /* Static selectors for upb::Handlers. */ #define UPB_STARTMSG_SELECTOR 0 #define UPB_ENDMSG_SELECTOR 1 -#define UPB_STATIC_SELECTOR_COUNT 2 +#define UPB_UNKNOWN_SELECTOR 2 +#define UPB_STATIC_SELECTOR_COUNT 3 /* Static selectors for upb::BytesHandler. */ #define UPB_STARTSTR_SELECTOR 0 @@ -633,6 +634,8 @@ UPB_BEGIN_EXTERN_C /* Native C API. */ /* Handler function typedefs. */ +typedef bool upb_unknown_handlerfunc(void *c, const void *hd, const char *buf, + size_t n); typedef bool upb_startmsg_handlerfunc(void *c, const void*); typedef bool upb_endmsg_handlerfunc(void *c, const void *, upb_status *status); typedef void* upb_startfield_handlerfunc(void *c, const void *hd); @@ -686,6 +689,8 @@ const upb_status *upb_handlers_status(upb_handlers *h); void upb_handlers_clearerr(upb_handlers *h); const upb_msgdef *upb_handlers_msgdef(const upb_handlers *h); bool upb_handlers_addcleanup(upb_handlers *h, void *p, upb_handlerfree *hfree); +bool upb_handlers_setunknown(upb_handlers *h, upb_unknown_handlerfunc *func, + upb_handlerattr *attr); bool upb_handlers_setstartmsg(upb_handlers *h, upb_startmsg_handlerfunc *func, upb_handlerattr *attr); |