00001 #ifndef GD_IO_H
00002 #define GD_IO_H 1
00003
00004 #include <stdio.h>
00005
00006 typedef struct gdIOCtx {
00007 int (*getC)(struct gdIOCtx*);
00008 int (*getBuf)(struct gdIOCtx*, void*, int);
00009
00010 void (*putC)(struct gdIOCtx*, int);
00011 int (*putBuf)(struct gdIOCtx*, const void*, int);
00012
00013 int (*seek)(struct gdIOCtx*, const int);
00014 long (*tell)(struct gdIOCtx*);
00015
00016 void (*free)(struct gdIOCtx*);
00017
00018 } gdIOCtx;
00019
00020 typedef struct gdIOCtx *gdIOCtxPtr;
00021
00022 void Putword(int w, gdIOCtx *ctx);
00023 void Putchar(int c, gdIOCtx *ctx);
00024
00025 void gdPutC(const unsigned char c, gdIOCtx *ctx);
00026 int gdPutBuf(const void *, int, gdIOCtx*);
00027 void gdPutWord(int w, gdIOCtx *ctx);
00028 void gdPutInt(int w, gdIOCtx *ctx);
00029
00030 int gdGetC(gdIOCtx *ctx);
00031 int gdGetBuf(void *, int, gdIOCtx*);
00032 int gdGetByte(int *result, gdIOCtx *ctx);
00033 int gdGetWord(int *result, gdIOCtx *ctx);
00034 int gdGetInt(int *result, gdIOCtx *ctx);
00035
00036 int gdSeek(gdIOCtx *ctx, const int);
00037 long gdTell(gdIOCtx *ctx);
00038
00039 #endif