TDbiRowStream.hxx

Go to the documentation of this file.
00001 #ifndef DBIROWSTREAM_H
00002 #define DBIROWSTREAM_H
00003 
00004 /**
00005  *
00006  * $Id: TDbiRowStream.hxx,v 1.1 2011/01/18 05:49:20 finch Exp $
00007  *
00008  * \class TDbiRowStream
00009  *
00010  *
00011  * \brief
00012  * <b>Concept</b>  I/O buffer for a row of a table.
00013  *
00014  * \brief
00015  * <b>Purpose</b> This forms the base class for TDbiInRowStream (input)
00016  *  and TDbiWriter (input)
00017  *
00018  * Contact: A.Finch@lancaster.ac.uk
00019  *
00020  *
00021  */
00022 
00023 #include <string>
00024 
00025 #include "TDbiFieldType.hxx"
00026 
00027 class TDbiTableMetaData;
00028 
00029 class TDbiRowStream
00030 {
00031 
00032 public:
00033 
00034 // Constructors and destructors.
00035            TDbiRowStream(const TDbiTableMetaData* metaData);
00036   virtual ~TDbiRowStream();
00037 
00038 // State testing member functions
00039 virtual
00040  const TDbiFieldType& ColFieldType(UInt_t col) const;
00041 virtual       string ColName(UInt_t col) const;
00042 virtual
00043  const TDbiFieldType& CurColFieldType() const;
00044 virtual       string CurColName() const;
00045 virtual       UInt_t CurColNum() const { return fCurCol;}
00046        Bool_t HasEpoch() const;
00047        Bool_t HasRowCounter() const { return fHasRowCounter; }
00048        Bool_t IsVLDTable() const { return fIsVLDTable; }
00049 virtual       UInt_t NumCols() const;
00050 virtual       string TableName() const;
00051 virtual       string TableNameTc() const;
00052 virtual const TDbiTableMetaData*
00053               MetaData() const { return fMetaData; }
00054 // State changing member functions
00055 
00056 virtual    void DecrementCurCol() {
00057                             fCurCol = (fCurCol <= 1) ? 1 : fCurCol -1; }
00058 // Allow IncrementCurCol to step off end (to catch attempt to read
00059 // too much data)
00060 virtual    void IncrementCurCol() { ++fCurCol; }
00061 
00062 protected:
00063 
00064 virtual    void ClearCurCol() { fCurCol = 1; }
00065 
00066 private:
00067 
00068 
00069 // Data members
00070 
00071 /// Current column in query (1..fNumCols)
00072   UShort_t fCurCol;
00073 
00074 /// True if main table has ROW_COUNTER as second column
00075   Bool_t fHasRowCounter;
00076 
00077 /// Owned by TDbiTableProxy
00078  const TDbiTableMetaData* fMetaData;
00079 
00080 /// True if reading data for a *VLD table.
00081   Bool_t fIsVLDTable;
00082 
00083  ClassDef(TDbiRowStream,0)     // I/O of a table row.
00084 
00085 };
00086 
00087 
00088 #endif  // DBIROWSTREAM_H
00089 

Generated on 11 Aug 2013 for SKDatabase by  doxygen 1.6.1