| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

DbiTableProxy.h

Go to the documentation of this file.
00001 #ifndef DBITABLEPROXY_H
00002 #define DBITABLEPROXY_H
00003 
00025 #include <string>
00026 #include <sstream>
00027 using std::string;
00028 
00029 #include "DatabaseInterface/Dbi.h"
00030 #include "DatabaseInterface/DbiDBProxy.h"
00031 #include "DatabaseInterface/DbiTableMetaData.h"
00032 #include "DatabaseInterface/DbiValidityRec.h"
00033 #include "Context/Context.h"
00034 #include "Context/TimeStamp.h"
00035 
00036 class DbiCache;
00037 class DbiCascader;
00038 class DbiResult;
00039 class DbiTableProxyRegistry;
00040 class DbiTableRow;
00041 class DbiValidityRec;
00042 class DbiValidityRecBuilder;
00043 
00044 class DbiTableProxy
00045 {
00046 
00047   friend class DbiTableProxyRegistry;    //Allow Resistry access to ctor/dtor.
00048 
00049 public:
00050 
00051 // State testing member functions
00052       const DbiDBProxy& GetDBProxy() const { return fDBProxy; }
00053            DbiCascader& GetCascader() { return *fCascader; }
00054 const DbiTableMetaData& GetMetaData() const { return fMetaData; }
00055 const DbiTableMetaData& GetMetaValid() const { return fMetaValid; }
00056                  string GetRowName() const { 
00057                       return fTableRow ? fTableRow->name() : "Unknown";}
00058                  string GetTableName() const { return fTableName;}
00059 // State changing member functions
00060               DbiCache* GetCache() { return fCache;}
00061        const DbiResult* Query(const Context& vc, 
00062                               const Dbi::SubSite& subsite,
00063                               const Dbi::Task& task,
00064                               Bool_t findFullTimeWindow = true);
00065        const DbiResult* Query(const string& context, 
00066                               const Dbi::SubSite& subsite,
00067                               const Dbi::Task& task,
00068                               const string& data,
00069                               const string& fillOpts);
00070        const DbiResult* Query(UInt_t seqNo,UInt_t dbNo);
00071        const DbiResult* Query(const DbiValidityRec& vrec, 
00072                               Bool_t canReuse = kTRUE);
00073            TimeStamp QueryOverlayVersionDate(const DbiValidityRec& vrec,
00074                                                  UInt_t dbNo);
00075                    void RefreshMetaData(); 
00076                    void SetSqlCondition(const string& sql); 
00077                  Bool_t TableExists() const { return fExists; }
00078 
00079 protected:
00080 
00081 // Constructors (protected because created and owned by DbiTableProxyRegistry).
00082            DbiTableProxy(DbiCascader* cascader, 
00083                          const string& tableName,
00084                          const string& vldSuffix,
00085                          const DbiTableRow* tableRow);
00086   virtual ~DbiTableProxy();
00087 
00088 // State testing member functions
00089 
00090 // State changing member functions
00091 
00092 private:
00093 
00094 // Disabled (not implemented) copy constructor and asignment.
00095 
00096  DbiTableProxy(const DbiTableProxy&);
00097  DbiTableProxy& operator=(const DbiTableProxy&);
00098   
00099 
00100 // Level 2 (disk) cache management.
00101  Bool_t CanReadL2Cache() const;
00102  Bool_t CanWriteL2Cache() const;
00103  Bool_t RestoreFromL2Cache(const DbiValidityRecBuilder& builder);
00104  Bool_t SaveToL2Cache(const string& name, DbiResult& res);
00105  
00106 // Data members (fMeta* must precede fDBProxy, it has to be created
00107 //               first - see initialiser list)
00108  
00109 
00111   DbiCascader* fCascader;
00112 
00114   DbiTableMetaData fMetaData;
00115  
00117   DbiTableMetaData fMetaValid;
00118 
00120    Bool_t fCanL2Cache;
00121 
00123   DbiCache* fCache;
00124 
00126   DbiDBProxy fDBProxy;
00127 
00129   Bool_t fExists;
00130 
00132 string  fTableName;
00133   
00135  DbiTableRow* fTableRow;
00136 
00137 // Removed: ClassDef(DbiTableProxy,0)        // Object to query a specific table.
00138 
00139 };
00140 
00141 
00142 #endif  // DBITABLEPROXY_H
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:15:46 2011 for DatabaseInterface by doxygen 1.4.7