/search.css" rel="stylesheet" type="text/css"/> /search.js">
00001 #ifndef DBIROWSTREAM_H 00002 #define DBIROWSTREAM_H 00003 00024 #include <string> 00025 00026 #include "DatabaseInterface/DbiFieldType.h" 00027 00028 class DbiTableMetaData; 00029 00030 class DbiRowStream 00031 { 00032 00033 public: 00034 00035 // Constructors and destructors. 00036 DbiRowStream(const DbiTableMetaData* metaData); 00037 virtual ~DbiRowStream(); 00038 00039 // State testing member functions 00040 virtual 00041 const DbiFieldType& ColFieldType(UInt_t col) const; 00042 virtual string ColName(UInt_t col) const; 00043 virtual 00044 const DbiFieldType& CurColFieldType() const; 00045 virtual string CurColName() const; 00046 virtual UInt_t CurColNum() const { return fCurCol;} 00047 Bool_t HasRowCounter() const { return fHasRowCounter; } 00048 virtual UInt_t NumCols() const; 00049 virtual string TableName() const; 00050 virtual string TableNameTc() const; 00051 virtual const DbiTableMetaData* 00052 MetaData() const { return fMetaData; } 00053 // State changing member functions 00054 00055 virtual void DecrementCurCol() { 00056 fCurCol = (fCurCol <= 1) ? 1 : fCurCol -1; } 00057 // Allow IncrementCurCol to step off end (to catch attempt to read 00058 // too much data) 00059 virtual void IncrementCurCol() { ++fCurCol; } 00060 00061 protected: 00062 00063 virtual void ClearCurCol() { fCurCol = 1; } 00064 00065 private: 00066 00067 00068 // Data members 00069 00071 UShort_t fCurCol; 00072 00074 Bool_t fHasRowCounter; 00075 00077 const DbiTableMetaData* fMetaData; 00078 00079 // Removed: ClassDef(DbiRowStream,0) // I/O of a table row. 00080 00081 }; 00082 00083 00084 #endif // DBIROWSTREAM_H