DEADSOFTWARE

streams: new method: getlen
[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 Stream Stream;
9 struct Stream {
10 long (*getpos)(Stream *rw);
11 void (*setpos)(Stream *rw, long pos);
12 long (*getlen)(Stream *rw);
13 void (*read)(Stream *r, void *data, size_t size, size_t n);
14 void (*write)(Stream *w, const void *data, size_t size, size_t n);
15 };
17 long stream_getpos (Stream *s);
18 void stream_setpos (Stream *s, long pos);
20 long stream_getlen (Stream *s);
22 void stream_read (void *data, size_t size, size_t n, Stream *r);
23 int8_t stream_read8 (Stream *r);
24 int16_t stream_read16 (Stream *r);
25 int32_t stream_read32 (Stream *r);
27 void stream_write (const void *data, size_t size, size_t n, Stream *w);
28 void stream_write8 (int8_t x, Stream *w);
29 void stream_write16 (int16_t x, Stream *w);
30 void stream_write32 (int32_t x, Stream *w);
32 #endif /* COMMON_STREAMS_H_INCLUDED */