/* Name: stream.h Language: ANSI/ISO C Purpose: An attempt encapsulate an abstract data type (namely a stream) using C. Author: James Blustein Created: 1 January 1996 Last Modified: 30 April 1996 by James Blustein using constant function pointers (thanks to Thad Smith) See also: stream.c */ #include /* Definition of opaque File_t datatype */ typedef FILE * (f_open_func) (const char * proc, const char * fname, const char * mode); typedef bool (f_close_func) (const char * proc, const char * fname, FILE * handle); typedef struct File_t { f_open_func * const open; f_close_func * const close; } File_t; /* Import definition of type File from "stream.c" */ extern File_t Stream; /* end of "stream.h" */