1995-09-11 15:13:50 +00:00
|
|
|
#ifndef __ARCHIVES_H
|
|
|
|
#define __ARCHIVES_H
|
|
|
|
|
|
|
|
#ifndef __STDIO_H
|
|
|
|
#include <stdio.h>
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef __STRINGS_H
|
|
|
|
#include <strings.h>
|
|
|
|
#endif
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////
|
|
|
|
// TArchive
|
|
|
|
///////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
class ALArchive;
|
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
// @doc EXTERNAL
|
|
|
|
|
|
|
|
// @class TArchive | Classe per effettuare compressione e archiviazione di dati
|
|
|
|
//
|
|
|
|
// @base public | TObject
|
1995-09-11 15:13:50 +00:00
|
|
|
class TArchive : public TObject
|
1996-02-05 19:00:53 +00:00
|
|
|
|
|
|
|
// @author:(INTERNAL) Angelo
|
|
|
|
|
|
|
|
// @access:(INTERNAL) Private Member
|
1995-09-11 15:13:50 +00:00
|
|
|
{
|
1998-05-13 15:01:03 +00:00
|
|
|
#if XVT_OS == XVT_OS_WIN
|
1996-02-05 19:00:53 +00:00
|
|
|
// @ccost:(INTERNAL) BUFSIZE | 4096*7 | Dimensione del buffer di lettura/scrittura su dischetto
|
1995-09-11 15:13:50 +00:00
|
|
|
enum { BUFSIZE = 4096*7 };
|
1996-02-05 19:00:53 +00:00
|
|
|
// @cmember:(INTERNAL) Oggetto per la gestione di archivi (vedi <c ALArchive>)
|
1995-09-11 15:13:50 +00:00
|
|
|
ALArchive* _arc;
|
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
// @cmember Funzione per richiedere all'utente il dischetto e per controllare la
|
1998-04-30 14:54:04 +00:00
|
|
|
// corretta sequenza dei dischetti da inserire
|
1995-09-11 15:13:50 +00:00
|
|
|
FILE* ask_disk(TFilename& name, int disk, char floppy, bool lettura) const;
|
1999-05-24 13:34:11 +00:00
|
|
|
|
1998-05-13 15:01:03 +00:00
|
|
|
// @cmember Spezza il file in modo da farlo stare sul dischetto
|
|
|
|
bool fsplit(const char* filename, char floppy, const char* desc = "") const;
|
|
|
|
// @cmember Ricostruisce il file spezzato
|
|
|
|
bool fbuild(const char* filename, char floppy) const;
|
|
|
|
#endif
|
|
|
|
|
|
|
|
// @access Protected Member
|
|
|
|
protected:
|
1995-09-11 15:13:50 +00:00
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
// @cmember Ritorna la dimensione del file <p f>
|
1998-04-30 14:54:04 +00:00
|
|
|
long fsize(FILE* f) const;
|
|
|
|
|
|
|
|
// @cmember Sposta il file nella directory dir
|
|
|
|
bool move_file(const TFilename& file, const char* dir) const;
|
|
|
|
|
|
|
|
// @cmember Spezza il file.zip in modo da farlo stare sul dischetto
|
|
|
|
bool fsplit_zip(const char* filename, char floppy, const char* desc = "") const;
|
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
// @cmember Ricostruisce la lista dei file contenuti nel backup
|
2000-05-05 15:25:49 +00:00
|
|
|
int build_backup_list(int mode, long firm, TString_array& fl) const;
|
1999-07-21 09:18:16 +00:00
|
|
|
// @cmember Scrive il file backup.ini sul drive indicato
|
|
|
|
bool write_ini(TFilename& name, int disk, long tot, const char* desc, char floppy) const;
|
2000-10-03 13:45:12 +00:00
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
// @cmember Costruisce la lista delle directory da scompattare
|
2000-05-05 15:25:49 +00:00
|
|
|
int build_restore_list(int& mode, long firm, char floppy, TString_array& fl) const;
|
1998-04-30 14:54:04 +00:00
|
|
|
|
|
|
|
bool copy_zipper(const char* dir) const;
|
|
|
|
bool remove_zipper(const char* dir) const;
|
|
|
|
void add_zipper_list(TString& str) const;
|
1995-09-11 15:13:50 +00:00
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
// @access Public Member
|
1995-09-11 15:13:50 +00:00
|
|
|
public:
|
1998-05-13 15:01:03 +00:00
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
// @cmember Effettua il backup della directory
|
1999-01-19 09:15:17 +00:00
|
|
|
bool backup(const char* dir, char floppy, const char* desc, bool dummy = FALSE);
|
1996-02-05 19:00:53 +00:00
|
|
|
// @cmember Effettua il backup della ditta
|
2000-05-05 15:25:49 +00:00
|
|
|
bool backup(int mode, long firm, char floppy, const char* desc, bool pr_set=TRUE);
|
1995-09-11 15:13:50 +00:00
|
|
|
|
1996-02-05 19:00:53 +00:00
|
|
|
// @cmember Effettua il restore della directory
|
1999-01-19 09:15:17 +00:00
|
|
|
bool restore(const char* dir, char floppy, bool temp, bool dummy = FALSE);
|
1996-02-05 19:00:53 +00:00
|
|
|
// @cmember Effettua il restore della ditta
|
2000-05-05 15:25:49 +00:00
|
|
|
bool restore(int mode, long firm, char floppy, bool temp, bool pr_set=TRUE);
|
1995-09-11 15:13:50 +00:00
|
|
|
|
1998-06-23 14:30:08 +00:00
|
|
|
#if XVT_OS == XVT_OS_WIN
|
1996-02-05 19:00:53 +00:00
|
|
|
// @cmember Interrompe le operazioni
|
1995-09-11 15:13:50 +00:00
|
|
|
void stop_job();
|
1998-05-13 15:01:03 +00:00
|
|
|
#endif
|
1998-04-30 14:54:04 +00:00
|
|
|
|
|
|
|
// @cmember Effettua il backup della directory
|
|
|
|
bool zip(const char* dir, char floppy, const char* desc);
|
|
|
|
// @cmember Effettua il backup della ditta
|
2001-05-04 10:59:04 +00:00
|
|
|
bool zip(int mode, long firm, char floppy, const char* desc);
|
1998-04-30 14:54:04 +00:00
|
|
|
|
|
|
|
// @cmember Effettua il restore della directory
|
|
|
|
bool unzip(const char* dir, char floppy, bool temp);
|
|
|
|
// @cmember Effettua il restore della ditta
|
2001-05-04 10:59:04 +00:00
|
|
|
bool unzip(int mode, long firm, char floppy, bool temp);
|
1998-04-30 14:54:04 +00:00
|
|
|
|
|
|
|
TArchive() { }
|
|
|
|
virtual ~TArchive() { }
|
1995-09-11 15:13:50 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|