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
00036 DbiRowStream(const DbiTableMetaData* metaData);
00037 virtual ~DbiRowStream();
00038
00039
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
00054
00055 virtual void DecrementCurCol() {
00056 fCurCol = (fCurCol <= 1) ? 1 : fCurCol -1; }
00057
00058
00059 virtual void IncrementCurCol() { ++fCurCol; }
00060
00061 protected:
00062
00063 virtual void ClearCurCol() { fCurCol = 1; }
00064
00065 private:
00066
00067
00068
00069
00071 UShort_t fCurCol;
00072
00074 Bool_t fHasRowCounter;
00075
00077 const DbiTableMetaData* fMetaData;
00078
00079 ClassDef(DbiRowStream,0)
00080
00081 };
00082
00083
00084 #endif // DBIROWSTREAM_H