diff --git a/core/include/blue/core/stream.h b/core/include/blue/core/stream.h index 634f13d..a77f80b 100644 --- a/core/include/blue/core/stream.h +++ b/core/include/blue/core/stream.h @@ -42,8 +42,8 @@ B_TYPE_CLASS_DECLARATION_BEGIN(b_stream) b_status (*s_seek)(b_stream *, long long, b_stream_seek_origin); b_status (*s_tell)(const b_stream *, size_t *); b_status (*s_getc)(b_stream *, b_wchar *); - b_status (*s_read)(b_stream *, unsigned char *, size_t, size_t *); - b_status (*s_write)(b_stream *, const unsigned char *, size_t, size_t *); + b_status (*s_read)(b_stream *, void *, size_t, size_t *); + b_status (*s_write)(b_stream *, const void *, size_t, size_t *); b_status (*s_reserve)(b_stream *, size_t); B_TYPE_CLASS_DECLARATION_END(b_stream) diff --git a/core/stream.c b/core/stream.c index 44d77d0..6cb99fd 100644 --- a/core/stream.c +++ b/core/stream.c @@ -70,37 +70,13 @@ static b_stream *stdio[] = { [IDX_STDIN] = NULL, [IDX_STDOUT] = NULL, [IDX_STDERR] = NULL, -#if 0 - [IDX_STDIN] = { - .s_mode = B_STREAM_READ, - .s_read = stdio_read, - .s_seek = stdio_seek, - .s_tell = stdio_tell, - .s_ptr0 = NULL, /* set to stdin (stdio.h) at runtime */ - }, - [IDX_STDOUT] = { - .s_mode = B_STREAM_WRITE, - .s_write = stdio_write, - .s_seek = stdio_seek, - .s_tell = stdio_tell, - .s_ptr0 = NULL, /* set to stdout (stdio.h) at runtime */ - }, - [IDX_STDERR] = { - .s_mode = B_STREAM_WRITE, - .s_write = stdio_write, - .s_seek = stdio_seek, - .s_tell = stdio_tell, - .s_ptr0 = NULL, /* set to stderr (stdio.h) at runtime */ - }, -#endif }; /*** PRIVATE FUNCTIONS ********************************************************/ b_type b_stdio_stream_get_type(void); -static enum b_status stdio_read(b_stream *, unsigned char *, size_t, size_t *); -static enum b_status stdio_write( - b_stream *, const unsigned char *, size_t, size_t *); +static enum b_status stdio_read(b_stream *, void *, size_t, size_t *); +static enum b_status stdio_write(b_stream *, const void *, size_t, size_t *); static enum b_status stdio_seek(b_stream *, long long, b_stream_seek_origin); static enum b_status stdio_tell(const b_stream *, size_t *); @@ -661,22 +637,7 @@ b_stream_buffer *b_stream_buffer_create(void *buf, size_t len) b_stream *b_stream_open_fp(FILE *fp) { - b_stream *stream = b_object_create(B_TYPE_STREAM); - if (!stream) { - return NULL; - } - - struct stream_data p; - stream_get_data(stream, &p); - - p.s_cfg->s_mode = B_STREAM_READ | B_STREAM_WRITE; - p.s_private->s_ptr0 = fp; - p.s_ops->s_read = stdio_read; - p.s_ops->s_write = stdio_write; - p.s_ops->s_seek = stdio_seek; - p.s_ops->s_tell = stdio_tell; - - return stream; + return init_stdio_stream(fp, B_STREAM_READ | B_STREAM_WRITE); } enum b_status b_stream_reserve(b_stream *stream, size_t len) @@ -869,7 +830,7 @@ static void stdio_stream_fini(b_object *obj, void *priv) } static enum b_status stdio_read( - b_stream *stream, unsigned char *out, size_t max, size_t *nr_read) + b_stream *stream, void *out, size_t max, size_t *nr_read) { struct b_stdio_stream_p *p = b_object_get_private(stream, B_TYPE_STDIO_STREAM); @@ -887,7 +848,7 @@ static enum b_status stdio_read( } static enum b_status stdio_write( - b_stream *stream, const unsigned char *data, size_t count, size_t *nr_written) + b_stream *stream, const void *data, size_t count, size_t *nr_written) { struct b_stdio_stream_p *p = b_object_get_private(stream, B_TYPE_STDIO_STREAM); diff --git a/core/stringstream.c b/core/stringstream.c index a535da1..1c0297f 100644 --- a/core/stringstream.c +++ b/core/stringstream.c @@ -194,7 +194,7 @@ static void stringstream_fini(b_object *obj, void *priv) } enum b_status stream_write( - b_stream *stream, const unsigned char *buf, size_t count, size_t *nr_written) + b_stream *stream, const void *buf, size_t count, size_t *nr_written) { struct b_stringstream_p *s = b_object_get_private(stream, B_TYPE_STRINGSTREAM);