00001
00002
00003 #include <string>
00004 #include <iostream>
00005 #include <fstream>
00006 #include <cassert>
00007
00008 #include "L2DbConfig.h"
00009
00010
00011 L2DbConfig::L2DbConfig( const Char_t *fname )
00012 {
00013 mFilename=fname;
00014 ifstream inFile(fname, ifstream::in);
00015 if ( !inFile )
00016 {
00017 std::cout << "Problem reading in L2EmcDb configuration from " << fname << std::endl;
00018 assert(2+2==5);
00019 }
00020
00021
00022 printf("L2DbConfig::L2DbConfig, opened =%s=\n", fname);
00023 while ( !inFile.eof() )
00024 {
00025 L2DbTime c;
00026 double timeOld=c.getFullStartTime();
00027 c.read(inFile);
00028 if ( c.comment() ) continue;
00029 mConfig.push_back(c);
00030 c.print();
00031 assert(c.getFullStartTime() < c.getFullFinishTime());
00032
00033 timeOld=c.getFullStartTime();
00034 }
00035 std::cout << Form("L2DbConfig::Read in %i records from=%s=, done",mConfig.size(),fname) << std::endl;
00036
00037
00038 }
00039
00040
00041 L2DbTime *L2DbConfig::getConfiguration( Int_t date, Int_t time, const Char_t *tag )
00042 {
00043 std::cout << "L2DbConfig:: Get configuration for date=" << date << " time=" << time <<" tag=" <<(tag? tag :"")<<"="<<std::endl;
00044 for ( UInt_t ii=0;ii<mConfig.size();ii++ )
00045 {
00046 if ( mConfig[ii].valid(date,time) )
00047 {
00048 if ( !tag ) return &mConfig[ii];
00049 if ( mConfig[ii].getTag().Contains(tag) ) return &mConfig[ii];
00050 }
00051 }
00052 return 0;
00053 }
00054