1998-09-03 13:32:44 +00:00
|
|
|
|
#ifndef __RESETFIL_H
|
|
|
|
|
#define __RESETFIL_H
|
|
|
|
|
|
|
|
|
|
#ifndef __ISAM_H
|
|
|
|
|
#include <isam.h>
|
|
|
|
|
#include <progind.h>
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////
|
|
|
|
|
// TResetfile
|
|
|
|
|
///////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
// @doc EXTERNAL
|
|
|
|
|
|
|
|
|
|
// @type VALIDATE_RECORD | Prototipo funzione per validare se un record e' da azzerare.
|
|
|
|
|
typedef bool (*VALIDATE_RECORD)(const TRectype& rec);
|
|
|
|
|
|
|
|
|
|
// @type VALIDATE_FIELD | Prototipo funzione per validare se un campo e' da azzerare.
|
|
|
|
|
typedef bool (*VALIDATE_FIELD)(const TRectype& rec, const TString& fld);
|
|
|
|
|
|
|
|
|
|
// @type BEFORE_RESET | Prototipo funzione richiamata prima dell'azzeramento di un record.
|
|
|
|
|
typedef void (*BEFORE_RESET)(TRectype& rec);
|
|
|
|
|
|
|
|
|
|
// @type AFTER_RESET | Prototipo funzione richiamata dopo l'azzeramento di un record.
|
|
|
|
|
typedef void (*AFTER_RESET)(TRectype& rec);
|
|
|
|
|
|
|
|
|
|
// @class TResetfile | Classe per l'azzeramento di un file
|
|
|
|
|
//
|
|
|
|
|
// @base public | TObject
|
|
|
|
|
class TResetfile : public TObject
|
|
|
|
|
|
|
|
|
|
// @author:(INTERNAL) Luciano
|
|
|
|
|
|
|
|
|
|
// @access:(INTERNAL) Private Member
|
|
|
|
|
{
|
|
|
|
|
// @cmember:(INTERNAL) numero logico del file da azzerare
|
|
|
|
|
int _file_num;
|
|
|
|
|
// @cmember:(INTERNAL) stato file : TRUE azzerato,FALSE non azzerato
|
|
|
|
|
bool _is_reseted;
|
|
|
|
|
// @cmember:(INTERNAL) file da azzerare
|
|
|
|
|
TSystemisamfile* _file;
|
|
|
|
|
// @cmember:(INTERNAL) effettuare remove dei record (default FALSE)
|
|
|
|
|
bool _removerec;
|
|
|
|
|
// @cmember:(INTERNAL) funzione di validate per azzerare un record
|
|
|
|
|
VALIDATE_RECORD _validate_record_function;
|
|
|
|
|
// @cmember:(INTERNAL) funzione di validate per azzerare un campo
|
|
|
|
|
VALIDATE_FIELD _validate_field_function;
|
|
|
|
|
// @cmember:(INTERNAL) funzione richiamata prima dell'azzeramento di un record
|
|
|
|
|
BEFORE_RESET _before_reset_function;
|
|
|
|
|
// @cmember:(INTERNAL) funzione richiamata dopo l'azzeramento di un record
|
|
|
|
|
AFTER_RESET _after_reset_function;
|
|
|
|
|
// @cmember:(INTERNAL) ritorna se il campo <p fd> <20> un campo chiave
|
|
|
|
|
bool iskeyfield(const RecDes& recd, const int fd) const;
|
|
|
|
|
// @cmember:(INTERNAL) ritorna e carica il numero campi da azzerare
|
|
|
|
|
int TResetfile::load_resetable_fields(const RecDes& recd,TString_array& resetable_fields);
|
|
|
|
|
|
|
|
|
|
// @access Public Member
|
|
|
|
|
public:
|
|
|
|
|
// @cmember setta la funzione di validate se record da azzerare
|
|
|
|
|
void set_validate_record_function(VALIDATE_RECORD fun)
|
|
|
|
|
{_validate_record_function = fun;}
|
|
|
|
|
// @cmember setta la funzione di validate se campo da azzerare
|
|
|
|
|
void set_validate_field_function(VALIDATE_FIELD fun)
|
|
|
|
|
{_validate_field_function = fun;}
|
|
|
|
|
// @cmember setta la funzione richiamata prima dell'azzeramento di un record
|
|
|
|
|
void set_before_reset_function(BEFORE_RESET fun)
|
|
|
|
|
{_before_reset_function = fun;}
|
|
|
|
|
// @cmember setta la funzione richiamata dopo l'azzeramento di un record
|
|
|
|
|
void set_after_reset_function(AFTER_RESET fun)
|
|
|
|
|
{_after_reset_function = fun;}
|
|
|
|
|
// @cmember esegue l'azzeramento del file
|
|
|
|
|
int run();
|
|
|
|
|
|
|
|
|
|
// @cmember Costruttore
|
|
|
|
|
TResetfile(int logicnum, bool remove = FALSE);
|
|
|
|
|
// @cmember Distruttore
|
|
|
|
|
virtual ~TResetfile();
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|