campo-sirio/m770/resetfil.h
luciano 4c0c8a7e32 New entry!! azzeramento archivi con classe e controclasse
git-svn-id: svn://10.65.10.50/trunk@4224 c028cbd2-c16b-5b4b-a496-9718f37d4682
1997-03-21 17:32:13 +00:00

80 lines
3.1 KiB
C++
Executable File

#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) 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> è 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