alex d94d535681 Tolto supporto cisam
git-svn-id: svn://10.65.10.50/trunk@1178 c028cbd2-c16b-5b4b-a496-9718f37d4682
1995-03-27 14:47:32 +00:00

85 lines
2.6 KiB
C
Executable File

/*
@(SH) Header
@(C#) PUBBLICHE
NOFLDS : massimo numero di chiavi da ordinare
@(C$) PRIVATE
MOSTMEM : numero massimo di bytes di memoria per il buffer di sort
LEASTMEM : numero minimo di bytes di memoria per il buffer di sort
@(VG#) PUBBLICHE
s_prm : struttura di un sort
s_prm.rc_len : lunghezza del record
s_prm.s_fld : vettore della struttura dei campi di sort
s_prm.s_fld[].f_pos : prima posizione del campo (contando da 1)
s_prm.s_fld[].f_len : lunghezza del campo e tipo del campo; se f_len > 0 e' una stringa; se f_len = -1 e' un intero; se f_len = -2 e' un boolean
s_prm.s_fld[].ad : a = crescente; d = decrescente
@(VG$) PRIVATE
bp : struttura di una sequenza in un buffer di merge
bp.rc : puntatore al record nel merge buffer
bp.rbuf : record rimasti nel buffer in questa sequenza di sort
bp.rdsk : record rimasti nel disco in questa sequenza di sort
-------------------------------------------------------------------------------
*/
#ifndef __CSORT_H
#define __CSORT_H
#ifndef __CCOMMON_H
#include "ccommon.h"
#endif
#ifndef __CCUSTIO_H
#include "ccustio.h"
#endif
#ifndef __CISAM_H
#include "cisam.h"
#endif
#define NOFLDS 10
#define MOSTMEM 51200
#define LEASTMEM 10240
struct s_prm {
int rc_len;
struct {
int f_pos;
int f_len;
char ad;
} s_fld [NOFLDS];
};
struct bp {
char *rc;
/* @(!) 2.3.00.112 */
unsigned rbuf;
unsigned rdsk;
/* @(:) 2.3.00.112 */
};
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/*----------------------- FUNZIONI VISIBILI PRIMA PARTE ---------------------*/
int init_sort(struct s_prm *); /* Initialize the sort */
void sort(char *); /* Pass records to Sort */
char *sort_op(void); /* Retrieve sorted records */
void sort_stats(void); /* Display sort statistics */
/*----------------------- FUNZIONI VISIBILI SECONDA PARTE -------------------*/
void initsortfield (void);
int addsortfield (isfdptr, FieldName, int, int, char);
int finesortfield (isfdptr);
/* azzera l'elenco dei campi in base a cui eseguire il sort */
/* ritorna 0 se tutto ok, -1 se chiamata piu' di NOFLDS volte dopo l'ultimo initsortfield */
/* ritorna 0 se tutto ok, -1 se non c'e' sufficiente memoria per procedere */
/*---------------------------------------------------------------------------*/
#ifdef __cplusplus
};
#endif /* __cplusplus */
#endif /* __CSORT_H */