#ifndef __GVLIB_H
#define __GVLIB_H

#ifndef __RECSET_H
#include <recset.h>
#endif

#ifndef __REPUTILS_H
#include <reputils.h>
#endif

#ifndef __RIGHE_F24
#include <righef24.h>
#endif

// Elenco di tutte righe + o - assegnate ad un F24
class TRigheF24_set : public TISAM_recordset 
{
public:
  TRigheF24_set(int flags = 0); // 0=tutte 1=libere 2=assegnate 3=tutte
};

// Elenco delle righe di un singolo F24
class TF24_set : public TISAM_recordset 
{
public:
	bool contabilizza(TLog_report & log);
  TF24_set(long codice);
};

// Elenco delle distinte F24 (solo la prima riga di ognuna)
class TElencoF24_set : public TRigheF24_set
{
  int _flags;
  TBit_array _good;

  static const TElencoF24_set* _currentF24;
  static bool f24killer(const TRelation* rel);

public:
  virtual TCursor* cursor() const;
  TElencoF24_set(int flags = 0);  // 0=tutte 1=da inviare 2=inviate 3=tutte
};

long get_next_f24();
long get_next_progr_f24();

#endif