a7d9d26979
git-svn-id: svn://10.65.10.50/trunk@4242 c028cbd2-c16b-5b4b-a496-9718f37d4682
82 lines
3.3 KiB
C++
Executable File
82 lines
3.3 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) 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
|
||
|