5 #define MAX_OUTTABLE_FILES 32
6 /* This structure is used to keep information about
7 combination of classes. count is count of cells already found,
8 classes are classes. Really each of these structures occupies
9 less then sizeof(struct record) bytes, becouse count of files is
10 usially less than 32 */
13 unsigned short int classes[MAX_OUTTABLE_FILES];
15 /* data which outtable functions need to keep between calls */
16 typedef void* FuncData;
18 /* Action which function should take */
20 FuncInit, /* Initialize FuncData */
21 FuncIterate,/* Collect data from given record, return non-zero on failure */
22 FuncResult /* Return computed value */
25 /* Type for all data processing functions */
26 typedef double (*OuttableFunc)(FuncAction action,/* what to do */
27 FuncData data, /* pointer to persistent data */
28 struct record *record, /*record to process */
29 int index); /* number of file in record to cope with */
31 /* Type for record in functuon-table */
34 char name[16]; /* how function is named in command-line */
35 OuttableFunc func; /* actual function to perform operation */
36 int nargs; /* number of file arguments */
37 int datasize; /* How many bytes to allocate for FuncData */
51 extern struct FileInfo openFiles[MAX_OUTTABLE_FILES];
52 extern struct FuncInfo funcTable[];
53 extern EPP* fileinfo[MAX_OUTTABLE_FILES];
54 extern struct FuncItem funcList[MAX_OUTTABLE_FILES];
55 extern double cellArea, zUnit, zOffset;