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

In This Package:

DbiCtx.h

Go to the documentation of this file.
00001 #ifndef DBICTX_H
00002 #define DBICTX_H
00003 
00024 #include "DatabaseInterface/Dbi.h"
00025 #include "DatabaseInterface/DbiSqlContext.h"
00026 #include "DatabaseInterface/DbiValidityRec.h"
00027 #include "Context/Context.h"
00028 #include "Context/ContextRange.h"
00029 #include "Context/TimeStamp.h"
00030 
00031 #include <string>
00032 using namespace std ;
00033 
00034 class DbiCtx
00035 {
00036 public:
00037     DbiCtx();
00038     DbiCtx( const char* str );
00039 
00040     void SetDefaults();
00041     virtual ~DbiCtx();
00042 
00043     // update ctx based on string interpretation
00044     int Update( const char* str );
00045 
00046     DbiSqlContext* MakeIntervalContext( DbiSqlContext::IntervalType ity=DbiSqlContext::kWithin ); 
00047 
00048     // static converters from strings
00049     // these should be moved into Conventions/Context once working 
00050 
00051     static Dbi::AbortTest AbortTest_FromString( const char* str );
00052     static Dbi::Task      Task_FromString( const char* str );
00053     static Dbi::SubSite   SubSite_FromString( const char* str );
00054     static Bool_t         FindFullTimeWindow_FromString( const char* str );
00055     static TimeStamp      TimeStamp_FromString( const char* str );
00056     static int            SiteMask_FromString( const char* str );
00057     static int             SimMask_FromString( const char* str );
00058     static int             int_FromString( const char* str );
00059     static string          ObjName( const char* pfx, const char* cls );
00060 
00061 
00062    // accessors for contained context
00063 
00064     const Context& GetContext(){     return m_context ; }
00065     const TimeStamp& GetTimeStamp(){ return m_context.GetTimeStamp() ; }
00066     SimFlag::SimFlag_t GetSimFlag(){ return m_context.GetSimFlag() ; }
00067     Site::Site_t               GetSite(){       return m_context.GetSite() ; }
00068     DetectorId::DetectorId_t   GetDetectorId(){ return m_context.GetDetId() ; }
00069 
00070     void SetContext( const Context& context );
00071     void SetTimeStamp(const TimeStamp& ts);
00072     void SetSimFlag(SimFlag::SimFlag_t flag);
00073     void SetSite(Site::Site_t site);
00074     void SetDetectorId(DetectorId::DetectorId_t det);
00075 
00076    // accessors for direct data members
00077 
00078     Dbi::SubSite   GetSubSite(){ return m_subsite ; }
00079     Dbi::Task      GetTask(){     return m_task ; }
00080     Dbi::AbortTest GetAbortTest(){ return m_abortTest ; }
00081     Bool_t         GetFindFullTimeWindow(){ return m_findFullTimeWindow ; }
00082     
00083     void SetSubSite( Dbi::SubSite subsite   );
00084     void SetTask(    Dbi::Task task   );
00085     void SetAbortTest( Dbi::AbortTest abortTest );
00086     void SetFindFullTimeWindow( Bool_t findFullTimeWindow );
00087 
00088    // accessors for low-level and extended queries ... 
00089 
00090     void SetSeqNo( int seqNo ); 
00091     void SetDbNo( int dbNo );
00092     void SetSqlContext( const DbiSqlContext& sqlContext );
00093     void SetSqlContext( const string& ssqlContext );
00094     void SetDataSql( const string& dataSql );
00095     void SetDataFillOpts( const string& dataFillOpts );
00096     void SetValidityRec( const DbiValidityRec& validityRec );  
00097     void SetTableName( const string& tableName );  
00098     void SetDbName( const string& dbName );  
00099     void SetLogComment( const string& logComment );  
00100     void SetVersionDate( const TimeStamp& versionDate );  
00101 
00102     int   GetSeqNo(){ return m_seqNo ; }
00103     int   GetDbNo(){  return m_dbNo  ; }
00104     const DbiSqlContext& GetSqlContext(){ return m_sqlContext ; }
00105     const string& GetDataSql(){ return m_dataSql ; }
00106     const string& GetDataFillOpts(){ return m_dataFillOpts ; }
00107     const DbiValidityRec& GetValidityRec(){ return m_validityRec ; }
00108     const string& GetTableName(){ return m_tableName ; }
00109     const string& GetDbName(){ return m_dbName ; }  
00110     const string& GetLogComment(){ return m_logComment ; }
00111     const TimeStamp& GetVersionDate(){ return m_versionDate ; }  
00112 
00113 
00114    // accessors for contained context range  
00115    //    timestamp proliferation due to ContextRange implementation preventing returning references 
00116     
00117     const ContextRange& GetContextRange(){ return m_contextRange ; }
00118     TimeStamp GetTimeStart(){ return m_contextRange.GetTimeStart() ;  }
00119     TimeStamp GetTimeEnd(){   return m_contextRange.GetTimeEnd() ;  }
00120     int GetSiteMask(){               return m_contextRange.GetSiteMask() ; }
00121     int GetSimMask(){                return m_contextRange.GetSimMask() ; }
00122     int GetAggNo(){   return m_aggNo ; }
00123 
00124     void SetContextRange(const ContextRange& range);  // CAUTION : COLLECTIVE SETTER
00125     void SetTimeStart(const TimeStamp& tstart);
00126     void SetTimeEnd(const TimeStamp& tend);
00127     void SetSiteMask( int siteMask );
00128     void SetSimMask( int simMask );
00129     void SetAggNo( int aggNo );
00130 
00131     // masks for tracking use of the above  setters , changes and ctors used
00132 
00133 
00134     Bool_t IsSet(int mask); 
00135     Bool_t IsValid();   // mask comparisons to discern if associated object is uptodate  
00136     void LogMask( int needmask );
00137 
00138     int GetMask(){  return m_mask ; }           // settings (not necessarily changes)
00139     int GetUpdateMask(){  return m_update ; }   // changes
00140     int GetCtorMask(){  return m_ctor ; }   
00141     
00142     void SetMask(int mask){ m_mask = mask ; }
00143     void SetUpdateMask(int mask){ m_update = mask ; }
00144     void SetCtorMask(int mask){ m_ctor = mask ; }
00145 
00146 
00147     void RegisterCreation( const char* msg );
00148     void RegisterFail( const char* msg );
00149 
00150     const char* AsString();
00151     static const char* MaskAsString(int msk );
00152 
00153 private:
00154     string           m_class ;
00155 
00156     Context          m_context ;
00157     Dbi::SubSite     m_subsite ;
00158     Dbi::Task        m_task ;
00159     Dbi::AbortTest   m_abortTest ;
00160     Bool_t           m_findFullTimeWindow ; 
00161 
00162     ContextRange     m_contextRange ;
00163     int              m_aggNo ;
00164     int              m_seqNo ;
00165     int              m_dbNo  ;
00166 
00167     DbiSqlContext    m_sqlContext ;
00168     string           m_dataSql ;
00169     string           m_dataFillOpts ;
00170     DbiValidityRec   m_validityRec ;
00171     string           m_tableName ;
00172     string           m_dbName ;
00173     string           m_logComment ;
00174     TimeStamp        m_versionDate ;
00175 
00176     // masks for settings/updates/ctor  
00177     int              m_mask ;
00178     int              m_update ;
00179     int              m_ctor ;
00180 
00181 };
00182 
00183 #endif  // DBICTX_H
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:17:17 2011 for DybDbi by doxygen 1.4.7