Mercurial > hg > th-libs
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 */