#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