Esempio n. 1
0
			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();
				}
			}
Esempio n. 2
0
				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();
					}	
				}
Esempio n. 3
0
				~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();
				}