#ifndef __ARCHIVES_H
#define __ARCHIVES_H

#ifndef __STDIO_H
#include <stdio.h>
#endif

#ifndef __STRINGS_H
#include <strings.h>
#endif

///////////////////////////////////////////////////////////
// TArchive
///////////////////////////////////////////////////////////

class ALArchive;

class TArchive : public TObject
{
  enum { BUFSIZE = 4096*7 };
  ALArchive* _arc;

protected:
  KEY query() const;
  FILE* ask_disk(TFilename& name, int disk, char floppy, bool lettura) const;
  
  long fsize(FILE* f) const;                          
  bool fsplit(const char* filename, char floppy, const char* desc = "") const;
  bool fbuild(const char* filename, char floppy) const;

  int build_backup_list(long firm, TString_array& fl) const;
  int build_restore_list(long firm, char floppy, TString_array& fl) const;

public:   
  bool backup(const char* dir, char floppy, const char* desc, bool pr_set=TRUE);
  bool backup(long firm, char floppy, const char* desc, bool pr_set=TRUE);

  bool restore(const char* dir, char floppy, bool temp, bool pr_set=TRUE);
  bool restore(long firm, char floppy, bool temp, bool pr_set=TRUE);

  void stop_job();
};           

#endif