#ifndef __BA2201_H
#define __BA2201_H

#ifndef __APPLICAT_H
#include <applicat.h>
#endif 

#ifndef __CONFIG_H
#include <config.h>
#endif

class TArchive_app : public TSkeleton_application
{ 
  TArray _zip_list;
  
protected:
  virtual bool create();
  virtual void main_loop();
  KEY query(int& mode, long& firm, TFilename& floppy_path, TString& desc) const;

  bool split_file(const TFilename& archive, unsigned long max_chunk);
  bool zip_dir(const TFilename& name, unsigned long max_chunk);
  
  bool read_paragraph(TConfig& ini, const char* para);

  void backup(int mode, long firm, const TFilename& floppy_path, const TString& desc);
  void restore(int mode, long firm, const TFilename& floppy_path);
  
  void add_file(const TFilename& name);
  bool save_zip_files(const TFilename& floppy_path, const TString& desc, unsigned long max_chunk);
  void load_zip_files(const TFilename& floppy_path);
  
  bool can_save_as(const TFilename& src, const TFilename& dst) const;
  
  void interactive_mode();
  void batch_mode(const TString& cmd);
  
public:      
  void stop_job();

  TArchive_app() {}
  virtual ~TArchive_app() {}  
};

#endif