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

SpillTimeND.cxx

Go to the documentation of this file.
00001 
00002 
00003 #include "SpillTimeND.h"
00004 #include "MessageService/MsgService.h"
00005 #include "DatabaseInterface/DbiOutRowStream.h"
00006 #include "DatabaseInterface/DbiResultSet.h"
00007 #include "DatabaseInterface/DbiValidityRec.h"
00008 
00009 
00010 ClassImp(SpillTimeND)
00011 
00012 CVSID( "$Id: SpillTimeND.cxx,v 1.4 2007/03/01 17:02:25 rhatcher Exp $" );
00013 
00014 //  Instantiate associated Result Pointer class.
00015 //  *******************************************
00016 
00017 #include "DatabaseInterface/DbiResultPtr.tpl"
00018 template class  DbiResultPtr<SpillTimeND>;
00019 
00020 #include "DatabaseInterface/DbiWriter.tpl"
00021 template class  DbiWriter<SpillTimeND>;
00022 
00023 // Definition of member functions (alphabetical order)
00024 // ***************************************************
00025 
00026 
00027 //.....................................................................
00028 
00029 void SpillTimeND::Fill(DbiResultSet& rs, 
00030                               const DbiValidityRec* /* vrec */) {
00031 
00032 //
00033 //
00034 //  Purpose:  Fill object from Result Set
00035 //
00036 //  Arguments: 
00037 //    rs           in    Result Set used to fill object
00038 //    vrec         in    Associated validity record (or 0 if filling
00039 //                                                    DbiValidityRec)
00040 //
00041 //  o Fill object from current row of Result Set.
00042 
00043 //  Program Notes:-
00044 //  =============
00045 
00046 //  This method demonstrates both the "dumb" fill method (just
00047 //  load the data as it comes) and the smart method (check column
00048 //  name and load according to column order). 
00049 
00050    if ( rs.TableName() == "SPILLTIMEND" ) {
00051       // Dumb method.
00052      rs  >> fSecond >> fNanoSec;
00053    }
00054 
00055    else {
00056       
00057       // Smart method
00058       Int_t numCol = rs.NumCols();
00059       //  The first column (SeqNo) has already been processed.
00060       for (Int_t curCol = rs.HasRowCounter() ? 3 : 2; curCol <= numCol; ++curCol) {
00061          string colName = rs.CurColName();
00062               if( colName == "SECOND" )  rs >> fSecond;
00063          else if( colName == "NANOSEC" ) rs >> fNanoSec;
00064          else {
00065            MSG("Dbi",Msg::kDebug) << "Ignoring column " << curCol 
00066                                   << "(" << colName << ")"
00067                                   << "; not part of SpillTimeND" 
00068                                   << endl;
00069            rs.IncrementCurCol();
00070          }
00071       }
00072    }
00073    
00074    
00075 }
00076 
00077 
00078 //.....................................................................
00079 void SpillTimeND::Store(DbiOutRowStream& ors,
00080                                const DbiValidityRec* /* vrec */) const {
00081   //
00082   //
00083   //  Purpose:  Stream object to output row stream
00084   //
00085   //  Arguments: 
00086   //    ors          in     Output row stream.
00087   //    vrec         in    Associated validity record (or 0 if filling
00088   
00089   ors << fSecond << fNanoSec;
00090 }
00091 //.....................................................................
00092 
00093 

Generated on Mon Feb 15 11:07:38 2010 for loon by  doxygen 1.3.9.1