#ifndef __INST_H
#define __INST_H

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

#ifndef __ISAM_H
#include <isam.h>
#endif

#ifndef __MASK_H
#include <mask.h>
#endif

#include "bainsta.h"
// classe provvisoria per i system file temporanei, ovvero file temporanei con
// caricamento/scaricamento
class TSystemtempfile : public TIsamtempfile
{                  
public:
//bool getlcf(  long flev);  // @parm livello archivi di partenza della convesione
     
  int load(const char* from, char fs = '|', char fd = '\0', char rs = '\n', bool vis = TRUE, bool extended = FALSE) ;

  int dump(const char* to, int nkey = 1, char fs = '|', char fd = '\0', char rs = '\n', bool vis = TRUE, bool withdeleted = FALSE);
    
  TSystemtempfile(int logicnum) :
    TIsamtempfile(logicnum,NULL) {}
};

class TStd_filename : public TFilename
{
public:
  bool check(bool verbose=FALSE,const char * name=NULL);

  TStd_filename () : TFilename(){}
  TStd_filename (const char * n) : TFilename(n){}
};

class TInstallmodule_app: public TSkeleton_application
{ 
  bool _is_first_inst ,  _test_database ;

protected:
  TMask * _m ;
 
protected:
  virtual int module_number() const pure;

  void set_tab_app(const char * appname);
  bool test_database() const {return _test_database;}
  const char* module_name() const;
  const char* module_code() const;

  virtual bool something_to_load() const;
  virtual bool modal() const {return true;}
  virtual bool preload_mask();
  virtual bool post_installer() {return true;}
  virtual bool something_checked() const;
	virtual bool ci_sono_novita(const TFilename& filesource, const int filedest) const;

  virtual bool install_com() ; // setta i dati comuni
  virtual bool install_firm() ; // setta i dati ditta

  virtual void main_loop() ;
  virtual bool create();
  virtual bool destroy();
public:
  void run(int argc, char* argv[]);
};

#endif