diff options
author | Joshua Haberman <joshua@reverberate.org> | 2011-08-12 15:32:53 -0700 |
---|---|---|
committer | Joshua Haberman <joshua@reverberate.org> | 2011-08-12 15:32:53 -0700 |
commit | 51d4e295a4d8e55facf0e95502cde75d488fd511 (patch) | |
tree | 7fcbe39a56a15afdddbf10e41ca978d0b50e23d1 /upb | |
parent | fe3df2c9bc66ffe5dbc4c9410052be1bc2d7d443 (diff) |
Python: fleshed out accessors.
Diffstat (limited to 'upb')
-rw-r--r-- | upb/bytestream.h | 6 | ||||
-rw-r--r-- | upb/msg.h | 4 |
2 files changed, 9 insertions, 1 deletions
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" */ @@ -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); |