34 #include "../../pappsoexception.h"
35 #include "../../massspectrum/massspectrum.h"
42 : MsRunXicExtractorDisk(msrun_reader, temporary_dir)
45 m_sliceBufferMap.clear();
49 const MsRunXicExtractorDiskBuffer &other)
50 : MsRunXicExtractorDisk(other)
53 m_sliceBufferMap.clear();
62 std::map<unsigned int, MassSpectrum> &slice_vector, std::size_t ipos)
66 for(
auto &&msrun_slice : slice_vector)
82 qDebug() << __FILE__ <<
" " << __FUNCTION__ <<
" " << __LINE__;
86 std::size_t spectrum_size = spectrum.size();
88 if(spectrum_size == 0)
92 std::pair<std::map<unsigned int, QByteArray>::iterator,
bool> ret =
94 std::pair<unsigned int, QByteArray>(slice_number, QByteArray()));
99 ret.first->second.resize(0);
100 QDataStream outstream(&ret.first->second, QIODevice::WriteOnly);
101 outstream << (quint32)ipos;
102 outstream << spectrum;
106 QDataStream outstream(&ret.first->second,
107 QIODevice::WriteOnly | QIODevice::Append);
108 outstream << (quint32)ipos;
109 outstream << spectrum;
112 catch(PappsoException &error_pappso)
115 QObject::tr(
"appendSliceInBuffer : error ipos=%1 :\n%2")
117 .arg(error_pappso.qwhat()));
119 catch(std::exception &error)
122 QObject::tr(
"appendSliceInBuffer slice_number=%1 ipos=%2 error :\n%3")
127 qDebug() << __FILE__ <<
" " << __FUNCTION__ <<
" " << __LINE__;
134 qDebug() << __FILE__ <<
" " << __FUNCTION__ <<
" " << __LINE__;
141 if(buffer_pair.second.size() > 0)
143 QFile slice_file(QString(
"%1/%2")
145 .arg(buffer_pair.first));
146 bool new_file =
false;
147 if(!slice_file.exists())
151 if(!slice_file.open(QIODevice::WriteOnly))
154 QObject::tr(
"unable to open file %1")
155 .arg(slice_file.fileName()));
160 if(!slice_file.open(QIODevice::WriteOnly | QIODevice::Append))
163 QObject::tr(
"unable to open file %1")
164 .arg(slice_file.fileName()));
168 QDataStream stream(&slice_file);
172 stream << (quint32)buffer_pair.first;
174 stream.writeRawData(buffer_pair.second.constData(),
175 buffer_pair.second.size());
179 stream.writeRawData(buffer_pair.second.constData(),
180 buffer_pair.second.size());
193 catch(PappsoException &error_pappso)
196 QObject::tr(
"flushBufferOnDisk error :\n%1").arg(error_pappso.qwhat()));
198 catch(std::exception &error)
201 QObject::tr(
"flushBufferOnDisk error :\n%1").arg(error.what()));
203 qDebug() << __FILE__ <<
" " << __FUNCTION__ <<
" " << __LINE__;