#ifndef __RESETFIL_H #define __RESETFIL_H #ifndef __ISAM_H #include #include #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

è 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