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
 |