campo-sirio/ba/ba1300.h

104 lines
3.1 KiB
C
Raw Normal View History

#ifndef __BA1300_H
#define __BA1300_H
#include "ba1100.h"
#if XVT_OS == XVT_OS_WIN
#define Separator '\\'
#else
#define Separator '/'
#endif
////////////////////////////////////////
// Here defining classes //
////////////////////////////////////////
class TTestSheet : public TDir_sheet
{
TBit_array _oldstatus; // Previous status of selected files
protected:
void page_build(long first, byte rows);
public:
TTestSheet(const char* titolo, const char* colonne="@1|N.@5|Nome@20|EOD@7|EOX@7|Lung. |Descrizione@43|Flags@7", byte bottoni=0x0);
~TTestSheet() ;
void sr_status(bool save=TRUE);
};
class TTestFile : public TBaseisamfile
{
public:
TTestFile(int ln,bool lt=TRUE) : TBaseisamfile(ln,lt) {}
virtual ~TTestFile() {}
int close() {return _close();}
int open(unsigned int mode = _manulock) {return _open(mode);}
const char * file_name() const {return filename();}
};
class TTestWin : public TIndwin
{
protected:
virtual void update() {update_text();}
virtual void handler(WINDOW w, EVENT *e);
void update_text() {set_mode(M_COPY); check_stop();}
public:
void WriteW(short x, short y, const char* line) {stringat(x,y,line);update_text();do_events();}
TTestWin();
~TTestWin() {};
};
class TTestProc
{
TTestSheet * _sheet; // Sheet with files selected
TTestFile * _workf; // working file
TTestWin * _win; // Output window
long * _randseq; // Random sequence
long _ntest; // number of test in progress
int _nfile; // number of file being tested
long _kriminal; // number of record incriminated (Debug)
int _nkeys; // # of keys defined for current file
bool _block; // is test blocked ?
bool _rmc; // Remove copies at the end of test ?
protected:
void do_random(long eod);
void filecopy(bool save=TRUE);
void DumpReport(int err, long i, long x, int key);
long sumop(const long n) {return ((n+1)*(n/2)+(n%2)*((n+1)/2));}
int ctrl_keys();
bool show_mess(int, int, long, long, int);
const char * fmttime(const long);
public:
TTestProc();
~TTestProc();
const char* get_base();
void do_test_1();
void do_test_2();
void do_debug();
void remove_copy(int n);
void load_random(const TString& st);
bool stopped() {return _block;}
bool rm_copy() {return _rmc;}
void set_rmc(bool a=FALSE) {_rmc = a;}
long num_test() {return _ntest;}
void set_numt(const long num) { _ntest = num;}
int num_file() {return _nfile;}
void set_file(int n) {_nfile=n;}
long number(const long n) {return _randseq[n];}
void set_sheet (TTestSheet * sh) {_sheet=sh;}
TTestSheet * get_isheet() {return _sheet;}
TTestWin * get_win() {return _win;}
};
class TTestReport : public TScroll_window
{
TArray _report;
protected:
virtual void update();
virtual bool on_key(KEY);
public:
TTestReport(const char* title);
~TTestReport() {};
void load_report();
TString& get_row(int n) {return (TString&)_report[n];}
};
#endif