void flush() { if ( ! flushed ) { flushed = true; implicitFlush(); PSGO->flush(); PSGO.reset(); uint64_t const offset = headerlength + PSGO->getWrittenBytes(); libmaus2::util::NumberSerialisation::serialiseNumber(*PMETA,offset); libmaus2::util::NumberSerialisation::serialiseNumber(*PMETA,valueswritten); PMETA->flush(); PMETA.reset(); assert ( POSI->tellp() == static_cast<int64_t>(offset) ); libmaus2::aio::InputStreamInstance::unique_ptr_type METAin(new libmaus2::aio::InputStreamInstance(metafn)); while ( METAin->peek() != std::istream::traits_type::eof() ) libmaus2::util::NumberSerialisation::serialiseNumber(*POSI,libmaus2::util::NumberSerialisation::deserialiseNumber(*METAin)); METAin.reset(); libmaus2::aio::FileRemoval::removeFile(metafn); // write index offset libmaus2::util::NumberSerialisation::serialiseNumber(*POSI,offset); POSI->flush(); POSI.reset(); } }
void flush() { if ( Pstream ) { Pstream->seekp(0,std::ios::beg); uint64_t offset = 0; libmaus2::dazzler::db::OutputBase::putLittleEndianInteger8(*Pstream,novl,offset); Pstream->flush(); Pstream.reset(); } }
~AlignmentWriter() { if ( novl != novlexptd ) { DOSI.seekp(0,std::ios::beg); libmaus2::dazzler::align::AlignmentFile::serialiseHeader(DOSI,novl,tspace); DOSI.seekp(dpos,std::ios::beg); } if ( PEMIG ) { PEMIG->flush(); PEMIG.reset(); } if ( PIOSI ) { PIOSI->flush(); PIOSI.reset(); } DOSI.flush(); PDOSI.reset(); }