34 #define AS_STREAM_END ((void *) 0)
40 struct as_stream_hooks_s;
45 typedef enum as_stream_status_e {
58 typedef struct as_stream_s {
74 const struct as_stream_hooks_s *
hooks;
84 typedef struct as_stream_hooks_s {
120 if ( !stream )
return stream;
122 stream->
free =
false;
124 stream->
hooks = hooks;
141 if ( !stream )
return stream;
145 stream->
hooks = hooks;
161 if ( stream && stream->
free ) {
181 return (stream ? stream->
data : NULL);
209 return stream != NULL && stream->
hooks != NULL && stream->
hooks->read;
239 return stream != NULL && stream->
hooks != NULL && stream->
hooks->write;
void * as_stream_source(const as_stream *stream)
bool as_stream_readable(const as_stream *stream)
as_val * as_stream_read(const as_stream *stream)
bool as_stream_writable(const as_stream *stream)
as_stream_status as_stream_write(const as_stream *stream, as_val *value)
#define as_util_hook(hook, default, object, args...)
void as_stream_destroy(as_stream *stream)
as_stream * as_stream_init(as_stream *stream, void *data, const as_stream_hooks *hooks)
struct as_stream_hooks_s * hooks
as_stream * as_stream_new(void *data, const as_stream_hooks *hooks)