34 #include "../../pappsoexception.h"
35 #include "../../massspectrum/massspectrum.h"
62 std::map<unsigned int, MassSpectrum> &slice_vector, std::size_t ipos)
66 for(
auto &&msrun_slice : slice_vector)
84 std::size_t spectrum_size = spectrum.size();
86 if(spectrum_size == 0)
90 std::pair<std::map<unsigned int, QByteArray>::iterator,
bool> ret =
92 std::pair<unsigned int, QByteArray>(slice_number, QByteArray()));
97 ret.first->second.resize(0);
98 QDataStream outstream(&ret.first->second, QIODevice::WriteOnly);
99 outstream << (quint32)ipos;
100 outstream << spectrum;
104 QDataStream outstream(&ret.first->second,
105 QIODevice::WriteOnly | QIODevice::Append);
106 outstream << (quint32)ipos;
107 outstream << spectrum;
113 QObject::tr(
"appendSliceInBuffer : error ipos=%1 :\n%2")
115 .arg(error_pappso.
qwhat()));
117 catch(std::exception &error)
120 QObject::tr(
"appendSliceInBuffer slice_number=%1 ipos=%2 error :\n%3")
139 if(buffer_pair.second.size() > 0)
141 QFile slice_file(QString(
"%1/%2")
143 .arg(buffer_pair.first));
144 bool new_file =
false;
145 if(!slice_file.exists())
149 if(!slice_file.open(QIODevice::WriteOnly))
152 QObject::tr(
"unable to open file %1")
153 .arg(slice_file.fileName()));
158 if(!slice_file.open(QIODevice::WriteOnly | QIODevice::Append))
161 QObject::tr(
"unable to open file %1")
162 .arg(slice_file.fileName()));
166 QDataStream stream(&slice_file);
170 stream << (quint32)buffer_pair.first;
172 stream.writeRawData(buffer_pair.second.constData(),
173 buffer_pair.second.size());
177 stream.writeRawData(buffer_pair.second.constData(),
178 buffer_pair.second.size());
194 QObject::tr(
"flushBufferOnDisk error :\n%1").arg(error_pappso.
qwhat()));
196 catch(std::exception &error)
199 QObject::tr(
"flushBufferOnDisk error :\n%1").arg(error.what()));
Class to represent a mass spectrum.
virtual const QString & qwhat() const
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
std::shared_ptr< MsRunReader > MsRunReaderSPtr