#ifndef DBIRESULTNONAGG_H
#define DBIRESULTNONAGG_H
/**
*
*
* \class COMET::IDbiResultSetNonAgg
*
*
* \brief
* Concept ResultNonAgg is a concrete sub-class COMET::of IDbiResultSet
* that represents a single database query for a non-aggregated table.
*
* Purpose See IDbiResultSet.
*
* Contact: A.Finch@lancaster.ac.uk
*
*
*/
#if !defined(__CINT__) || defined(__MAKECINT__)
#include "Rtypes.h"
#endif
#include
using std::string;
#include
using std::vector;
#include "IDbiResultSet.hxx"
namespace COMET {
class IDbiBinaryFile;
class IDbiInRowStream;
class IDbiTableRow;
}
namespace COMET {
class IDbiResultSetNonAgg : public IDbiResultSet
{
public:
// Only some Satisfies methods are overriden so include base class ones.
using IDbiResultSet::Satisfies;
// Constructors and destructors.
IDbiResultSetNonAgg(IDbiInRowStream* resultSet = 0,
const IDbiTableRow* tableRow = 0,
const IDbiValidityRec* vrec = 0,
Bool_t dropSeqNo = kTRUE,
const string& sqlQualifiers = "");
virtual ~IDbiResultSetNonAgg();
// State testing member functions
virtual IDbiResultKey* CreateKey() const;
virtual UInt_t GetNumAggregates() const { return 1; }
virtual UInt_t GetNumRows() const {
return fRows.size(); }
virtual const IDbiTableRow* GetTableRow(UInt_t rowNum) const;
virtual const IDbiTableRow* GetTableRowByIndex(UInt_t index) const;
// State changing member functions.
virtual Bool_t Owns(const IDbiTableRow* row ) const;
Bool_t Satisfies(const IDbiValidityRec& vrec,
const string& sqlQualifiers = "");
virtual void Streamer(IDbiBinaryFile& file);
private:
void DebugCtor() const;
// Data members
/// Set of table rows eqv. to ResultSet
std::vector fRows;
/// Not null only if table rows read from BinaryFile.
char* fBuffer;
ClassDef(IDbiResultSetNonAgg,0) //Example non-aggregated data.
};
};
#endif // DBIRESULTNONAGG_H