/search.css" rel="stylesheet" type="text/css"/> /search.js">
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

DbiResult.h
Go to the documentation of this file.
00001 #ifndef DBIRESULT_H
00002 #define DBIRESULT_H
00003 
00028 #include <map>
00029 #include <string>
00030 using std::string;
00031 
00032 #include "DatabaseInterface/Dbi.h"
00033 #include "DatabaseInterface/DbiExceptionLog.h"
00034 #include "DatabaseInterface/DbiValidityRec.h"
00035 
00036 typedef std::map<UInt_t,const DbiTableRow*> IndexToRow_t;
00037 
00038 class DbiBinaryFile;
00039 class DbiResultKey;
00040 class DbiResult;
00041 class DbiResultSet;
00042 class DbiTableRow;
00043 class Context;
00044 
00045 DbiBinaryFile& operator<<(DbiBinaryFile& bf, const DbiResult& res);    
00046 DbiBinaryFile& operator>>(DbiBinaryFile& bf, DbiResult& res);    
00047 
00048 class DbiResult
00049 {
00050 
00051 public:
00052 
00053 // Constructors and destructors.
00054            DbiResult(DbiResultSet* resultSet = 0, 
00055                      const DbiValidityRec* vrec = 0,
00056                      const string& sqlQualifiers = "");
00057   virtual ~DbiResult();
00058 
00059 // State testing member functions
00060  
00061  virtual                Bool_t CanReuse() const  { return fCanReuse; }
00062  virtual                Bool_t CanSave() const  { return kTRUE; }
00063  virtual                  void Connect() const { ++fNumClients; }
00064  virtual         DbiResultKey* CreateKey() const = 0;
00065  virtual                  void Disconnect() const { --fNumClients; } 
00066         const DbiExceptionLog& GetExceptionLog() const { return fExceptionLog; }
00067                          Int_t GetID() const { return fID; }
00068  virtual   const DbiResultKey* GetKey() const;
00069  virtual                UInt_t GetNumAggregates() const =0;
00070  virtual                UInt_t GetNumClients() const { 
00071                                                    return fNumClients; }
00072  virtual                UInt_t GetNumRows() const =0;
00073                  const string& GetSqlQualifiers() const { return fSqlQualifiers; }
00074  virtual    const DbiTableRow* GetTableRow(UInt_t rowNum) const =0;
00075  virtual    const DbiTableRow* GetTableRowByIndex(UInt_t index) const;
00076  virtual const DbiValidityRec& GetValidityRec(
00077                                   const DbiTableRow* /* row */ = 0) const { 
00078                                         return GetValidityRecGlobal(); }
00079  virtual const DbiValidityRec& GetValidityRecGlobal() const { 
00080                                                       return fEffVRec; }
00081                         Bool_t IsExtendedContext() const { 
00082                                        return this->GetSqlQualifiers() != ""; }
00083  virtual                Bool_t Owns(const DbiTableRow* /* row */) const { return kFALSE; }
00084                         Bool_t ResultsFromDb() const { return fResultsFromDb; }
00085  virtual         const string& TableName() const { return fTableName; }
00086 
00087 // State changing member functions
00088                           void CaptureExceptionLog(UInt_t startFrom);
00089 
00091  virtual                Bool_t CanDelete(const DbiResult* res = 0);
00092 
00095  virtual    Bool_t Satisfies(const Context& vc,
00096                              const Dbi::SubSite& subsite,
00097                              const Dbi::Task& task);
00100 virtual     Bool_t Satisfies(const string&) {return kFALSE;}
00101 virtual     Bool_t Satisfies(const DbiValidityRec&,
00102                              const string& = "") {return kFALSE;}
00103 
00105  virtual    void DeRegisterKey();
00106  virtual    void RegisterKey();
00107 
00108  virtual void Streamer(DbiBinaryFile& file);
00109  virtual void SetCanReuse(Bool_t reuse)  { fCanReuse = reuse ; }
00110 
00111 protected:
00112          void SetResultsFromDb() { fResultsFromDb = kTRUE; }
00113 
00114 // State testing member functions
00115 
00116          void BuildLookUpTable() const;
00117        Bool_t LookUpBuilt() const { return fIndexKeys.size() > 0; } 
00118 
00119 //  State changing member functions.
00120 
00121  virtual void SetTableName(const string& tableName)  { 
00122                                                fTableName = tableName; }
00123  virtual void SetValidityRec(const DbiValidityRec& vRec)  { 
00124                                                       fEffVRec = vRec; }
00125 
00126 
00127 private:  
00128 
00129 // Data members
00130 
00132   Int_t fID;            
00133 
00135   Bool_t fCanReuse;      
00136 
00138   DbiValidityRec fEffVRec;       
00139 
00141   mutable IndexToRow_t fIndexKeys;     
00142 
00144   const DbiResultKey* fKey;     
00145 
00147   Bool_t fResultsFromDb;
00149   mutable Int_t fNumClients;    
00150 
00152   string fTableName;     
00153 
00156   string fSqlQualifiers;
00157 
00159   DbiExceptionLog fExceptionLog;  
00160 
00161 
00163   static  Int_t fgLastID;            
00164 
00165 
00166 // Removed: ClassDef(DbiResult,0)     //Abstract base representing query result 
00167 
00168 };
00169 
00170 
00171 #endif  // DBIRESULT_H
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Fri May 16 2014 09:56:45 for DatabaseInterface by doxygen 1.7.4