#include "fitstoirdr.h" #include "toimanager.h" #include FITSTOIReader::FITSTOIReader(string fn,int buff_sz) { fname = fn; allfn.push_back(fn); Buff_Sz = (buff_sz>0) ? buff_sz: 1000; cout<<"FITSTOIReader::FITSTOIReader"<(i,false); } } fits_unlock(); snBegin = firstSn; openFile(allfn.back()); snEnd = firstSn+nrows-1; cout << "FITSTOIReader range " << snBegin << " -> " << snEnd << endl; } int FITSTOIReader::calcMinOut() { TOIManager* mgr = TOIManager::getManager(); int firstReq = mgr->getRequestedBegin(); return snBegin > firstReq ? snBegin : firstReq; } int FITSTOIReader::calcMaxOut() { TOIManager* mgr = TOIManager::getManager(); int lastReq = mgr->getRequestedEnd(); return snEnd < lastReq ? snEnd : lastReq; } void FITSTOIReader::addFile(string fn) { allfn.push_back(fn); } void FITSTOIReader::run() { for (vector::iterator i=allfn.begin(); i!=allfn.end(); i++) { openFile(*i); //run1(); run2(); } } void FITSTOIReader::run1() { // Il faudrait optimiser en fonction de ce qui a ete demande comme samplenum, // mais cela implique de gerer aussi bien echant uniforme que non. // On pourrait aussi lire plusieurs elements d'un coup. int ncols = outIx.size(); cout << "reader reading... NRows=" << nrows << " firstSn= " << firstSn << endl; double* tabdata = new double[getNOut()]; uint_8* tabflag = new uint_8[getNOut()]; for (long i=0; i mgr->getRequestedEnd()) {fits_unlock(); break;} if (sn < mgr->getRequestedBegin()) {fits_unlock(); continue;} // if (sn < mgr->getRequestedBegin()+10) cout << "rdr out " << sn << endl; int k; for (k=0; k mgr->getRequestedEnd()) break; if(sn < mgr->getRequestedBegin()) continue; for(int k=0; k