Changeset 2289 for trunk/src/FillerWrapper.h
- Timestamp:
- 09/08/11 19:35:40 (13 years ago)
- Location:
- trunk/src
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src
- Property svn:mergeinfo changed
/branches/parallel/src (added) merged: 2205,2240,2247,2262-2263,2267,2274,2281-2285,2287-2288
- Property svn:mergeinfo changed
-
trunk/src/FillerWrapper.h
r1904 r2289 45 45 throw(AipsError("File does not exist")); 46 46 } 47 filler_ = new PKSFiller(stable_); 48 if (filler_->open(filename, rec)) { 49 // if (filler_->open(filename)) { 50 attached_ = true; 51 return; 47 int fileType = dataType( filename ) ; 48 if ( fileType == 0 ) { 49 filler_ = new PKSFiller(stable_); 50 if (filler_->open(filename, rec)) { 51 attached_ = true; 52 return; 53 } 52 54 } 53 filler_ = new NROFiller(stable_); 54 if (filler_->open(filename, rec)) { 55 // if (filler_->open(filename)) { 56 attached_ = true; 57 return; 55 else if ( fileType == 1 ) { 56 filler_ = new NROFiller(stable_); 57 if (filler_->open(filename, rec)) { 58 attached_ = true; 59 return; 60 } 58 61 } 59 62 filler_ = 0; … … 81 84 private: 82 85 86 int dataType( const std::string &filename ) { 87 int ret = -1 ; 88 int pks = 0 ; 89 int nro = 1 ; 90 casa::File file( filename ) ; 91 if ( file.isDirectory() ) 92 ret = pks ; 93 else if ( file.isReadable() ) { 94 FILE *f = fopen( filename.c_str(), "r") ; 95 char buf[8] ; 96 fread( buf, 6, 1, f ) ; 97 fclose( f ) ; 98 buf[7]='\0' ; 99 // NRO data has two types: 100 // 1) specific binary data for OTF observation 101 // 2) (pseudo-)FITS data that doesn't have primary HDU 102 // So, one can distinguish NRO and non-NRO data by examining 103 // first keyword name. 104 if ( casa::String( buf ) == "SIMPLE" ) { 105 ret = pks ; 106 } 107 else { 108 ret = nro ; 109 } 110 } 111 return ret ; 112 } 113 83 114 FillerWrapper(); 84 115 FillerWrapper(const FillerWrapper&);
Note: See TracChangeset
for help on using the changeset viewer.