py: Change stream protocol API: fns return uint; is_text for text.

This commit is contained in:
Damien George
2014-07-27 22:38:58 +01:00
parent 05c255f039
commit adf0f2ae1a
7 changed files with 45 additions and 41 deletions

View File

@@ -228,13 +228,14 @@ bool mp_get_buffer(mp_obj_t obj, mp_buffer_info_t *bufinfo, int flags);
void mp_get_buffer_raise(mp_obj_t obj, mp_buffer_info_t *bufinfo, int flags);
// Stream protocol
#define MP_STREAM_ERROR (-1)
typedef struct _mp_stream_p_t {
// On error, functions should return -1 and fill in *errcode (values are
// implementation-dependent, but will be exposed to user, e.g. via exception).
mp_int_t (*read)(mp_obj_t obj, void *buf, mp_uint_t size, int *errcode);
mp_int_t (*write)(mp_obj_t obj, const void *buf, mp_uint_t size, int *errcode);
// On error, functions should return MP_STREAM_ERROR and fill in *errcode (values
// are implementation-dependent, but will be exposed to user, e.g. via exception).
mp_uint_t (*read)(mp_obj_t obj, void *buf, mp_uint_t size, int *errcode);
mp_uint_t (*write)(mp_obj_t obj, const void *buf, mp_uint_t size, int *errcode);
// add seek() ?
int is_bytes : 1;
int is_text : 1; // default is bytes, set this for text stream
} mp_stream_p_t;
struct _mp_obj_type_t {