DEADSOFTWARE

streams: use single stram object for read and write
[flatwaifu.git] / src / common / streams.h
index d82b51af477658e54029da426619cb8019b9445d..e40427f432716e8c49173205a3277655ae6d8d40 100644 (file)
@@ -4,30 +4,26 @@
 #include <stddef.h>
 #include <stdint.h>
 
-typedef struct Reader Reader;
-typedef struct Writer Writer;
-typedef struct Handle Handle;
+typedef struct Stream Stream;
 
-struct Reader {
-  long (*getpos)(Reader *r);
-  void (*setpos)(Reader *r, long pos);
-  void (*read)(Reader *r, void *data, size_t size, size_t n);
+struct Stream {
+  long (*getpos)(Stream *r);
+  void (*setpos)(Stream *r, long pos);
+  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 {
-  long (*getpos)(Writer *w);
-  void (*setpos)(Writer *w, long 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);
 
-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