// Change History
// 11/20/03 AV Development: BC6 conversion.

#ifndef _H_DRS_RECORD_
#define _H_DRS_RECORD_

// **************************************************************************
// DRS_RecordSet
// **************************************************************************
class DRS_Application;
class DRS_VectorDataElem;
class DRS_RecordSet
{
public:
  DRS_RecordSet( DRS_Application const *pAppl, uint32 lRecIdx = MAXUINT32);
  DRS_RecordSet::~DRS_RecordSet();

  AT_Record const * Record( uint db);

  uint32 VectorCount( uint iVectorIdx);
  void   VectorGet( uint iVectorIdx, uint32 pVectorAddress[], uint iFormula,
    DRS_VectorDataElem* pResults[], bool *pIsAvail);
  inline uint RecordNumberAbs() { const AT_Record * r = Record(0);
    return r ? r->getRecordNumber() : MAXUINT;}
  void   SetRecord(uint32 lNewRecNo) { RecNum = lNewRecNo; IsNewRecord = true; }
  const DRS_Application * GetApplication() const { return &rAppl; }
  
private:
  void Clear();

  bool IsNewRecord;
  uint32 RecNum;
  DRS_Application const &rAppl;  
  std::vector<AT_Record const *> AT_Records;
};

#endif
