Changeset 2130 in Sophya for trunk/SophyaExt
- Timestamp:
- Jul 24, 2002, 12:05:11 PM (23 years ago)
- Location:
- trunk/SophyaExt/FitsIOServer
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaExt/FitsIOServer/fitsautoreader.cc
r1371 r2130 19 19 InitNull(); 20 20 inFits_ = new FitsInFile (inputfile); 21 filename_ = string(inputfile); 21 22 } 22 23 FITS_AutoReader::FITS_AutoReader(string const & inputfile) … … 24 25 InitNull(); 25 26 inFits_ = new FitsInFile (inputfile); 27 filename_ = inputfile; 26 28 } 27 29 FITS_AutoReader::~FITS_AutoReader() … … 36 38 } 37 39 38 AnyDataObj* FITS_AutoReader::ReadObject(int hdunum) const 40 // parametre toutCharger : uniquement pour les BINTABLE et s'il ne 41 // s'agit pas explicitement d'un objet SOPHYA, on charge toute la 42 // table en memoire sous forme d'un xntuple si toutCharger= true. 43 // et si le nombre d'entrees est superieur a 1000. 44 // sinon (c-a-d : il ne s'agit pas d'un objet connu de SOPHYA 45 // c'est une BINTABLE avec plus de 1000 entrees 46 // totuCharger = false) 47 // on ouvre une FitsBTNtuIntf (lecture ulterieure, bufferisee, des valeurs) 48 AnyDataObj* FITS_AutoReader::ReadObject(int hdunum, bool toutCharger) const 39 49 { 40 50 if (hdunum<=0) … … 80 90 } 81 91 // si c'est une bintable on cherche le mot cle ORDERING pour identifier 82 // une spherehe lpix92 // une spherehealpix 83 93 else if (inFits_->IsFitsTable()) 84 94 { … … 97 107 } 98 108 if (index == 0) return newNTuple(); 99 else return newXNTuple(); 109 else 110 { 111 if (!toutCharger ) 112 { 113 int maxEntries=0; 114 for (int k=0; k < inFits_->NbColsFromFits(); k++) 115 { 116 if (inFits_->NentriesFromFits(k) > maxEntries ) maxEntries = inFits_->NentriesFromFits(k); 117 } 118 if ( maxEntries > 1000) return newFitsBTNtuIntf(hdunum); 119 else return newXNTuple(); 120 } 121 else return newXNTuple(); 122 123 } 100 124 } 101 125 } … … 230 254 } 231 255 256 FitsBTNtuIntf* FITS_AutoReader::newFitsBTNtuIntf(int hdunum) const 257 { 258 FitsBTNtuIntf* btnptr = new FitsBTNtuIntf(filename_,hdunum); 259 return btnptr; 260 } 261 -
trunk/SophyaExt/FitsIOServer/fitsautoreader.h
r1334 r2130 13 13 #include "fitsxntuple.h" 14 14 #include "fitslocalmap.h" 15 #include "fbtntintf.h" 15 16 16 17 namespace SOPHYA { … … 30 31 virtual ~FITS_AutoReader(); 31 32 int NbBlocks(); 32 AnyDataObj* ReadObject(int hdunum) const; 33 34 // parametre toutCharger : uniquement pour les BINTABLE et s'il ne 35 // s'agit pas explicitement d'un objet SOPHYA, on charge toute la 36 // table en memoire sous forme d'un xntuple si toutCharger= true. 37 // et si le nombre d'entrees est superieur a 1000. 38 // sinon (c-a-d : il ne s'agit pas d'un objet connu de SOPHYA 39 // c'est une BINTABLE avec plus de 1000 entrees 40 // totuCharger = false) 41 // on ouvre une FitsBTNtuIntf (lecture ulterieure, bufferisee, des valeurs) 42 AnyDataObj* ReadObject(int hdunum, bool toutCharger = false) const; 33 43 34 44 … … 40 50 NTuple* newNTuple() const; 41 51 XNTuple* newXNTuple() const; 52 FitsBTNtuIntf* newFitsBTNtuIntf(int hdunum) const; 42 53 inline void InitNull() 43 54 { … … 47 58 } 48 59 60 61 string filename_; 49 62 FitsInFile* inFits_; 50 63 AnyDataObj* dobj_;
Note:
See TracChangeset
for help on using the changeset viewer.