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(); } }