1 |
//============================================================================ |
//============================================================================ |
2 |
// $Id: PacketUser.cpp,v 1.11 2009/12/30 10:46:33 mocchiut Exp $ |
// $Id: PacketUser.cpp,v 1.12 2009/12/30 14:49:51 mocchiut Exp $ |
3 |
// Description : |
// Description : |
4 |
//============================================================================ |
//============================================================================ |
5 |
#include "PacketUser.h" |
#include "PacketUser.h" |
683 |
}; |
}; |
684 |
|
|
685 |
// if dbinfo is not empty than |
// if dbinfo is not empty than |
686 |
if ( obt_time_sync && last_time_sync_info && arsize > 0 ){ |
if ( arsize > 0 ){ |
|
|
|
687 |
|
|
688 |
// if(!m_dbinfos.empty()){ |
if ( !obt_time_sync || !last_time_sync_info ){ |
689 |
// while(!m_dbinfos.empty()){ |
TString *nomino=new TString(rootfilename); |
690 |
// dbinfo *app = m_dbinfos.back(); |
nomino->Remove(15); |
691 |
// m_dbinfos.pop_back(); |
TString qu = Form("select OBT_TIME_SYNC,LAST_TIME_SYNC_INFO from ROOT_TABLE where FILE_NAME like '%s_%%' and (abs(PKT_NUMBER_INIT-%lu)<50000 or abs(PKT_OBT_INIT-%lu)<3000000) limit 1;",nomino->Data(),pkt_number_init,obt_init); |
692 |
Int_t ez=0; |
// |
693 |
while ( ez < arsize ){ |
oss.str() = ""; |
694 |
Int_t eid = idtorecover->At(ez); |
oss << "(EM) Trying to find obt_time_sync and last_time_sync_info from DB, query is: " << qu.Data(); |
695 |
if ( eid > -1 ){ |
msg = oss.str(); |
696 |
|
mainLogUtil->logInfo(msg); |
697 |
|
// |
698 |
|
TSQLResult *result = sqlServer->Query(qu.Data()); |
699 |
|
TSQLRow *row = result->Next(); |
700 |
|
if ( row && result->GetRowCount() == 1 ){ |
701 |
|
obt_time_sync = (unsigned long int)atoll(row->GetField(0)); |
702 |
|
last_time_sync_info = (unsigned long int)atoll(row->GetField(1)); |
703 |
|
oss.str() = ""; |
704 |
|
oss << "(EM) found obt_time_sync and last_time_sync_info from DB! obt_time_sync = " <<obt_time_sync <<" last_time_sync_info = " << last_time_sync_info; |
705 |
|
msg = oss.str(); |
706 |
|
mainLogUtil->logInfo(msg); |
707 |
|
}; |
708 |
|
delete nomino; |
709 |
|
}; |
710 |
|
|
711 |
|
if ( obt_time_sync && last_time_sync_info ){ |
712 |
|
// if(!m_dbinfos.empty()){ |
713 |
|
// while(!m_dbinfos.empty()){ |
714 |
|
// dbinfo *app = m_dbinfos.back(); |
715 |
|
// m_dbinfos.pop_back(); |
716 |
|
Int_t ez=0; |
717 |
|
while ( ez < arsize ){ |
718 |
|
Int_t eid = idtorecover->At(ez); |
719 |
|
if ( eid > -1 ){ |
720 |
|
|
721 |
TString qu = Form("select FOLDER_NAME,FILE_NAME,PKT_NUMBER_INIT,PKT_NUMBER_FINAL,PKT_OBT_INIT,PKT_OBT_FINAL,BOOT_NUMBER,TIME_OFFSET,BAD_PKT,BAD_PKT_READ,BAD_PKT_CALREAD,NUM_PKT_SAVED,INPUT_NAME,TIME_IS_ESTIMATED from ROOT_TABLE_BAD where ID_N=%i;",eid); |
TString qu = Form("select FOLDER_NAME,FILE_NAME,PKT_NUMBER_INIT,PKT_NUMBER_FINAL,PKT_OBT_INIT,PKT_OBT_FINAL,BOOT_NUMBER,TIME_OFFSET,BAD_PKT,BAD_PKT_READ,BAD_PKT_CALREAD,NUM_PKT_SAVED,INPUT_NAME,TIME_IS_ESTIMATED from ROOT_TABLE_BAD where ID_N=%i;",eid); |
722 |
TSQLResult *result = sqlServer->Query(qu.Data()); |
TSQLResult *result = sqlServer->Query(qu.Data()); |
723 |
TSQLRow *row = result->Next(); |
TSQLRow *row = result->Next(); |
724 |
|
|
725 |
TString efolder_name=""; |
TString efolder_name=""; |
726 |
TString efile_name=""; |
TString efile_name=""; |
727 |
unsigned long int epkt_number_in=0ULL; |
unsigned long int epkt_number_in=0ULL; |
728 |
unsigned long int epkt_number_fin=0ULL; |
unsigned long int epkt_number_fin=0ULL; |
729 |
unsigned long int eobt_in=0ULL; |
unsigned long int eobt_in=0ULL; |
730 |
unsigned long int eobt_fin=0ULL; |
unsigned long int eobt_fin=0ULL; |
731 |
unsigned long int emboot_num=0ULL; |
unsigned long int emboot_num=0ULL; |
732 |
unsigned long int etime_offset=0ULL; |
unsigned long int etime_offset=0ULL; |
733 |
int ebad_pkt=0; |
int ebad_pkt=0; |
734 |
int ebad_pkt_read=0; |
int ebad_pkt_read=0; |
735 |
int ebad_pkt_CalRead=0; |
int ebad_pkt_CalRead=0; |
736 |
int enum_PKT_Saved=0; |
int enum_PKT_Saved=0; |
737 |
TString enome_input=""; |
TString enome_input=""; |
738 |
bool e_time_is_estimated=false; |
bool e_time_is_estimated=false; |
739 |
|
|
740 |
if ( row ){ |
if ( row ){ |
741 |
efolder_name = (TString)row->GetField(0); |
efolder_name = (TString)row->GetField(0); |
742 |
efile_name = (TString)row->GetField(1); |
efile_name = (TString)row->GetField(1); |
743 |
epkt_number_in = (unsigned long int)atoll(row->GetField(2)); |
epkt_number_in = (unsigned long int)atoll(row->GetField(2)); |
744 |
epkt_number_fin = (unsigned long int)atoll(row->GetField(3)); |
epkt_number_fin = (unsigned long int)atoll(row->GetField(3)); |
745 |
eobt_in = (unsigned long int)atoll(row->GetField(4)); |
eobt_in = (unsigned long int)atoll(row->GetField(4)); |
746 |
eobt_fin = (unsigned long int)atoll(row->GetField(5)); |
eobt_fin = (unsigned long int)atoll(row->GetField(5)); |
747 |
emboot_num = (unsigned long int)atoll(row->GetField(6)); |
emboot_num = (unsigned long int)atoll(row->GetField(6)); |
748 |
etime_offset = (unsigned long int)atoll(row->GetField(7)); |
etime_offset = (unsigned long int)atoll(row->GetField(7)); |
749 |
ebad_pkt = (int)atoi(row->GetField(8)); |
ebad_pkt = (int)atoi(row->GetField(8)); |
750 |
ebad_pkt_read = (int)atoi(row->GetField(9)); |
ebad_pkt_read = (int)atoi(row->GetField(9)); |
751 |
ebad_pkt_CalRead = (int)atoi(row->GetField(10)); |
ebad_pkt_CalRead = (int)atoi(row->GetField(10)); |
752 |
enum_PKT_Saved = (int)atoi(row->GetField(11)); |
enum_PKT_Saved = (int)atoi(row->GetField(11)); |
753 |
enome_input = (TString)row->GetField(12); |
enome_input = (TString)row->GetField(12); |
754 |
e_time_is_estimated = (bool)atoi(row->GetField(13)); |
e_time_is_estimated = (bool)atoi(row->GetField(13)); |
755 |
}; |
}; |
756 |
delete result; |
delete result; |
757 |
|
|
758 |
setReal_TimeRECOVERY( |
setReal_TimeRECOVERY( |
759 |
real_time_init, |
real_time_init, |
760 |
real_time_last, |
real_time_last, |
761 |
eobt_in, |
eobt_in, |
762 |
eobt_fin |
eobt_fin |
763 |
); |
); |
764 |
// |
// |
765 |
|
|
766 |
if (saveROOT_DB( |
if (saveROOT_DB( |
767 |
Table_ROOT_Good, |
Table_ROOT_Good, |
768 |
efolder_name.Data(), |
efolder_name.Data(), |
769 |
efile_name.Data(), |
efile_name.Data(), |
770 |
epkt_number_in, |
epkt_number_in, |
771 |
epkt_number_fin, eobt_in, eobt_fin, obt_time_sync, last_time_sync_info, |
epkt_number_fin, eobt_in, eobt_fin, obt_time_sync, last_time_sync_info, |
772 |
real_time_init, real_time_last, emboot_num, etime_offset, ebad_pkt, ebad_pkt_read, ebad_pkt_CalRead, |
real_time_init, real_time_last, emboot_num, etime_offset, ebad_pkt, ebad_pkt_read, ebad_pkt_CalRead, |
773 |
enum_PKT_Saved, enome_input.Data(), e_time_is_estimated) == true) { |
enum_PKT_Saved, enome_input.Data(), e_time_is_estimated) == true) { |
774 |
oss.str() = ""; |
oss.str() = ""; |
775 |
oss << "\nTAG(tassa): RECOVERED!!!! Saved information regarding file: " << efile_name << " in table " << Table_ROOT_Good << " id= " << my_id; |
oss << "\nTAG(tassa): RECOVERED!!!! Saved information regarding file: " << efile_name << " in table " << Table_ROOT_Good << " id= " << my_id; |
776 |
msg = oss.str(); |
msg = oss.str(); |
777 |
mainLogUtil->logInfo(msg); |
mainLogUtil->logInfo(msg); |
778 |
/*merging we use global variable. we haveto set with current value*/ |
/*merging we use global variable. we haveto set with current value*/ |
779 |
|
|
780 |
strcpy(outDir,efolder_name.Data() ); |
strcpy(outDir,efolder_name.Data() ); |
781 |
// outDir=efolder_name.Data(); |
// outDir=efolder_name.Data(); |
782 |
strcpy(filename,efile_name.Data() ); |
strcpy(filename,efile_name.Data() ); |
783 |
// filename=efile_name.Data(); |
// filename=efile_name.Data(); |
784 |
pkt_number_init=epkt_number_in; |
pkt_number_init=epkt_number_in; |
785 |
pkt_number_last=epkt_number_fin; |
pkt_number_last=epkt_number_fin; |
786 |
obt_init=eobt_in; |
obt_init=eobt_in; |
787 |
obt_last=eobt_fin; |
obt_last=eobt_fin; |
788 |
boot_number=emboot_num; |
boot_number=emboot_num; |
789 |
timeOffset=etime_offset; |
timeOffset=etime_offset; |
790 |
bad_pkt=ebad_pkt; |
bad_pkt=ebad_pkt; |
791 |
bad_pkt_EventReader=ebad_pkt_read; |
bad_pkt_EventReader=ebad_pkt_read; |
792 |
bad_pkt_CalibReader=ebad_pkt_CalRead; |
bad_pkt_CalibReader=ebad_pkt_CalRead; |
793 |
numPKTSaved=enum_PKT_Saved; |
numPKTSaved=enum_PKT_Saved; |
794 |
strcpy(fni,enome_input.Data() ); |
strcpy(fni,enome_input.Data() ); |
795 |
// fni=enome_input.Data(); |
// fni=enome_input.Data(); |
796 |
time_is_estimated=e_time_is_estimated; |
time_is_estimated=e_time_is_estimated; |
797 |
|
|
798 |
if (tryMerge) { |
if (tryMerge) { |
799 |
merge_ROOTfiles(); |
merge_ROOTfiles(); |
800 |
} |
} |
801 |
|
|
802 |
TString qu2 = Form("update ROOT_TABLE_BAD set ON_DISK='MVD' where ID_N=%i;",eid); |
TString qu2 = Form("update ROOT_TABLE_BAD set ON_DISK='MVD' where ID_N=%i;",eid); |
803 |
sqlServer->Query(qu2.Data()); |
sqlServer->Query(qu2.Data()); |
804 |
|
|
805 |
|
|
806 |
} |
} |
807 |
else { |
else { |
808 |
oss.str() = ""; |
oss.str() = ""; |
809 |
oss << "Problem storing information in DB regarding file: " << filename; |
oss << "Problem storing information in DB regarding file: " << filename; |
810 |
msg = oss.str(); |
msg = oss.str(); |
811 |
mainLogUtil->logError(msg); |
mainLogUtil->logError(msg); |
812 |
} |
} |
813 |
|
|
814 |
|
|
815 |
}; |
}; |
816 |
ez++; |
ez++; |
817 |
} |
} |
818 |
// |
// |
819 |
idtorecover->Reset(); |
idtorecover->Reset(); |
820 |
delete idtorecover; |
delete idtorecover; |
821 |
idtorecover = new TArrayI(100); |
idtorecover = new TArrayI(100); |
822 |
arsize = 0; |
arsize = 0; |
823 |
// delete app; |
// delete app; |
824 |
} |
}; |
825 |
|
}; |
826 |
|
|
827 |
CleanDisk(); |
CleanDisk(); |
828 |
if (!single_connection) { |
if (!single_connection) { |