/search.css" rel="stylesheet" type="text/css"/> /search.js">
00001 #ifndef DBIRESULTAGG_H 00002 #define DBIRESULTAGG_H 00003 00039 #include <string> 00040 using std::string; 00041 #include <vector> 00042 00043 #include "DatabaseInterface/DbiResult.h" 00044 00045 00046 class DbiCache; 00047 class DbiDbiBinaryFile; 00048 class DbiDBProxy; 00049 class DbiResultSet; 00050 class DbiTableRow; 00051 class DbiValidityRecBuilder; 00052 00053 class DbiResultAgg : public DbiResult 00054 { 00055 00056 00057 public: 00058 00059 // Only some Satisfies methods are overriden so include base class ones. 00060 using DbiResult::Satisfies; 00061 00062 // Constructors and destructors. 00063 DbiResultAgg(const string& tableName = "Unknown", 00064 const DbiTableRow* tableRow = 0, 00065 DbiCache* cache = 0, 00066 const DbiValidityRecBuilder* vrecBuilder = 0, 00067 const DbiDBProxy* proxy=0, 00068 const string& sqlQualifiers = "" ); 00069 virtual ~DbiResultAgg(); 00070 00071 // State testing member functions 00072 00073 virtual DbiResultKey* CreateKey() const; 00074 virtual UInt_t GetNumAggregates() const { 00075 return 1 + fResults.size(); }; 00076 virtual UInt_t GetNumRows() const { 00077 return fSize; } 00078 virtual const DbiTableRow* GetTableRow(UInt_t row) const; 00079 virtual const DbiValidityRec& GetValidityRec( 00080 const DbiTableRow* row=0) const; 00081 00082 // State changing member functions. 00083 00084 virtual Bool_t Satisfies(const string& sqlQualifiers); 00085 virtual void Streamer(DbiBinaryFile& bf); 00086 00087 00088 private: 00089 00090 // Data members 00091 00097 std::vector<const DbiResult*> fResults; 00098 00100 std::vector<const DbiTableRow*> fRowKeys; 00101 00103 UInt_t fSize; 00104 00105 // Removed: ClassDef(DbiResultAgg,0) // Results table of aggregated data. 00106 00107 }; 00108 00109 00110 #endif // DBIRESULTAGG_H