TDbiResultSetNonAgg Class Reference

Concept ResultNonAgg is a concrete sub-class of TDbiResultSet that represents a single database query for a non-aggregated table. More...

#include <TDbiResultSetNonAgg.hxx>

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

List of all members.

Public Member Functions

 TDbiResultSetNonAgg (TDbiInRowStream *resultSet=0, const TDbiTableRow *tableRow=0, const TDbiValidityRec *vrec=0, Bool_t dropSeqNo=kTRUE, const string &sqlQualifiers="")
virtual ~TDbiResultSetNonAgg ()
virtual TDbiResultKeyCreateKey () const
 Purpose: Create a key that corresponds to this result.
virtual UInt_t GetNumAggregates () const
virtual UInt_t GetNumRows () const
virtual const TDbiTableRowGetTableRow (UInt_t rowNum) const
virtual const TDbiTableRowGetTableRowByIndex (UInt_t index) const
virtual Bool_t Owns (const TDbiTableRow *row) const
Bool_t Satisfies (const TDbiValidityRec &vrec, const string &sqlQualifiers="")
 Purpose: Check to see if this Result matches the supplied TDbiValidityRec.
virtual void Streamer (TDbiBinaryFile &file)
virtual Bool_t CanReuse () const
virtual Bool_t CanSave () const
virtual void Connect () const
virtual void Disconnect () const
const TDbiExceptionLogGetExceptionLog () const
Int_t GetID () const
virtual const TDbiResultKeyGetKey () const
virtual UInt_t GetNumClients () const
const string & GetSqlQualifiers () const
virtual const TDbiValidityRecGetValidityRec (const TDbiTableRow *=0) const
virtual const TDbiValidityRecGetValidityRecGlobal () const
Bool_t IsExtendedContext () const
Bool_t ResultsFromDb () const
virtual const string & TableName () const
void CaptureExceptionLog (UInt_t startFrom)
virtual Bool_t CanDelete (const TDbiResultSet *res=0)
 Return true if no clients and unlikely to be reused.
virtual Bool_t Satisfies (const TVldContext &vc, const TDbi::Task &task)
virtual Bool_t Satisfies (const string &)
virtual void GenerateKey ()
 Key handling.
virtual void SetCanReuse (Bool_t reuse)

Protected Member Functions

void SetResultsFromDb ()
void BuildLookUpTable () const
Bool_t LookUpBuilt () const
virtual void SetTableName (const string &tableName)
virtual void SetValidityRec (const TDbiValidityRec &vRec)

Private Member Functions

void DebugCtor () const

Private Attributes

std::vector< TDbiTableRow * > fRows
 Set of table rows eqv. to ResultSet.
char * fBuffer
 Not null only if table rows read from BinaryFile.

Detailed Description

Concept ResultNonAgg is a concrete sub-class of TDbiResultSet that represents a single database query for a non-aggregated table.

Purpose See TDbiResultSet.

Contact: A.Finch@lancaster.ac.uk

Definition at line 35 of file TDbiResultSetNonAgg.hxx.


Constructor & Destructor Documentation

TDbiResultSetNonAgg::TDbiResultSetNonAgg ( TDbiInRowStream resultSet = 0,
const TDbiTableRow tableRow = 0,
const TDbiValidityRec vrec = 0,
Bool_t  dropSeqNo = kTRUE,
const string &  sqlQualifiers = "" 
)
TDbiResultSetNonAgg::~TDbiResultSetNonAgg (  )  [virtual]
     Purpose: Destructor
   
     Arguments:
       None.
   
     Return:    n/a
   
     Contact:   N. West
   
     Specification:-
     =============
   
     o  Destroy ResultNonAgg and all its owned TDbiTableRow subclass
        objects.
   
   
     Program Notes:-
     =============
   
     If fRows restored from BinaryFile then it doesn't own its
     TDbiTableRows.
   

Definition at line 159 of file TDbiResultSetNonAgg.cxx.

References fBuffer, fRows, and SK_DBI_Trace.

00159                                           {
00160 
00161 
00162   SK_DBI_Trace( "Destroying TDbiResultSetNonAgg."  << "  ");
00163 
00164   if ( ! fBuffer ) for ( vector<TDbiTableRow*>::iterator itr = fRows.begin();
00165         itr != fRows.end();
00166         ++itr) delete *itr;
00167   else {
00168     delete [] fBuffer;
00169     fBuffer = 0;
00170   }
00171 }


Member Function Documentation

void TDbiResultSet::BuildLookUpTable (  )  const [protected, inherited]

Definition at line 133 of file TDbiResultSet.cxx.

References TDbiResultSet::fIndexKeys, TDbiTableRow::GetAggregateNo(), TDbiTableRow::GetIndex(), TDbiResultSet::GetNumRows(), TDbiTableRow::GetOwner(), TDbiValidityRec::GetSeqNo(), TDbiResultSet::GetTableRow(), TDbiResultSet::GetTableRowByIndex(), TDbiResultSet::GetValidityRec(), TDbiResultSet::IsExtendedContext(), SK_DBI_Severe, SK_DBI_Verbose, and TDbiResultSet::TableName().

Referenced by GetTableRowByIndex(), and Streamer().

00133                                            {
00134 //
00135 //
00136 //  Purpose:  Build look-up Natural Index -> TableRow.
00137 //
00138 //  Contact:   N. West
00139 //
00140 //  Program Notes:-
00141 //  =============
00142 //
00143 //  This member function assumes that the sub-class can support
00144 //  the GetTableRow(...) and GetNumRows methods so take care if
00145 //  called in the sub-class ctor.
00146 
00147 //  Extended Context serach can produce duplicates.
00148   Bool_t duplicatesOK = this->IsExtendedContext();
00149 
00150   SK_DBI_Verbose( "Building look-uptable. Allow duplicates: "
00151                             << duplicatesOK << "  ");
00152 
00153   for ( Int_t rowNo = this->GetNumRows()-1;
00154         rowNo >= 0;
00155         --rowNo ) {
00156     const TDbiTableRow* row  = this->GetTableRow(rowNo);
00157     UInt_t index            = row->GetIndex(rowNo);
00158 //  Ensure we use this class's GetTableRowByIndex, the method is
00159 //  virtual but if the subclass has called this method then it must
00160 //  be the right one to use. [Actually TDbiResultSetAgg overrides
00161 //  GetTableRowByIndex, but only to make building lazy].
00162     const TDbiTableRow* row2 = this->TDbiResultSet::GetTableRowByIndex(index);
00163 
00164     SK_DBI_Verbose(  "Look-up. Row no " << rowNo
00165           << " index " << index
00166           << " row,row2 " << (void*) row << "," << (void*) row2 << "  ");
00167 
00168     if ( row2 != 0 && row2 != row && ! duplicatesOK ) {
00169       std::ostringstream msg;
00170       msg << "Duplicated row natural index: " << index
00171           << " Found at row " <<  rowNo
00172           << " of table " <<  this->TableName()
00173           << ":-\n     index of agg " <<  row->GetAggregateNo();
00174       if ( row->GetOwner() ) msg << "(SEQNO " << row->GetOwner()->GetValidityRec(row).GetSeqNo() << ")";
00175       msg << " matches agg " <<  row2->GetAggregateNo();
00176       if ( row2->GetOwner() ) msg << "(SEQNO " << row2->GetOwner()->GetValidityRec(row2).GetSeqNo() << ")";
00177          SK_DBI_Severe( msg.str() << "  ");
00178    }
00179 
00180     else  fIndexKeys[index] = row;
00181   }
00182 
00183 }

Here is the call graph for this function:

Here is the caller graph for this function:

Bool_t TDbiResultSet::CanDelete ( const TDbiResultSet res = 0  )  [virtual, inherited]

Return true if no clients and unlikely to be reused.

Definition at line 187 of file TDbiResultSet.cxx.

References TDbiResultSet::CanReuse(), TDbiResultSet::GetNumClients(), TDbiResultSet::GetValidityRec(), and TDbiResultSet::SetCanReuse().

Referenced by TDbiCache::Purge().

00187                                                         {
00188 //
00189 //
00190 //  Purpose:  See if suitable for deleting.
00191 //
00192 //  Arguments:
00193 //    res          in    A TDbiResultSet that is currently used.
00194 //                       Optional: default = 0.
00195 
00196 //  If the query would be satisfied apart from the date, then
00197 //  assume we have moved out of the validity window, never
00198 //  to return!
00199 
00200   if (     res
00201         && this->CanReuse()
00202         && this->GetValidityRec().HasExpired(res->GetValidityRec())
00203      )  this->SetCanReuse(kFALSE);
00204 
00205   return ! this->GetNumClients() && ! this->CanReuse();
00206 }

Here is the call graph for this function:

Here is the caller graph for this function:

virtual Bool_t TDbiResultSet::CanReuse (  )  const [inline, virtual, inherited]

Definition at line 62 of file TDbiResultSet.hxx.

References TDbiResultSet::fCanReuse.

Referenced by TDbiResultSet::CanDelete(), Satisfies(), TDbiResultSetAgg::Satisfies(), and TDbiResultSet::Satisfies().

00062 { return fCanReuse; }

Here is the caller graph for this function:

virtual Bool_t TDbiResultSet::CanSave (  )  const [inline, virtual, inherited]

Definition at line 63 of file TDbiResultSet.hxx.

Referenced by TDbiTableProxy::SaveToL2Cache().

00063 { return kTRUE; }

Here is the caller graph for this function:

void TDbiResultSet::CaptureExceptionLog ( UInt_t  startFrom  )  [inherited]

Definition at line 210 of file TDbiResultSet.cxx.

References TDbiExceptionLog::Clear(), TDbiExceptionLog::Copy(), TDbiResultSet::fExceptionLog, and TDbiExceptionLog::GetGELog().

Referenced by TDbiTableProxy::Query().

00210                                                         {
00211 //
00212 //
00213 //  Purpose: Capture Exception Log from latest entries in Global Exception Log.
00214 
00215   fExceptionLog.Clear();
00216   TDbiExceptionLog::GetGELog().Copy(fExceptionLog,startFrom);
00217 
00218 }

Here is the call graph for this function:

Here is the caller graph for this function:

virtual void TDbiResultSet::Connect (  )  const [inline, virtual, inherited]

Definition at line 64 of file TDbiResultSet.hxx.

References TDbiResultSet::fNumClients.

00064 { ++fNumClients; }

TDbiResultKey * TDbiResultSetNonAgg::CreateKey (  )  const [virtual]

Purpose: Create a key that corresponds to this result.

Implements TDbiResultSet.

Definition at line 174 of file TDbiResultSetNonAgg.cxx.

References TDbiValidityRec::GetCreationDate(), TDbiValidityRec::GetSeqNo(), GetTableRow(), TDbiResultSet::GetValidityRec(), and TDbiResultSet::TableName().

00174                                                     {
00175 //
00176 //
00177 
00178 
00179 
00180   string rowName("empty_table");
00181   const TDbiTableRow* row = this->GetTableRow(0);
00182   if ( row ) rowName = row->GetName();
00183   const TDbiValidityRec& vrec = this->GetValidityRec();
00184   return new TDbiResultKey(this->TableName(),
00185                           rowName,
00186                           vrec.GetSeqNo(),
00187                           vrec.GetCreationDate() );
00188 
00189 }

Here is the call graph for this function:

void TDbiResultSetNonAgg::DebugCtor (  )  const [private]

Definition at line 193 of file TDbiResultSetNonAgg.cxx.

References SK_DBI_Trace.

00193                                           {
00194 
00195   SK_DBI_Trace( "Creating TDbiResultSetNonAgg" << (void*) this << "  ");
00196   static const TDbiResultSetNonAgg* that = 0;
00197   if ( this == that ) {
00198     cout << "debug " << (void*) this << endl;
00199   }
00200 }

virtual void TDbiResultSet::Disconnect (  )  const [inline, virtual, inherited]

Definition at line 66 of file TDbiResultSet.hxx.

References TDbiResultSet::fNumClients.

00066 { --fNumClients; }

void TDbiResultSet::GenerateKey (  )  [virtual, inherited]

Key handling.

Definition at line 222 of file TDbiResultSet.cxx.

References TDbiResultSet::CreateKey(), TDbiResultSet::fKey, and TDbiResultSet::GetNumRows().

Referenced by TDbiCache::Adopt().

00222                                 {
00223 //
00224 //
00225 //  Purpose: Create key if set not empty and not already done.
00226 
00227   if ( fKey || this->GetNumRows() == 0) return;
00228   fKey = this->CreateKey();
00229 
00230 }

Here is the call graph for this function:

Here is the caller graph for this function:

const TDbiExceptionLog& TDbiResultSet::GetExceptionLog (  )  const [inline, inherited]

Definition at line 67 of file TDbiResultSet.hxx.

References TDbiResultSet::fExceptionLog.

00067 { return fExceptionLog; }

Int_t TDbiResultSet::GetID (  )  const [inline, inherited]

Definition at line 68 of file TDbiResultSet.hxx.

References TDbiResultSet::fID.

00068 { return fID; }

const TDbiResultKey * TDbiResultSet::GetKey (  )  const [virtual, inherited]

Definition at line 234 of file TDbiResultSet.cxx.

References TDbiResultSet::fKey, and TDbiResultKey::GetEmptyKey().

Referenced by TDbiCache::Adopt().

00234                                                  {
00235 
00236 //  Purpose:  Get the associated TDbiResultKey, or an empty one if none exists.
00237 
00238   return fKey ? fKey : TDbiResultKey::GetEmptyKey();
00239 
00240 }

Here is the call graph for this function:

Here is the caller graph for this function:

virtual UInt_t TDbiResultSetNonAgg::GetNumAggregates (  )  const [inline, virtual]

Implements TDbiResultSet.

Definition at line 57 of file TDbiResultSetNonAgg.hxx.

00057 { return 1; }

virtual UInt_t TDbiResultSet::GetNumClients (  )  const [inline, virtual, inherited]

Definition at line 71 of file TDbiResultSet.hxx.

References TDbiResultSet::fNumClients.

Referenced by TDbiResultSet::CanDelete(), TDbiCache::Purge(), and TDbiResultSet::Satisfies().

00071                                                      {
00072                                                    return fNumClients; }

Here is the caller graph for this function:

virtual UInt_t TDbiResultSetNonAgg::GetNumRows (  )  const [inline, virtual]

Implements TDbiResultSet.

Definition at line 58 of file TDbiResultSetNonAgg.hxx.

References fRows.

Referenced by ClassImp(), TDbiTableProxy::Query(), and TDbiValidityRecBuilder::TDbiValidityRecBuilder().

00058                                                   {
00059                                                   return fRows.size(); }

Here is the caller graph for this function:

const string& TDbiResultSet::GetSqlQualifiers (  )  const [inline, inherited]

Definition at line 74 of file TDbiResultSet.hxx.

References TDbiResultSet::fSqlQualifiers.

Referenced by TDbiResultSet::IsExtendedContext(), Satisfies(), and TDbiResultSetAgg::Satisfies().

00074 { return fSqlQualifiers; }

Here is the caller graph for this function:

const TDbiTableRow * TDbiResultSetNonAgg::GetTableRow ( UInt_t  rowNum  )  const [virtual]
   
     Purpose:  Return TableRow from last query.
   
     Arguments:
       rowNum      in    Required row number (0..NumRows-1)
   
     Return:    TableRow ptr, or =0 if no row.
   
     Contact:   N. West
   
     Specification:-
     =============
   
     o Return TableRow from last query, or =0 if no row.
   

Implements TDbiResultSet.

Definition at line 218 of file TDbiResultSetNonAgg.cxx.

References fRows.

Referenced by ClassImp(), CreateKey(), TDbiTableProxy::Query(), and TDbiValidityRecBuilder::TDbiValidityRecBuilder().

00218                                                                         {
00219 
00220 //  Program Notes:-
00221 //  =============
00222 
00223 //  None.
00224 
00225   if ( rowNum >= fRows.size() ) return 0;
00226   return fRows[rowNum];
00227 }

Here is the caller graph for this function:

const TDbiTableRow * TDbiResultSetNonAgg::GetTableRowByIndex ( UInt_t  index  )  const [virtual]
   
     Purpose: Return TableRow with supplied index, or =0 if no row.
   
     Arguments:
       index        in    Required index.
   
     Return:    TableRow with required index, or =0 if no row.
   
     Contact:   N. West
   
     Specification:-
     =============
   
     o If look-up table not yet built, build it.
   
     o Return TableRow with supplied index, or =0 if no row.
   

Reimplemented from TDbiResultSet.

Definition at line 248 of file TDbiResultSetNonAgg.cxx.

References TDbiResultSet::BuildLookUpTable(), and TDbiResultSet::LookUpBuilt().

00248                                                                               {
00249 
00250 
00251   if ( ! this->LookUpBuilt() ) this->BuildLookUpTable();
00252 
00253 // The real look-up still takes place in the base class.
00254   return this->TDbiResultSet::GetTableRowByIndex(index);
00255 
00256 }

Here is the call graph for this function:

virtual const TDbiValidityRec& TDbiResultSet::GetValidityRec ( const TDbiTableRow = 0  )  const [inline, virtual, inherited]

Reimplemented in TDbiResultSetAgg.

Definition at line 77 of file TDbiResultSet.hxx.

References TDbiResultSet::GetValidityRecGlobal().

Referenced by TDbiCache::Adopt(), TDbiResultSet::BuildLookUpTable(), TDbiResultSet::CanDelete(), CreateKey(), TDbiResultSetAgg::CreateKey(), TDbiCache::Purge(), TDbiTableProxy::RestoreFromL2Cache(), Satisfies(), and TDbiResultSet::Satisfies().

00078                                                                            {
00079                                         return GetValidityRecGlobal(); }

Here is the call graph for this function:

Here is the caller graph for this function:

virtual const TDbiValidityRec& TDbiResultSet::GetValidityRecGlobal (  )  const [inline, virtual, inherited]

Definition at line 80 of file TDbiResultSet.hxx.

References TDbiResultSet::fEffVRec.

Referenced by TDbiCache::Adopt(), TDbiResultSetAgg::GetValidityRec(), TDbiResultSet::GetValidityRec(), and TDbiResultSetAgg::Streamer().

00080                                                              {
00081                                                       return fEffVRec; }

Here is the caller graph for this function:

Bool_t TDbiResultSet::IsExtendedContext (  )  const [inline, inherited]

Definition at line 82 of file TDbiResultSet.hxx.

References TDbiResultSet::GetSqlQualifiers().

Referenced by TDbiResultSet::BuildLookUpTable(), and TDbiResultSet::Satisfies().

00082                                                          {
00083                                        return this->GetSqlQualifiers() != ""; }

Here is the call graph for this function:

Here is the caller graph for this function:

Bool_t TDbiResultSet::LookUpBuilt (  )  const [inline, protected, inherited]

Definition at line 116 of file TDbiResultSet.hxx.

References TDbiResultSet::fIndexKeys.

Referenced by GetTableRowByIndex().

00116 { return fIndexKeys.size() > 0; }

Here is the caller graph for this function:

Bool_t TDbiResultSetNonAgg::Owns ( const TDbiTableRow row  )  const [virtual]
     Purpose:  Return true if owns row.
   
   
     Program Notes:-
     =============
   
     Only TDbiResultSetNonAggs own rows; the base class TDbiResultSet supplies
     the default method that returns false.
   

Reimplemented from TDbiResultSet.

Definition at line 269 of file TDbiResultSetNonAgg.cxx.

References fRows.

00269                                                                {
00270 
00271  vector<TDbiTableRow*>::const_iterator itr    = fRows.begin();
00272  vector<TDbiTableRow*>::const_iterator itrEnd = fRows.end();
00273 
00274  for (; itr != itrEnd; ++itr) if ( *itr == row ) return kTRUE;
00275 
00276  return kFALSE;
00277 
00278 
00279 }

Bool_t TDbiResultSet::ResultsFromDb (  )  const [inline, inherited]

Definition at line 85 of file TDbiResultSet.hxx.

References TDbiResultSet::fResultsFromDb.

Referenced by TDbiTableProxy::SaveToL2Cache().

00085 { return fResultsFromDb; }

Here is the caller graph for this function:

virtual Bool_t TDbiResultSet::Satisfies ( const string &   )  [inline, virtual, inherited]

Not all TDbiResultSet classes can satisfy these types of query so those that do must override.

Reimplemented in TDbiResultSetAgg.

Definition at line 100 of file TDbiResultSet.hxx.

00100 {return kFALSE;}

Bool_t TDbiResultSet::Satisfies ( const TVldContext vc,
const TDbi::Task task 
) [virtual, inherited]

All TDbiResultSet classes can satisfy this type of primary query so impliment here.

Definition at line 261 of file TDbiResultSet.cxx.

References TDbiResultSet::CanReuse(), TDbiResultSet::GetNumClients(), TDbiResultSet::GetValidityRec(), TDbiValidityRec::HasExpired(), TDbiValidityRec::IsCompatible(), TDbiResultSet::IsExtendedContext(), TDbiResultSet::SetCanReuse(), and SK_DBI_Debug.

Referenced by TDbiCache::Search().

00262                                                   {
00263 //
00264 //
00265 //  Purpose:  Check to see if this Result satisfies specific context query.
00266 //
00267 //  Arguments:
00268 //    vc           in    Context of query
00269 //    task         in    Task of query
00270 //
00271 //  Return:    kTRUE if can satisfy query.
00272 //
00273 //  Contact:   N. West
00274 //
00275 //  Program Notes:-
00276 //  =============
00277 
00278 //  If it cannot satisfy the query in a way that suggests
00279 //  that its unlikely that it will satisfy future queries
00280 //  then mark as cannot reuse so that it becomes eligible
00281 //  for purging.
00282 
00283 // Extended Context queries cannot satisfy specific context queries.
00284 
00285   Bool_t isExtendedContext = this->IsExtendedContext();
00286   Bool_t canReuse          = this->CanReuse();
00287   Bool_t isCompatible      = this->GetValidityRec().IsCompatible(vc,task);
00288   Bool_t hasExpired        = this->GetValidityRec().HasExpired(vc,task);
00289   UInt_t numClients        = this->GetNumClients();
00290   SK_DBI_Debug(  "    Checking result with TDbiValidityRec:- \n      " << this->GetValidityRec()
00291     << "  With extended context: " << isExtendedContext
00292     << " CanReuse: " << canReuse
00293     << " Is Compatible: " << isCompatible
00294     << " HasExpired: " <<  hasExpired
00295     << " number of clients: " << numClients
00296     << "  ");
00297 
00298   if ( isExtendedContext ) return kFALSE;
00299 
00300   if ( canReuse && isCompatible )  return kTRUE;
00301 
00302 //  If the query would be satisfied apart from the date, then
00303 //  assume we have moved out of the validity window, never
00304 //  to return!
00305 
00306   if ( canReuse && hasExpired && numClients == 0 )  {
00307     SK_DBI_Debug( "    Marking result as not reusable" << "  ");
00308    this-> SetCanReuse(kFALSE);
00309   }
00310 
00311   return kFALSE;
00312 
00313 }

Here is the call graph for this function:

Here is the caller graph for this function:

Bool_t TDbiResultSetNonAgg::Satisfies ( const TDbiValidityRec vrec,
const string &  sqlQualifiers = "" 
) [virtual]

Purpose: Check to see if this Result matches the supplied TDbiValidityRec.

Reimplemented from TDbiResultSet.

Definition at line 283 of file TDbiResultSetNonAgg.cxx.

References TDbiResultSet::CanReuse(), TDbiValidityRec::GetCreationDate(), TDbiValidityRec::GetSeqNo(), TDbiResultSet::GetSqlQualifiers(), TDbiResultSet::GetValidityRec(), and SK_DBI_Debug.

00284                                                                {
00285 //
00286 //
00287 
00288 
00289   SK_DBI_Debug(  "Trying to satisfy: Vrec " << vrec << " SQL: " << sqlQualifiers
00290     << "\n with CanReuse: " << this->CanReuse()
00291     << " vrec: " << this->GetValidityRec()
00292     << " sqlQualifiers: " << this->GetSqlQualifiers()
00293     << "  ");
00294 
00295   if ( this->CanReuse() ) {
00296     const TDbiValidityRec& this_vrec = this->GetValidityRec();
00297     if (    sqlQualifiers           == this->GetSqlQualifiers()
00298          && vrec.GetSeqNo()         == this_vrec.GetSeqNo()
00299          && vrec.GetCreationDate()  == this_vrec.GetCreationDate()
00300        )  return kTRUE;
00301   }
00302 
00303   return kFALSE;
00304 
00305 }

Here is the call graph for this function:

virtual void TDbiResultSet::SetCanReuse ( Bool_t  reuse  )  [inline, virtual, inherited]

Definition at line 108 of file TDbiResultSet.hxx.

References TDbiResultSet::fCanReuse.

Referenced by TDbiResultSet::CanDelete(), TDbiTableProxy::Query(), and TDbiResultSet::Satisfies().

00108 { fCanReuse = reuse ; }

Here is the caller graph for this function:

void TDbiResultSet::SetResultsFromDb (  )  [inline, protected, inherited]

Definition at line 111 of file TDbiResultSet.hxx.

References TDbiResultSet::fResultsFromDb.

00111 { fResultsFromDb = kTRUE; }

virtual void TDbiResultSet::SetTableName ( const string &  tableName  )  [inline, protected, virtual, inherited]

Definition at line 120 of file TDbiResultSet.hxx.

References TDbiResultSet::fTableName.

00120                                                      {
00121                                                fTableName = tableName; }

virtual void TDbiResultSet::SetValidityRec ( const TDbiValidityRec vRec  )  [inline, protected, virtual, inherited]

Definition at line 122 of file TDbiResultSet.hxx.

References TDbiResultSet::fEffVRec.

00122                                                            {
00123                                                       fEffVRec = vRec; }

void TDbiResultSetNonAgg::Streamer ( TDbiBinaryFile file  )  [virtual]
   
     Purpose:  I/O to binary file
   
     Program Notes:-
     =============
     Do I/O for base class TDbiResultSet first.  Rebuild fIndexKeys on input.
   

Reimplemented from TDbiResultSet.

Definition at line 316 of file TDbiResultSetNonAgg.cxx.

References TDbiResultSet::BuildLookUpTable(), fBuffer, fRows, TDbiBinaryFile::IsReading(), TDbiBinaryFile::IsWriting(), TDbiBinaryFile::ReleaseArrayBuffer(), and SK_DBI_Debug.

00316                                                        {
00317 
00318   if ( file.IsReading() ) {
00319     this->TDbiResultSet::Streamer(file);
00320     SK_DBI_Debug( "    Restoring TDbiResultSetNonAgg ..." << "  ");
00321     file >> fRows;
00322 //  Take ownership of the memory holding the array.
00323     fBuffer = file.ReleaseArrayBuffer();
00324     this->BuildLookUpTable();
00325     SK_DBI_Debug( "    Restored TDbiResultSetNonAgg. Size:"
00326                             << fRows.size() << " rows" << "  ");
00327   }
00328   else if ( file.IsWriting() ) {
00329     this->TDbiResultSet::Streamer(file);
00330     SK_DBI_Debug( "    Saving TDbiResultSetNonAgg. Size:"
00331                             << fRows.size() << " rows" << "  ");
00332     file << fRows;
00333   }
00334 }

Here is the call graph for this function:

virtual const string& TDbiResultSet::TableName (  )  const [inline, virtual, inherited]

Definition at line 86 of file TDbiResultSet.hxx.

References TDbiResultSet::fTableName.

Referenced by TDbiCache::Adopt(), TDbiResultSet::BuildLookUpTable(), CreateKey(), TDbiValRecSet::GetTableName(), and TDbiCache::Purge().

00086 { return fTableName; }

Here is the caller graph for this function:


Member Data Documentation

Not null only if table rows read from BinaryFile.

Definition at line 80 of file TDbiResultSetNonAgg.hxx.

Referenced by Streamer(), and ~TDbiResultSetNonAgg().

std::vector<TDbiTableRow*> TDbiResultSetNonAgg::fRows [private]

Set of table rows eqv. to ResultSet.

Definition at line 77 of file TDbiResultSetNonAgg.hxx.

Referenced by GetNumRows(), GetTableRow(), Owns(), Streamer(), and ~TDbiResultSetNonAgg().


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

Generated on 11 Aug 2013 for SKDatabase by  doxygen 1.6.1