diff th_ioctx.h @ 67:d94af48cef7b

Added new module, a simple I/O context helper.
author Matti Hamalainen <ccr@tnsp.org>
date Thu, 15 Nov 2012 19:21:14 +0200
parents
children 43df05a632cb
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/th_ioctx.h	Thu Nov 15 19:21:14 2012 +0200
@@ -0,0 +1,45 @@
+/*
+ * Standard I/O context helpers
+ * Programmed and designed by Matti 'ccr' Hamalainen
+ * (C) Copyright 2012 Tecnic Software productions (TNSP)
+ *
+ * Please read file 'COPYING' for information on license and distribution.
+ */
+#ifndef TH_IOCTX_H
+#define TH_IOCTX_H
+
+#include "th_util.h"
+#include <stdio.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Simple STD I/O contexts
+ */
+typedef struct _th_ioctx_t
+{
+    BOOL allocated;
+    char *filename;
+    FILE *fp;
+    size_t line;
+
+    void (*error)(struct _th_ioctx_t *, const int, const char *msg);
+    void (*msg)(struct _th_ioctx_t *, const char *msg);
+} th_ioctx_t;
+
+
+BOOL         th_ioctx_init(th_ioctx_t *ctx, const char *filename);
+BOOL         th_ioctx_open(th_ioctx_t *ctx, const char *filename, const char *mode);
+void         th_ioctx_close(th_ioctx_t *ctx);
+void         th_ioctx_error(th_ioctx_t *ctx, const int err, const char *fmt, ...);
+
+th_ioctx_t * th_ioctx_new(const char *filename);
+void         th_ioctx_free(th_ioctx_t *ctx);
+
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* TH_IOCTX_H */