Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

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 "Validity/VldContext.h"
00034 #include "Validity/VldTimeStamp.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->ClassName() : "Unknown";}
00058                  string GetTableName() const { return fTableName;}
00059 // State changing member functions
00060               DbiCache* GetCache() { return fCache;}
00061        const DbiResult* Query(const VldContext& vc, 
00062                               const Dbi::Task& task,
00063                               Bool_t findFullTimeWindow = true);
00064        const DbiResult* Query(const string& context, 
00065                               const Dbi::Task& task,
00066                               const string& data,
00067                               const string& fillOpts);
00068        const DbiResult* Query(UInt_t seqNo,UInt_t dbNo);
00069        const DbiResult* Query(const DbiValidityRec& vrec, 
00070                               Bool_t canReuse = kTRUE);
00071            VldTimeStamp QueryOverlayCreationDate(const DbiValidityRec& vrec,
00072                                                  UInt_t dbNo);
00073                    void RefreshMetaData(); 
00074                    void SetSqlCondition(const string& sql); 
00075                  Bool_t TableExists() const { return fExists; }
00076 
00077 protected:
00078 
00079 // Constructors (protected because created and owned by DbiTableProxyRegistry).
00080            DbiTableProxy(DbiCascader* cascader, 
00081                          const string& tableName,
00082                          const string& vldSuffix,
00083                          const DbiTableRow* tableRow);
00084   virtual ~DbiTableProxy();
00085 
00086 // State testing member functions
00087 
00088 // State changing member functions
00089 
00090 private:
00091 
00092 // Disabled (not implemented) copy constructor and asignment.
00093 
00094  DbiTableProxy(const DbiTableProxy&);
00095  DbiTableProxy& operator=(const DbiTableProxy&);
00096   
00097 
00098 // Level 2 (disk) cache management.
00099  Bool_t CanReadL2Cache() const;
00100  Bool_t CanWriteL2Cache() const;
00101  Bool_t RestoreFromL2Cache(const DbiValidityRecBuilder& builder);
00102  Bool_t SaveToL2Cache(const string& name, DbiResult& res);
00103  
00104 // Data members (fMeta* must precede fDBProxy, it has to be created
00105 //               first - see initialiser list)
00106  
00107 
00109   DbiCascader* fCascader;
00110 
00112   DbiTableMetaData fMetaData;
00113  
00115   DbiTableMetaData fMetaValid;
00116 
00118    Bool_t fCanL2Cache;
00119 
00121   DbiCache* fCache;
00122 
00124   DbiDBProxy fDBProxy;
00125 
00127   Bool_t fExists;
00128 
00130 string  fTableName;
00131   
00133  DbiTableRow* fTableRow;
00134 
00135 ClassDef(DbiTableProxy,0)        // Object to query a specific table.
00136 
00137 };
00138 
00139 
00140 #endif  // DBITABLEPROXY_H

Generated on Mon Feb 15 11:06:35 2010 for loon by  doxygen 1.3.9.1