#include <MYLIB:ISAMLibPragmas.h>
#include <MYLIB:ISAMErrDefs.h>
#include <exec/types.h>

#define OK          (long)  0
#define ALLFILES    (UWORD) 0


/************** PROTOTYPES FOR USER-LINKED ISAM FUNCTIONS *******************/

long ShutDownISAM ( void );

long DisConnectISAM ( int );

long CreateISAMFile ( char * );

long ReIndexISAMFile ( char *, BOOL );
 
long DeleteISAMFile ( char * );

long OpenISAMFile ( char *, BOOL, char, BOOL, UWORD * );
 
long ReadUniqueISAMRecord ( UWORD, UWORD, void *, BOOL, char, ULONG *, void * );
 
long SetUpISAMIterationRange ( UWORD, UWORD, UBYTE, void *, void * );
 
long SetUpISAMIterationKey ( UWORD, UWORD, void * );

long SetUpISAMIterationPrefix ( UWORD, UWORD, void *, UWORD );
 
long ReadNextISAMRecord ( UWORD, UWORD, BOOL, char, ULONG *, void * );
 
long ReadNextISAMKey ( UWORD, UWORD, ULONG *, void * );

long CountISAMRecords ( UWORD, UWORD, ULONG, ULONG * );

long DeleteISAMRecords ( UWORD, UWORD, ULONG * );

long ReadISAMRecord ( UWORD, ULONG, BOOL, char, void * );
 
long StoreISAMRecord ( UWORD, void *, BOOL, char, ULONG * );

long ModifyISAMRecord ( UWORD, ULONG, void * );

long DeleteISAMRecord ( UWORD, ULONG );

long CloseISAMFile ( UWORD );

long LockISAMFile ( UWORD, char );

long UnLockISAMFile ( UWORD );

long LockISAMRecord ( UWORD, ULONG, char );

long UnLockISAMRecord ( UWORD, ULONG );

long UnLockAllISAMRecords ( UWORD );


/********************** Other ISAM-related Functions ********************/

char *ISAMWhy ( long );

long ReportISAMStatus ( void );
