112 lines
2.9 KiB
C
112 lines
2.9 KiB
C
|
/* r4reindex.h (c)Copyright Sequiter Software Inc., 1990-1994. All rights reserved. */
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
/* must be before n_keys */
|
||
|
#ifdef S4CLIPPER
|
||
|
short S4PTR *block_index ;
|
||
|
char S4PTR *data;
|
||
|
#endif
|
||
|
|
||
|
#ifdef S4FOX
|
||
|
B4STD_HEADER header ;
|
||
|
#else
|
||
|
short n_keys ;
|
||
|
#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
|
||
|
TAG4 S4PTR *tag ;
|
||
|
INDEX4 S4PTR *index ;
|
||
|
int n_tags ;
|
||
|
#endif
|
||
|
|
||
|
#ifdef S4FOX
|
||
|
char S4PTR *cur_pos ;
|
||
|
B4NODE_HEADER node_hdr ;
|
||
|
int n_blocks_used ;
|
||
|
#else
|
||
|
#ifdef S4CLIPPER
|
||
|
B4KEY_DATA S4PTR *stranded ;
|
||
|
int keys_half ;
|
||
|
int lastblock_inc ; /* How much to increment 'lastblock' by */
|
||
|
int n_blocks_used ;
|
||
|
#else
|
||
|
int lastblock_inc ; /* How much to increment 'lastblock' by */
|
||
|
unsigned blocklen ;
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
int grouplen ; /* Entire key length */
|
||
|
int valuelen ; /* Length of sorted portion of key */
|
||
|
int keysmax ;
|
||
|
long lastblock ; /* The block last written to */
|
||
|
long key_count ;
|
||
|
|
||
|
SORT4 sort ;
|
||
|
|
||
|
FILE4SEQ_WRITE seqwrite ;
|
||
|
char S4PTR *buffer ; /* Buffer for 'seqwrite' and 'seqread' */
|
||
|
int buffer_len ;
|
||
|
|
||
|
R4BLOCK_DATA S4PTR *start_block ;
|
||
|
int n_blocks ;
|
||
|
int min_keysmax; /* To calculate the number of blocks */
|
||
|
|
||
|
DATA4 S4PTR *data ;
|
||
|
CODE4 S4PTR *code_base ;
|
||
|
} R4REINDEX ;
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
void r4reindex_free( R4REINDEX S4PTR * ) ;
|
||
|
|
||
|
#ifdef N4OTHER
|
||
|
int r4reindex_tag_headers_calc( R4REINDEX S4PTR *, TAG4 S4PTR * ) ;
|
||
|
int r4reindex_supply_keys( R4REINDEX S4PTR *, TAG4 S4PTR * ) ;
|
||
|
int r4reindex_write_keys( R4REINDEX S4PTR *, TAG4 S4PTR * ) ;
|
||
|
int r4reindex_tag_headers_write( R4REINDEX S4PTR *, TAG4 S4PTR * ) ;
|
||
|
int r4reindex_init( R4REINDEX S4PTR *, TAG4 S4PTR * ) ;
|
||
|
#else
|
||
|
int r4reindex_tag_headers_calc( R4REINDEX S4PTR * ) ;
|
||
|
int r4reindex_supply_keys( R4REINDEX S4PTR * ) ;
|
||
|
int r4reindex_write_keys( R4REINDEX S4PTR * ) ;
|
||
|
int r4reindex_tag_headers_write( R4REINDEX S4PTR * ) ;
|
||
|
int r4reindex_init( R4REINDEX S4PTR *, INDEX4 S4PTR * ) ;
|
||
|
#endif
|
||
|
int r4reindex_blocks_alloc( R4REINDEX S4PTR * ) ;
|
||
|
TAG4 S4PTR *r4reindex_find_i_tag( R4REINDEX S4PTR *, int ) ;
|
||
|
|
||
|
/* Write key functions */
|
||
|
#ifdef S4FOX
|
||
|
int r4reindex_add( R4REINDEX S4PTR *, long, char S4PTR *, char S4PTR *, int S4PTR * ) ;
|
||
|
int r4reindex_finish( R4REINDEX S4PTR *, char S4PTR * ) ;
|
||
|
int r4reindex_todisk( R4REINDEX S4PTR *, char S4PTR * ) ;
|
||
|
#else
|
||
|
int r4reindex_add( R4REINDEX S4PTR *, long, char S4PTR * ) ;
|
||
|
int r4reindex_finish( R4REINDEX S4PTR * ) ;
|
||
|
#ifdef S4CLIPPER
|
||
|
int r4reindex_todisk( R4REINDEX S4PTR *, long, char S4PTR * ) ;
|
||
|
#else
|
||
|
int r4reindex_todisk( R4REINDEX S4PTR * ) ;
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|