Changeset 1994 in Sophya for trunk/ArchTOIPipe/Kernel


Ignore:
Timestamp:
May 13, 2002, 3:11:32 PM (23 years ago)
Author:
ansari
Message:

1/ Ajout classe CGT (Compagnie Generale des Tuyaux) - Assistance a l'assemblage
des TOIProcessors .
2/ Corrections mineures ds FitsTOIReader, correction de smkmflib

Reza 13/5/2002

Location:
trunk/ArchTOIPipe/Kernel
Files:
2 added
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/ArchTOIPipe/Kernel/fitstoirdr.cc

    r1836 r1994  
    33//                               Christophe Magneville
    44//                               Reza Ansari
    5 // $Id: fitstoirdr.cc,v 1.26 2001-12-21 17:00:40 aubourg Exp $
     5// $Id: fitstoirdr.cc,v 1.27 2002-05-13 13:11:32 ansari Exp $
    66
    77#include "fitstoirdr.h"
     
    2727}
    2828
    29 void FITSTOIReader::setImplicitSN(int snStart) {
     29void FITSTOIReader::setImplicitSN(long snStart) {
    3030  implicitSN = true;
    3131  implicitSNStart = snStart;
     32}
     33
     34void FITSTOIReader::setBufferSize(int buffsz)
     35{
     36  Buff_Sz = (buffsz>0) ? buffsz: 1024;
     37  return;
    3238}
    3339
     
    144150  for (vector<string>::iterator i=allfn.begin(); i!=allfn.end(); i++) {
    145151    openFile(*i);
    146     //run1();
    147     run2();
     152    if (Buff_Sz > 1) run2();  // Lecture bufferise
     153    else run1();              // Lecture un echantillon a la fois
    148154  }
    149155}
    150156
    151157// 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 
    152162void FITSTOIReader::run1() {
    153163  // Il faudrait optimiser en fonction de ce qui a ete demande comme samplenum,
     
    165175    double y;
    166176    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;
    168183    //fits_unlock();
    169     long sn = (long) (y+.1);
    170184    TOIManager* mgr = TOIManager::getManager();
    171185    if (sn > mgr->getRequestedEnd()) {fits_unlock(); break;}
     
    228242 long ideb=-1,ifin=-1;
    229243 for(long i=0; i<nrows; i+=Buff_Sz) {
    230 
     244   fits_lock();   // lock en debut de boucle de lecture - Reza 13/05/2002
    231245   // faut-il lire dans le fichier fits ?
    232246   if(i<ideb || i>ifin) { // Toujours vrai avec le += Buff_Sz
     
    244258         samplenum[j] = j+ideb+implicitSNStart;
    245259       }
    246        fits_lock();
     260       //---- Pas la peine, fait en debut de boucle - Reza 13/05/2002  fits_lock();
    247261     } else {
    248        fits_lock();
     262       //---- Pas la peine, fait en debut de boucle - Reza 13/05/2002 fits_lock();
    249263       fits_read_col_dbl(fptr,1,ideb+1,1,n,0,samplenum,&anyNul,&fstatus);
    250264       if (samplenum[0] > mgr->getRequestedEnd()
    251265           || (forcedMaxIn > 0 && samplenum[0] > forcedMaxIn)) {
    252          fits_unlock();
     266         fits_unlock();  // unlock avant de casser la boucle - Reza 13/05/2002
    253267         break;
    254268       }
    255269       if (samplenum[n-1] < mgr->getRequestedBegin()
    256270           || (forcedMinIn > 0 && samplenum[n-1] < forcedMinIn)) {
    257          fits_unlock();
     271         //---- Pas la peine, fait en fin de boucle - Reza 13/05/2002 fits_unlock();
    258272         continue;
    259273       }
     
    268282     if(fstatus!=0) {
    269283       fits_report_error(stderr,fstatus);
     284       fits_unlock(); // On supprime le lock avant le throw - Reza 13/05/2002
    270285       throw RangeCheckError("FITSTOIReader::run2: Error Reading Fits file\n");
    271286     }
    272      fits_unlock();
    273287   }
     288   fits_unlock();   // unlock en debut de boucle de lecture - Reza 13/05/2002
    274289
    275290   long ip = i-ideb; // pointeurs dans les buffers
     
    288303     }
    289304   }
    290    totnscount++;
     305   totnscount += (ifin-ideb+1);
    291306 }
    292307
     
    300315 colval.resize(0); colflg.resize(0);
    301316
    302  cout << "reader done reading... " << pthread_self() << endl;
    303 }
     317 cout << "reader (buffered) done reading... " << pthread_self() << endl;
     318}
  • trunk/ArchTOIPipe/Kernel/fitstoirdr.h

    r1793 r1994  
    55//                               Christophe Magneville
    66//                               Reza Ansari
    7 // $Id: fitstoirdr.h,v 1.10 2001-11-27 12:13:41 aubourg Exp $
     7// $Id: fitstoirdr.h,v 1.11 2002-05-13 13:11:32 ansari Exp $
    88
    99
     
    2121class FITSTOIReader : public TOIProcessor {
    2222public:
    23   FITSTOIReader(string fn,int buff_sz=1000);
     23  FITSTOIReader(string fn,int buff_sz=1024);
    2424  ~FITSTOIReader();
    2525
    26   void         setImplicitSN(int snStart=0);
     26  void         setImplicitSN(long snStart=0);
     27
     28  void         setBufferSize(int buffsz=1024);
     29  inline int   getBufferSize() { return Buff_Sz; }
    2730
    2831  virtual void addFile(string fn);
     
    5457
    5558  bool      implicitSN;
    56   int       implicitSNStart;
     59  long      implicitSNStart;
    5760 
    5861  vector<string> allfn;
Note: See TracChangeset for help on using the changeset viewer.