/* idx.h * * simple index manager for UUPC news * * Author: Kai Uwe Rommel * Created: Sun Aug 15 1993 */ /* $Id: idx.h 1.2 1994/03/20 23:37:12 rommel Exp $ */ /* $Log: idx.h $ * Revision 1.2 1994/03/20 23:37:12 rommel * Correct 16/32 bit compiler differences * * Revision 1.1 1993/09/05 10:56:49 rommel * Initial revision * */ #ifndef _IDX_H #define _IDX_H #define IDX_MAGIC 4712 #define IDX_MAXKEY 80 #define IDX_MINITEM 10 #define IDX_MAXITEM (IDX_MINITEM * 2) #define IDX_MAXSTACK 20 typedef struct { char key[IDX_MAXKEY]; long offset; short size; long child; } ITEM; typedef struct { short items; ITEM item[IDX_MAXITEM]; long child_0; } PAGE; typedef struct { int magic; int file; long size; PAGE page; long page_number; int page_dirty; long page_stack[IDX_MAXSTACK]; int page_stacksize; } IDX; extern IDX *idx_init(int file); extern void idx_exit(IDX *idx); extern int idx_addkey(IDX *idx, char *key, long offset, int size); extern int idx_getkey(IDX *idx, char *key, long *offset, int *size); extern int idx_delkey(IDX *idx, char *key, long *offset, int *size); #endif /* _IDX_H */ /* end of idx.h */