home *** CD-ROM | disk | FTP | other *** search
- /*------------------------------------------------------------------------
- FILE IDX.H
- ------------------------------------------------------------------------*/
- #ifndef _IDX
- #define _IDX
-
- #include <stdlib.h>
- #include <string.h>
- #include <fcntl.h>
- #include <sys\stat.h>
- #include <io.h>
- #include <errno.h>
-
- #ifndef _MSC
- #include <mem.h>
- #include <alloc.h>
- #else
- #include <memory.h>
- #include <malloc.h>
- #endif
-
- #define IDX_ERR_NOERROR 0
- #define IDX_ERR_MAXFILES 1
- #define IDX_ERR_CREATERROR 2
- #define IDX_ERR_WRITERROR 3
- #define IDX_ERR_OPENERROR 4
- #define IDX_ERR_READERROR 5
- #define IDX_ERR_CLOSERROR 6
- #define IDX_ERR_MAXINDEXES 7
- #define IDX_ERR_DUPVALUE 8
- #define IDX_ERR_KEYNOTFOUND 9
- #define IDX_ERR_LASTKEY 10
- #define IDX_ERR_INVHDL 11
- #define IDX_ERR_MEM 12
-
- #define NODESIZE 512
- #define MAXIDX 16
- #define MAXFILES 5
-
- #ifndef ERROR
- #define ERROR -1
- #endif
-
- #ifndef OK
- #define OK 0
- #endif
-
- #ifndef FALSE
- #define FALSE 0
- #endif
-
- #ifndef TRUE
- #define TRUE !FALSE
- #endif
-
- typedef struct {
- int idxerr;
- int syserr;
- } _idxerr;
-
- extern _idxerr idxerr;
-
- typedef struct _IdxInfo {
- long rootnode;
- short keylength;
- short start;
- short max;
- long leftmost;
- long rightmost;
- long currnode;
- long currkno;
- short unique;
- short filler;
- } IDXINFO;
-
- typedef struct _IdxFile {
- long rlsdnode_idx;
- long endnode_idx;
- short reclength;
- short reccount;
- long filler1;
- long endnode_dat;
- long filler3;
- long serial;
- IDXINFO IdxInfo[MAXIDX];
- long filler2;
- short fhdl; /* file handle */
- } IDXFILE;
-
- /*------------------ prototypes --------------*/
-
- extern int IdxRecLen( int fptr );
- extern int IdxCreate( char * filename, int reclength);
- extern int IdxOpen( char * filename);
- extern int IdxClose( int fhdl );
- extern int IdxAddIdx( int fhdl, int start, int len, int unique );
- extern int IdxDelIdx( int fhdl, int idxnum );
- extern int IdxGetInfo( int fptr, int idxnum, IDXINFO *IdxInfo );
- extern int IdxSetInfo( int fptr, int idxnum, IDXINFO *IdxInfo );
- extern int IdxGetDict( int fptr, IDXFILE *IdxFile );
- extern int IdxSetDict( int fptr, IDXFILE *IdxFile );
- extern int IdxAddKey( int fptr, int idx, char *key, long d_rptr );
- extern int IdxDelKey( int fptr, int idx, char *key, long d_rptr);
- extern long IdxFirstKey( int fptr, int idx, int length, char *key);
- extern long IdxFetchFirst( int fptr, int idx, char *key );
- extern long IdxFetchLast(int fptr, int idx, char *key );
- extern long IdxFetchNext( int fptr, int idx, char *key );
- extern long IdxFetchPrev( int fptr, int idx, char *key );
- extern long IdxCurrKey( int fptr, int idx, char *key );
- extern void IdxInitFetch( int fptr, int idx );
- extern long IdxNextDataRec( int fptr );
-
- #endif