TDbiSqlContext Class Reference

Concept: SQL corresponding to an Extended Context Query. More...

#include <TDbiSqlContext.hxx>

Inheritance diagram for TDbiSqlContext:
Inheritance graph
[legend]
Collaboration diagram for TDbiSqlContext:
Collaboration graph
[legend]

List of all members.

Public Types

enum  IntervalType {
  kBefore, kAfter, kMisses, kThroughout,
  kWithin, kOverlaps, kStarts, kEnds,
  kUndefined
}

Public Member Functions

 TDbiSqlContext (const std::string &ctxt="")
 TDbiSqlContext (IntervalType interval, TVldTimeStamp start, TVldTimeStamp end, DbiDetector::Detector_t det, DbiSimFlag::SimFlag_t sim)
virtual ~TDbiSqlContext ()
TVldTimeStamp GetTimeStart () const
TVldTimeStamp GetTimeEnd () const
DbiDetector::Detector_t GetDetector () const
DbiSimFlag::SimFlag_t GetSimFlag () const
const Char_t * c_str () const
const std::string & GetString () const
std::string & GetString ()
TDbiStringoperator<< (Int_t data)
TDbiStringoperator<< (UInt_t data)
TDbiStringoperator<< (Float_t data)
TDbiStringoperator<< (Char_t data)
TDbiStringoperator<< (const Char_t *data)
TDbiStringoperator<< (const std::string &data)
void Clear ()

Private Attributes

IntervalType fIntervalType
TVldTimeStamp fTimeStart
TVldTimeStamp fTimeEnd
DbiDetector::Detector_t fDetType
DbiSimFlag::SimFlag_t fSimType

Detailed Description

Concept: SQL corresponding to an Extended Context Query.

Purpose: To hide the SQL needed to query the VLD tables.

Definition at line 22 of file TDbiSqlContext.hxx.


Member Enumeration Documentation

Enumerator:
kBefore 
kAfter 
kMisses 
kThroughout 
kWithin 
kOverlaps 
kStarts 
kEnds 
kUndefined 

Definition at line 30 of file TDbiSqlContext.hxx.

00030                      { kBefore,      kAfter,    kMisses,
00031                        kThroughout,  kWithin,   kOverlaps,
00032                        kStarts,      kEnds,
00033                        kUndefined };


Constructor & Destructor Documentation

TDbiSqlContext::TDbiSqlContext ( const std::string &  ctxt = ""  ) 
TDbiSqlContext::TDbiSqlContext ( IntervalType  interval,
TVldTimeStamp  start,
TVldTimeStamp  end,
DbiDetector::Detector_t  det,
DbiSimFlag::SimFlag_t  sim 
)

Definition at line 38 of file TDbiSqlContext.cxx.

References TVldTimeStamp::AsString(), fDetType, fSimType, kAfter, kBefore, kEnds, kMisses, kOverlaps, kStarts, kThroughout, kWithin, and SK_DBI_Trace.

00042                                                       :
00043 fIntervalType(interval),
00044 fTimeStart(start),
00045 fTimeEnd(end),
00046 fDetType(det),
00047 fSimType(sim)
00048 {
00049 //
00050 //  Purpose:  Main constructor
00051 //
00052 //  Contact:   N. West
00053 //
00054 
00055 
00056   SK_DBI_Trace( "Creating TDbiSqlContext" << "  ");
00057 
00058   switch (interval) {
00059 
00060   case kBefore:
00061     (*this) <<     "TIMEEND <= \'"   << start.AsString("s") << '\'';
00062     break;
00063 
00064   case kAfter:
00065     (*this) <<     "TIMESTART >= \'" << end.AsString("s")   << '\'';
00066     break;
00067 
00068   case kMisses:
00069     (*this) <<     "TIMESTART >= \'" << end.AsString("s")   << '\''
00070             << " or TIMEEND <= \'"   << start.AsString("s") << '\'';
00071     break;
00072 
00073   case kThroughout:
00074     (*this) <<     "TIMESTART <= \'" << start.AsString("s") << '\''
00075             << " and TIMEEND >= \'"  << end.AsString("s")   << '\'';
00076     break;
00077 
00078   case kWithin:
00079     (*this) <<     "TIMESTART >= \'" << start.AsString("s") << '\''
00080             << " and TIMEEND <= \'"  << end.AsString("s")   << '\'';
00081     break;
00082 
00083   case kOverlaps:
00084     (*this) <<     "TIMESTART < \'"  << end.AsString("s")   << '\''
00085             << " and TIMEEND > \'"   << start.AsString("s") << '\'';
00086     break;
00087 
00088   case kStarts:
00089     (*this) <<     "TIMESTART >= \'" << start.AsString("s") << '\''
00090             << " and TIMESTART < \'" << end.AsString("s")   << '\'';
00091     break;
00092 
00093   case kEnds:
00094     (*this) <<     "TIMEEND > \'"    << start.AsString("s") << '\''
00095             << " and TIMEEND <=  \'" << end.AsString("s")   << '\'';
00096     break;
00097 
00098   default:
00099     (*this) << " 1 = 0 "; //An impossible condition (hopefully)
00100   }
00101 
00102   (*this) << " and DetectorMask & " << static_cast<unsigned int>(fDetType)
00103           << " and SimMask & "      << static_cast<unsigned int>(fSimType);
00104 }

Here is the call graph for this function:

TDbiSqlContext::~TDbiSqlContext (  )  [virtual]

Definition at line 109 of file TDbiSqlContext.cxx.

References SK_DBI_Trace.

00109                                 {
00110 //
00111 //
00112 //  Purpose: Destructor
00113 //
00114 //  Contact:   N. West
00115 //
00116 
00117 
00118   SK_DBI_Trace( "Destroying TDbiSqlContext" << "  ");
00119 
00120 }


Member Function Documentation

const Char_t* TDbiString::c_str (  )  const [inline, inherited]
void TDbiString::Clear (  )  [inline, inherited]

Definition at line 58 of file TDbiString.hxx.

References TDbiString::fString.

Referenced by TDbiCascader::ReserveNextSeqNo().

00058 { fString.clear(); }

Here is the caller graph for this function:

DbiDetector::Detector_t TDbiSqlContext::GetDetector (  )  const [inline]

Definition at line 49 of file TDbiSqlContext.hxx.

References fDetType.

00049 { return fDetType; }

DbiSimFlag::SimFlag_t TDbiSqlContext::GetSimFlag (  )  const [inline]

Definition at line 50 of file TDbiSqlContext.hxx.

References fSimType.

00050 { return fSimType; }

std::string& TDbiString::GetString (  )  [inline, inherited]

Definition at line 59 of file TDbiString.hxx.

References TDbiString::fString.

00059 { return fString; }

const std::string& TDbiString::GetString (  )  const [inline, inherited]

Definition at line 49 of file TDbiString.hxx.

References TDbiString::fString.

Referenced by TDbiDBProxy::QueryAllValidities(), TDbiDBProxy::RemoveSeqNo(), TDbiDBProxy::ReplaceSeqNo(), and TDbiTableMetaData::Sql().

00049 { return fString; }

Here is the caller graph for this function:

TVldTimeStamp TDbiSqlContext::GetTimeEnd (  )  const [inline]

Definition at line 48 of file TDbiSqlContext.hxx.

References fTimeEnd.

00048 { return fTimeEnd; }

TVldTimeStamp TDbiSqlContext::GetTimeStart (  )  const [inline]

Definition at line 47 of file TDbiSqlContext.hxx.

References fTimeStart.

00047 { return fTimeStart; }

TDbiString & TDbiString::operator<< ( const std::string &  data  )  [inherited]

Definition at line 158 of file TDbiString.cxx.

References TDbiString::fString.

00158                                                         {
00159                                fString.append(data); return *this; }

TDbiString & TDbiString::operator<< ( const Char_t *  data  )  [inherited]

Definition at line 156 of file TDbiString.cxx.

References TDbiString::fString.

00156                                                      {
00157                                fString.append(data); return *this; }

TDbiString & TDbiString::operator<< ( Char_t  data  )  [inherited]

Definition at line 154 of file TDbiString.cxx.

References TDbiString::fString.

00154                                               {
00155                              fString.append(1,data); return *this; }

TDbiString & TDbiString::operator<< ( Float_t  data  )  [inherited]

Definition at line 153 of file TDbiString.cxx.

References OUT.

00153 { OUT(Float_t,data) }

TDbiString & TDbiString::operator<< ( UInt_t  data  )  [inherited]

Definition at line 152 of file TDbiString.cxx.

References OUT.

00152 { OUT(UInt_t,data) }

TDbiString & TDbiString::operator<< ( Int_t  data  )  [inherited]

Definition at line 151 of file TDbiString.cxx.

References OUT.

00151 { OUT(Int_t,data) }


Member Data Documentation

Definition at line 62 of file TDbiSqlContext.hxx.

Referenced by GetDetector(), and TDbiSqlContext().

Definition at line 59 of file TDbiSqlContext.hxx.

Definition at line 63 of file TDbiSqlContext.hxx.

Referenced by GetSimFlag(), and TDbiSqlContext().

Definition at line 61 of file TDbiSqlContext.hxx.

Referenced by GetTimeEnd().

Definition at line 60 of file TDbiSqlContext.hxx.

Referenced by GetTimeStart().


The documentation for this class was generated from the following files:

Generated on 11 Aug 2013 for SKDatabase by  doxygen 1.6.1