X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fcommon%2Fstreams.h;h=e0a9dd8178d79b25454f70356b5c047c8384040c;hb=cf509314ff0bc57488cbeeec0b1c98d88fb027a4;hp=50136410f409e9e67c4d351efdd4684a2c052b3c;hpb=e862eacf7e076495bb1859c5e10dc426761dbde0;p=flatwaifu.git diff --git a/src/common/streams.h b/src/common/streams.h index 5013641..e0a9dd8 100644 --- a/src/common/streams.h +++ b/src/common/streams.h @@ -4,27 +4,29 @@ #include #include -typedef struct Reader Reader; -typedef struct Writer Writer; +typedef struct Stream Stream; -struct Reader { - void (*setpos)(Reader *r, int pos); - void (*read)(Reader *r, void *data, size_t size, size_t n); +struct Stream { + long (*getpos)(Stream *rw); + void (*setpos)(Stream *rw, long pos); + long (*getlen)(Stream *rw); + void (*read)(Stream *r, void *data, size_t size, size_t n); + void (*write)(Stream *w, const void *data, size_t size, size_t n); }; -struct Writer { - void (*setpos)(Writer *w, int pos); - void (*write)(Writer *w, const void *data, size_t size, size_t n); -}; +long stream_getpos (Stream *s); +void stream_setpos (Stream *s, long pos); + +long stream_getlen (Stream *s); -void stream_read (void *data, size_t size, size_t n, Reader *f); -int8_t stream_read8 (Reader *f); -int16_t stream_read16 (Reader *f); -int32_t stream_read32 (Reader *f); +void stream_read (void *data, size_t size, size_t n, Stream *r); +int8_t stream_read8 (Stream *r); +int16_t stream_read16 (Stream *r); +int32_t stream_read32 (Stream *r); -void stream_write (const void *data, size_t size, size_t n, Writer *w); -void stream_write8 (int8_t x, Writer *w); -void stream_write16 (int16_t x, Writer *w); -void stream_write32 (int32_t x, Writer *w); +void stream_write (const void *data, size_t size, size_t n, Stream *w); +void stream_write8 (int8_t x, Stream *w); +void stream_write16 (int16_t x, Stream *w); +void stream_write32 (int32_t x, Stream *w); #endif /* COMMON_STREAMS_H_INCLUDED */ \ No newline at end of file