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
 |