// // C++ Interface: MSWriterWrapper // // Description: // // This class is wrapper class for MSFiller // // Author: Takeshi Nakazato , (C) 2010 // // Copyright: See COPYING file that comes with this distribution // // #ifndef ASAPMSWRITER_WRAPPER_H #define ASAPMSWRITER_WRAPPER_H #include #include #include #include #include #include #include "ScantableWrapper.h" #include "MSWriter.h" #include "GILHandler.h" namespace asap { class MSWriterWrapper { public: explicit MSWriterWrapper( ScantableWrapper tbl ) : writer_( 0 ) { stable_ = tbl.getCP() ; } virtual ~MSWriterWrapper() {} void write(const std::string& filename, const casacore::Record& rec) { GILHandler scopedRelease; casacore::File file( filename ) ; writer_ = new MSWriter( stable_ ) ; if ( writer_->write( filename, rec ) ) { return ; } else { throw casacore::AipsError( "Failed to write data" ) ; } } private: MSWriterWrapper() ; MSWriterWrapper(const MSWriterWrapper&) ; MSWriterWrapper& operator=(const MSWriterWrapper&) ; casacore::CountedPtr writer_ ; casacore::CountedPtr stable_ ; }; }; #endif