EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
FairDbRowStream.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file FairDbRowStream.h
1 #ifndef FAIRDBROWSTREAM_H
2 #define FAIRDBROWSTREAM_H
3 
4 #include <string>
5 
6 #include "FairDbFieldType.h"
7 
9 
11 {
12 
13  public:
14 
15 // Constructors and destructors.
16  FairDbRowStream(const FairDbTableMetaData* metaData);
17  virtual ~FairDbRowStream();
18 
19  virtual
20  const FairDbFieldType& ColFieldType(UInt_t col) const;
21  virtual string ColName(UInt_t col) const;
22  virtual
23  const FairDbFieldType& CurColFieldType() const;
24  virtual string CurColName() const;
25  virtual UInt_t CurColNum() const { return fCurCol;}
26  Bool_t HasRowCounter() const { return fHasRowCounter; }
27  virtual UInt_t NumCols() const;
28  virtual string TableName() const;
29  virtual string TableNameTc() const;
30  virtual const FairDbTableMetaData*
31  MetaData() const { return fMetaData; }
32  // State changing member functions
33 
34  virtual void DecrementCurCol() {
35  fCurCol = (fCurCol <= 1) ? 1 : fCurCol -1;
36  }
37  // Allow IncrementCurCol to step off end (to catch attempt to read
38  // too much data)
39  virtual void IncrementCurCol() { ++fCurCol; }
40 
41  protected:
42 
43  virtual void ClearCurCol() { fCurCol = 1; }
44 
45  private:
46 
47  UShort_t fCurCol;
50 
53 
54  ClassDef(FairDbRowStream,0) // I/O of a table row.
55 
56 };
57 
58 
59 #endif // FAIRDBROWSTREAM_H