/search.css" rel="stylesheet" type="text/css"/> /search.js">
| 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                  string GetExtraCondition() const { return fTableRow ? fTableRow->GetExtraCondition() : "" ; }
00060 // State changing member functions
00061               DbiCache* GetCache() { return fCache;}
00062 
00063    // for efficient access to last validity in partial context
00064        const DbiValidityRecBuilder* MakeValidityRecBuilder(const string& context, 
00065                               const Dbi::SubSite& subsite,
00066                               const Dbi::Task& task);
00067        const DbiValidityRec* LastValidityRec( const string& context, 
00068                               const Dbi::SubSite& subsite,
00069                               const Dbi::Task& task);
00070        const DbiValidityRec* FirstValidityRec( const string& context, 
00071                               const Dbi::SubSite& subsite,
00072                               const Dbi::Task& task);
00073        const DbiValidityRec* ValidityRec( const string& context, 
00074                               const Dbi::SubSite& subsite,
00075                               const Dbi::Task& task,
00076                               Int_t n );
00077 
00078        const DbiResult* Query(const Context& vc, 
00079                               const Dbi::SubSite& subsite,
00080                               const Dbi::Task& task,
00081                               Bool_t findFullTimeWindow = true);
00082        const DbiResult* Query(const string& context, 
00083                               const Dbi::SubSite& subsite,
00084                               const Dbi::Task& task,
00085                               const string& data,
00086                               const string& fillOpts);
00087        const DbiResult* Query(UInt_t seqNo,UInt_t dbNo);
00088        const DbiResult* Query(const DbiValidityRec& vrec, 
00089                               Bool_t canReuse = kTRUE);
00090            TimeStamp QueryOverlayVersionDate(const DbiValidityRec& vrec,
00091                                              UInt_t dbNo,
00092                                              Bool_t timeStartFloored = kFALSE);
00093                    void RefreshMetaData(); 
00094                    void SetSqlCondition(const string& sql); 
00095                    void SetOverlayOffsetSeconds(UInt_t secs); 
00096                    UInt_t GetOverlayOffsetSeconds(); 
00097                  Bool_t TableExists() const { return fExists; }
00098 
00099 protected:
00100 
00101 // Constructors (protected because created and owned by DbiTableProxyRegistry).
00102            DbiTableProxy(DbiCascader* cascader, 
00103                          const string& tableName,
00104                          const string& vldSuffix,
00105                          const DbiTableRow* tableRow);
00106   virtual ~DbiTableProxy();
00107 
00108 // State testing member functions
00109 
00110 // State changing member functions
00111 
00112 private:
00113 
00114 // Disabled (not implemented) copy constructor and asignment.
00115 
00116  DbiTableProxy(const DbiTableProxy&);
00117  DbiTableProxy& operator=(const DbiTableProxy&);
00118   
00119 
00120 // Level 2 (disk) cache management.
00121  Bool_t CanReadL2Cache() const;
00122  Bool_t CanWriteL2Cache() const;
00123  Bool_t RestoreFromL2Cache(const DbiValidityRecBuilder& builder);
00124  Bool_t SaveToL2Cache(const string& name, DbiResult& res);
00125  
00126 // Data members (fMeta* must precede fDBProxy, it has to be created
00127 //               first - see initialiser list)
00128  
00129 
00131   DbiCascader* fCascader;
00132 
00134   DbiTableMetaData fMetaData;
00135  
00137   DbiTableMetaData fMetaValid;
00138 
00140    Bool_t fCanL2Cache;
00141 
00143   DbiCache* fCache;
00144 
00146   DbiDBProxy fDBProxy;
00147 
00149   Bool_t fExists;
00150 
00152 string  fTableName;
00153   
00155  DbiTableRow* fTableRow;
00156 
00158   UInt_t fOverlayOffsetSeconds ;
00159 
00160 // Removed: ClassDef(DbiTableProxy,0)        // Object to query a specific table.
00161 
00162 };
00163 
00164 
00165 #endif  // DBITABLEPROXY_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