a0f5e0898b
which included commits to RCS files with non-trunk default branches. git-svn-id: svn://10.65.10.50/trunk@976 c028cbd2-c16b-5b4b-a496-9718f37d4682
112 lines
2.9 KiB
C
Executable File
112 lines
2.9 KiB
C
Executable File
/* 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
|