Changeset 1994 in Sophya for trunk/ArchTOIPipe/Kernel/fitstoirdr.cc
- Timestamp:
- May 13, 2002, 3:11:32 PM (23 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ArchTOIPipe/Kernel/fitstoirdr.cc
r1836 r1994 3 3 // Christophe Magneville 4 4 // Reza Ansari 5 // $Id: fitstoirdr.cc,v 1.2 6 2001-12-21 17:00:40 aubourgExp $5 // $Id: fitstoirdr.cc,v 1.27 2002-05-13 13:11:32 ansari Exp $ 6 6 7 7 #include "fitstoirdr.h" … … 27 27 } 28 28 29 void FITSTOIReader::setImplicitSN( intsnStart) {29 void FITSTOIReader::setImplicitSN(long snStart) { 30 30 implicitSN = true; 31 31 implicitSNStart = snStart; 32 } 33 34 void FITSTOIReader::setBufferSize(int buffsz) 35 { 36 Buff_Sz = (buffsz>0) ? buffsz: 1024; 37 return; 32 38 } 33 39 … … 144 150 for (vector<string>::iterator i=allfn.begin(); i!=allfn.end(); i++) { 145 151 openFile(*i); 146 //run1();147 run2();152 if (Buff_Sz > 1) run2(); // Lecture bufferise 153 else run1(); // Lecture un echantillon a la fois 148 154 } 149 155 } 150 156 151 157 // run 1 : deprecated. NON MAINTENU. Incompatible avec implicit SN. 158 // ^^^^^^^^^^^^ Reza , 13/5/2002 , Je viens de rajouter 159 // implicitSNStart et switvh run1/run2 160 // suivant buffersize 161 152 162 void FITSTOIReader::run1() { 153 163 // Il faudrait optimiser en fonction de ce qui a ete demande comme samplenum, … … 165 175 double y; 166 176 fits_lock(); 167 fits_read_col_dbl(fptr,1,i+1,1,1,0,&y,&anyNul,&fstatus); 177 long sn; 178 if (implicitSN) { 179 fits_read_col_dbl(fptr,1,i+1,1,1,0,&y,&anyNul,&fstatus); 180 sn = (long) (y+.1); 181 } 182 else sn = implicitSNStart+i; 168 183 //fits_unlock(); 169 long sn = (long) (y+.1);170 184 TOIManager* mgr = TOIManager::getManager(); 171 185 if (sn > mgr->getRequestedEnd()) {fits_unlock(); break;} … … 228 242 long ideb=-1,ifin=-1; 229 243 for(long i=0; i<nrows; i+=Buff_Sz) { 230 244 fits_lock(); // lock en debut de boucle de lecture - Reza 13/05/2002 231 245 // faut-il lire dans le fichier fits ? 232 246 if(i<ideb || i>ifin) { // Toujours vrai avec le += Buff_Sz … … 244 258 samplenum[j] = j+ideb+implicitSNStart; 245 259 } 246 fits_lock();260 //---- Pas la peine, fait en debut de boucle - Reza 13/05/2002 fits_lock(); 247 261 } else { 248 fits_lock();262 //---- Pas la peine, fait en debut de boucle - Reza 13/05/2002 fits_lock(); 249 263 fits_read_col_dbl(fptr,1,ideb+1,1,n,0,samplenum,&anyNul,&fstatus); 250 264 if (samplenum[0] > mgr->getRequestedEnd() 251 265 || (forcedMaxIn > 0 && samplenum[0] > forcedMaxIn)) { 252 fits_unlock(); 266 fits_unlock(); // unlock avant de casser la boucle - Reza 13/05/2002 253 267 break; 254 268 } 255 269 if (samplenum[n-1] < mgr->getRequestedBegin() 256 270 || (forcedMinIn > 0 && samplenum[n-1] < forcedMinIn)) { 257 fits_unlock();271 //---- Pas la peine, fait en fin de boucle - Reza 13/05/2002 fits_unlock(); 258 272 continue; 259 273 } … … 268 282 if(fstatus!=0) { 269 283 fits_report_error(stderr,fstatus); 284 fits_unlock(); // On supprime le lock avant le throw - Reza 13/05/2002 270 285 throw RangeCheckError("FITSTOIReader::run2: Error Reading Fits file\n"); 271 286 } 272 fits_unlock();273 287 } 288 fits_unlock(); // unlock en debut de boucle de lecture - Reza 13/05/2002 274 289 275 290 long ip = i-ideb; // pointeurs dans les buffers … … 288 303 } 289 304 } 290 totnscount ++;305 totnscount += (ifin-ideb+1); 291 306 } 292 307 … … 300 315 colval.resize(0); colflg.resize(0); 301 316 302 cout << "reader done reading... " << pthread_self() << endl;303 } 317 cout << "reader (buffered) done reading... " << pthread_self() << endl; 318 }
Note:
See TracChangeset
for help on using the changeset viewer.