DEADSOFTWARE

8952e24dac7ce5717329534e0860998f6419f07a
[flatwaifu.git] / src / common / streams.h
1 #ifndef COMMON_STREAMS_H_INCLUDED
2 #define COMMON_STREAMS_H_INCLUDED
4 #include <stddef.h>
5 #include <stdint.h>
7 typedef struct Reader Reader;
8 typedef struct Writer Writer;
10 struct Reader {
11 long (*getpos)(Reader *r);
12 void (*setpos)(Reader *r, long pos);
13 void (*read)(Reader *r, void *data, size_t size, size_t n);
14 };
16 struct Writer {
17 long (*getpos)(Writer *w);
18 void (*setpos)(Writer *w, long pos);
19 void (*write)(Writer *w, const void *data, size_t size, size_t n);
20 };
22 void stream_read (void *data, size_t size, size_t n, Reader *f);
23 int8_t stream_read8 (Reader *f);
24 int16_t stream_read16 (Reader *f);
25 int32_t stream_read32 (Reader *f);
27 void stream_write (const void *data, size_t size, size_t n, Writer *w);
28 void stream_write8 (int8_t x, Writer *w);
29 void stream_write16 (int16_t x, Writer *w);
30 void stream_write32 (int32_t x, Writer *w);
32 #endif /* COMMON_STREAMS_H_INCLUDED */