From 51d4e295a4d8e55facf0e95502cde75d488fd511 Mon Sep 17 00:00:00 2001 From: Joshua Haberman Date: Fri, 12 Aug 2011 15:32:53 -0700 Subject: Python: fleshed out accessors. --- upb/bytestream.h | 6 +++++- upb/msg.h | 4 ++++ 2 files changed, 9 insertions(+), 1 deletion(-) (limited to 'upb') diff --git a/upb/bytestream.h b/upb/bytestream.h index 9b6f5cb..cff177b 100644 --- a/upb/bytestream.h +++ b/upb/bytestream.h @@ -138,6 +138,10 @@ typedef struct _upb_strref { // string. char *upb_strref_dup(struct _upb_strref *r); +INLINE void upb_strref_read(struct _upb_strref *r, char *buf) { + upb_bytesrc_read(r->bytesrc, r->stream_offset, r->len, buf); +} + /* upb_bytesink ***************************************************************/ @@ -278,7 +282,7 @@ void upb_stringsink_reset(upb_stringsink *s, char *str, size_t size); const char *upb_stringsink_release(upb_stringsink *s, size_t *len); // Returns the upb_bytesink* for this stringsrc. Invalidated by reset above. -upb_bytesink *upb_stringsink_bytesink(void); +upb_bytesink *upb_stringsink_bytesink(upb_stringsink *s); #ifdef __cplusplus } /* extern "C" */ diff --git a/upb/msg.h b/upb/msg.h index 20a5cfe..7ad97d0 100644 --- a/upb/msg.h +++ b/upb/msg.h @@ -180,6 +180,8 @@ void *upb_stdmsg_new(upb_msgdef *md); // Recursively frees any strings or submessages that the message refers to. void upb_stdmsg_free(void *m, upb_msgdef *md); +void upb_stdmsg_sethas(void *_m, upb_value fval); + // "hasbit" must be <= UPB_MAX_FIELDS. If it is <0, this field has no hasbit. upb_value upb_stdmsg_packfval(int16_t hasbit, uint16_t value_offset); upb_value upb_stdmsg_packfval_subm(int16_t hasbit, uint16_t value_offset, @@ -208,6 +210,8 @@ typedef struct { uint32_t size; // Number of elements allocated. } upb_stdarray; +void *upb_stdarray_append(upb_stdarray *a, size_t type_size); + upb_flow_t upb_stdmsg_setint64_r(void *c, upb_value fval, upb_value val); upb_flow_t upb_stdmsg_setint32_r(void *c, upb_value fval, upb_value val); upb_flow_t upb_stdmsg_setuint64_r(void *c, upb_value fval, upb_value val); -- cgit v1.2.3