00001 #ifndef DBITABLEROW_H 00002 #define DBITABLEROW_H 00003 00007 00037 #include "TObject.h" 00038 #include <string> 00039 #include <cassert> 00040 00041 class DbiOutRowStream; 00042 class DbiResult; 00043 class DbiResultSet; 00044 class DbiTableProxy; 00045 class DbiValidityRec; 00046 00047 class DbiTableRow 00048 { 00049 00050 public: 00051 00052 // Constructors and destructors. 00053 DbiTableRow(); 00054 DbiTableRow(const DbiTableRow& from); 00055 virtual ~DbiTableRow(); 00056 00057 // For RTTI: 00058 virtual std::string name() const; 00059 virtual size_t size() const; 00060 00061 // State testing member functions 00062 virtual Bool_t CanL2Cache() const { return kFALSE; } 00063 virtual Int_t GetAggregateNo() const { return -1; } 00064 DbiResult* GetOwner() const { return fOwner; } 00065 virtual DbiTableRow* CreateTableRow() const =0; 00066 virtual UInt_t GetIndex(UInt_t defIndex) const {return defIndex;} 00067 00068 // State modifying member functions 00069 void SetOwner(DbiResult* owner) {fOwner = owner;} 00070 00071 // I/O member functions 00072 virtual void Fill(DbiResultSet& rs, 00073 const DbiValidityRec* vrec) =0; 00074 virtual void Store(DbiOutRowStream& /* ors */, 00075 const DbiValidityRec* /* vrec */) const { assert(0); } 00076 00078 virtual bool CreateDatabaseTables(Int_t db_no = 0, const char* tablename = "default" ); 00079 00081 virtual std::string GetDatabaseLayout(); 00082 00083 00084 private: 00085 00086 // Data members 00087 00089 DbiResult * fOwner; 00090 00091 // Removed: ClassDef(DbiTableRow,0) // DbiTableRow for a specific database table. 00092 00093 }; 00094 00095 00096 #endif // DBITABLEROW_H