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
 | ||
| 
 |