117 lines
2.8 KiB
C
Executable File
117 lines
2.8 KiB
C
Executable File
/* r4reindex.h (c)Copyright Sequiter Software Inc., 1988-1996. All rights reserved. */
|
|
|
|
#ifndef S4CLIENT
|
|
typedef struct
|
|
{
|
|
/* must be before nKeys */
|
|
#ifdef S4CLIPPER
|
|
short *blockIndex ;
|
|
char *data;
|
|
#endif
|
|
|
|
#ifdef S4FOX
|
|
B4STD_HEADER header ;
|
|
#else
|
|
short nKeys ;
|
|
#endif
|
|
|
|
#ifdef S4MDX
|
|
char dummy[6] ;
|
|
char info[2] ;
|
|
#endif
|
|
|
|
#ifdef S4NDX
|
|
char dummy[2] ;
|
|
char info;
|
|
#endif
|
|
} R4BLOCK_DATA ;
|
|
|
|
typedef struct /* R4REINDEX For 'i4reindex' */
|
|
{
|
|
#ifndef N4OTHER
|
|
short nTags ;
|
|
INDEX4FILE *indexFile ;
|
|
#endif
|
|
|
|
TAG4FILE *tag ;
|
|
|
|
#ifdef S4FOX
|
|
char *curPos ;
|
|
B4NODE_HEADER nodeHdr ;
|
|
int nBlocksUsed ;
|
|
#else
|
|
#ifdef S4CLIPPER
|
|
B4KEY_DATA *stranded ;
|
|
int keysHalf ;
|
|
int lastblockInc ; /* How much to increment 'lastblock' by */
|
|
int nBlocksUsed ;
|
|
#else
|
|
int lastblockInc ; /* How much to increment 'lastblock' by */
|
|
unsigned blocklen ;
|
|
#endif
|
|
#endif
|
|
|
|
unsigned int grouplen ; /* Entire key length */
|
|
int valuelen ; /* Length of sorted portion of key */
|
|
int keysmax ;
|
|
long lastblock ; /* The block last written to */
|
|
long keyCount ;
|
|
|
|
SORT4 sort ;
|
|
|
|
FILE4SEQ_WRITE seqwrite ;
|
|
char *buffer ; /* Buffer for 'seqwrite' and 'seqread' */
|
|
unsigned int bufferLen ;
|
|
|
|
R4BLOCK_DATA *startBlock ;
|
|
int nBlocks ;
|
|
int minKeysmax; /* To calculate the number of blocks */
|
|
|
|
DATA4 *data ;
|
|
DATA4FILE *dataFile ;
|
|
CODE4 *codeBase ;
|
|
} R4REINDEX ;
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
void r4reindexFree( R4REINDEX * ) ;
|
|
|
|
#ifdef N4OTHER
|
|
int r4reindexTagHeadersCalc( R4REINDEX *, TAG4FILE * ) ;
|
|
int r4reindexSupplyKeys( R4REINDEX *, TAG4FILE * ) ;
|
|
int r4reindexWriteKeys( R4REINDEX *, TAG4FILE *, short int ) ;
|
|
int r4reindexTagHeadersWrite( R4REINDEX *, TAG4FILE * ) ;
|
|
int r4reindexInit( R4REINDEX *, TAG4 * ) ;
|
|
#else
|
|
int r4reindexTagHeadersCalc( R4REINDEX * ) ;
|
|
int r4reindexSupplyKeys( R4REINDEX * ) ;
|
|
int r4reindexWriteKeys( R4REINDEX *, short int ) ;
|
|
int r4reindexTagHeadersWrite( R4REINDEX * ) ;
|
|
int r4reindexInit( R4REINDEX *, INDEX4 *, INDEX4FILE * ) ;
|
|
#endif
|
|
int r4reindexBlocksAlloc( R4REINDEX * ) ;
|
|
TAG4FILE *r4reindexFindITag( R4REINDEX *, const int ) ;
|
|
|
|
/* Write key functions */
|
|
#ifdef S4FOX
|
|
int r4reindexAdd( R4REINDEX *, const long, const unsigned char *, const char *, int * ) ;
|
|
int r4reindexFinish( R4REINDEX *, char * ) ;
|
|
int r4reindexTodisk( R4REINDEX *, const char * ) ;
|
|
#else
|
|
int r4reindexAdd( R4REINDEX *, const long, const unsigned char * ) ;
|
|
int r4reindexFinish( R4REINDEX * ) ;
|
|
#ifdef S4CLIPPER
|
|
int r4reindexTodisk( R4REINDEX *, long, const char * ) ;
|
|
#else
|
|
int r4reindexTodisk( R4REINDEX * ) ;
|
|
#endif
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|