1 #ifndef COMMON_STREAMS_H_INCLUDED
2 #define COMMON_STREAMS_H_INCLUDED
7 typedef struct Reader Reader
;
8 typedef struct Writer Writer
;
9 typedef struct Handle Handle
;
12 long (*getpos
)(Reader
*r
);
13 void (*setpos
)(Reader
*r
, long pos
);
14 void (*read
)(Reader
*r
, void *data
, size_t size
, size_t n
);
18 long (*getpos
)(Writer
*w
);
19 void (*setpos
)(Writer
*w
, long pos
);
20 void (*write
)(Writer
*w
, const void *data
, size_t size
, size_t n
);
23 void stream_read (void *data
, size_t size
, size_t n
, Reader
*f
);
24 int8_t stream_read8 (Reader
*f
);
25 int16_t stream_read16 (Reader
*f
);
26 int32_t stream_read32 (Reader
*f
);
28 void stream_write (const void *data
, size_t size
, size_t n
, Writer
*w
);
29 void stream_write8 (int8_t x
, Writer
*w
);
30 void stream_write16 (int16_t x
, Writer
*w
);
31 void stream_write32 (int32_t x
, Writer
*w
);
33 #endif /* COMMON_STREAMS_H_INCLUDED */