[BACK]Return to file2.h CVS log [TXT][DIR] Up to [local] / OpenXM / src / kan96xx / plugin

File: [local] / OpenXM / src / kan96xx / plugin / file2.h (download)

Revision 1.4, Sun Nov 23 13:16:30 2003 UTC (20 years, 6 months ago) by takayama
Branch: MAIN
Changes since 1.3: +4 -3 lines

file2 is changed so that it can be used for input-output stream
associated to a string.

/* $OpenXM: OpenXM/src/kan96xx/plugin/file2.h,v 1.4 2003/11/23 13:16:30 takayama Exp $ */
/* file2.h */

#define MAGIC2 "Buffered IO by FILE2"
/*  ob.tag == Sfile, ob.lc.str == MAGIC2, ob.lc.voidp = (FILE2 *)fp2; */
#define FILE2BSIZE 1024

typedef struct FILE2 {
  int fd;
  int initialized;
  unsigned char *readBuf;
  unsigned char *writeBuf;
  int readpos;
  int readsize;
  int writepos;
  int limit;
  int watch;
  FILE *watchFile;
  void *mathcapList; /* pointer to struct object */
  FILE *log_incomming;
  FILE *log_outgoing;
} FILE2 ;

FILE2 *fp2open(int fd);
int fp2fflush(FILE2 *fp);
int fp2fclose(FILE2 *fp);
char *fp2fcloseInString(FILE2 *fp2, int *sizep);
int fp2fputc(int c,FILE2 *fp);
int fp2fgetc(FILE2 *fp);
int fp2select(FILE2 *fp2, int t);
int fp2dumpBuffer(FILE2 *fp);
int fp2clearReadBuf(FILE2 *fp);
int fp2write(FILE2 *fp,char *data,int size);
int fp2watch(FILE2 *fp,FILE *log);
int fp2stopWatch(FILE2 *fp);
int fp2log(FILE2 *fp,FILE *incomming,FILE *outgoing);
int fp2stopLog(FILE2 *fp);