libpappsomspp
Library for mass spectrometry
Loading...
Searching...
No Matches
pappso::cbor::mzcbor::MzcborCopyReplaceBase Class Reference

base class to transform mzCBOR stream in a new mzCBOR output stream More...

#include <mzcborcopyreplacebase.h>

Inheritance diagram for pappso::cbor::mzcbor::MzcborCopyReplaceBase:
pappso::cbor::CborStreamReaderInterface pappso::cbor::mzcbor::MzcborPrecursorFinder

Public Member Functions

 MzcborCopyReplaceBase (CborStreamWriter *cbor_output_p, const QString &operation)
virtual ~MzcborCopyReplaceBase ()
virtual void readCbor (QFile *cborp, pappso::UiMonitorInterface &monitor)
 read mzCBOR file
virtual void readCbor (QIODevice *cborp, pappso::UiMonitorInterface &monitor)
 read mzCBOR from any device (memory buffer or else)
virtual void close ()
 convenient function to clean pointer before leaving
Public Member Functions inherited from pappso::cbor::CborStreamReaderInterface
 CborStreamReaderInterface ()
virtual ~CborStreamReaderInterface ()

Protected Member Functions

void readRoot (pappso::UiMonitorInterface &monitor)
void readCbor (pappso::UiMonitorInterface &monitor)
void readRun (pappso::UiMonitorInterface &monitor)
void readSpectrumList (pappso::UiMonitorInterface &monitor)
virtual void processQcborSpectrum (SpectrumTube &spectrum_tube, QcborSpectrum &cbor_spectrum)
Protected Member Functions inherited from pappso::cbor::CborStreamReaderInterface
bool getExpectedString ()
void initCborReader (QFile *pcborfile)
void initCborReader (QIODevice *pcborfile)

Protected Attributes

bool m_stopParsing = false
CborStreamWriter * mp_cborOutput
QString m_operation
Protected Attributes inherited from pappso::cbor::CborStreamReaderInterface
CborStreamReader * mpa_cborReader = nullptr
QString m_expectedString
QByteArray m_data

Private Attributes

bool m_isMzcbor = false
QString m_uuid

Detailed Description

base class to transform mzCBOR stream in a new mzCBOR output stream

ensures stream read on regular file or any readable device

Definition at line 46 of file mzcborcopyreplacebase.h.

Constructor & Destructor Documentation

◆ MzcborCopyReplaceBase()

pappso::cbor::mzcbor::MzcborCopyReplaceBase::MzcborCopyReplaceBase ( CborStreamWriter * cbor_output_p,
const QString & operation )

Default constructor

Definition at line 43 of file mzcborcopyreplacebase.cpp.

References m_operation, and mp_cborOutput.

Referenced by pappso::cbor::mzcbor::MzcborPrecursorFinder::MzcborPrecursorFinder().

◆ ~MzcborCopyReplaceBase()

pappso::cbor::mzcbor::MzcborCopyReplaceBase::~MzcborCopyReplaceBase ( )
virtual

Destructor

Definition at line 50 of file mzcborcopyreplacebase.cpp.

51{
52}

Member Function Documentation

◆ close()

void pappso::cbor::mzcbor::MzcborCopyReplaceBase::close ( )
virtual

convenient function to clean pointer before leaving

Reimplemented from pappso::cbor::CborStreamReaderInterface.

Definition at line 55 of file mzcborcopyreplacebase.cpp.

56{
57}

◆ processQcborSpectrum()

void pappso::cbor::mzcbor::MzcborCopyReplaceBase::processQcborSpectrum ( SpectrumTube & spectrum_tube,
QcborSpectrum & cbor_spectrum )
protectedvirtual

Reimplemented in pappso::cbor::mzcbor::MzcborPrecursorFinder.

Definition at line 337 of file mzcborcopyreplacebase.cpp.

339{
340 qDebug() << cbor_spectrum.getId() << " mslevel=" << cbor_spectrum.getMsLevel();
341 cbor_spectrum.setId(QString("%1 oliv=%2").arg(cbor_spectrum.getId()).arg("cc"));
342 if(cbor_spectrum.getMsLevel() == 2)
343 {
344 spectrum_tube.push_back(cbor_spectrum);
345 }
346}

References pappso::cbor::mzcbor::QcborSpectrum::getId(), pappso::cbor::mzcbor::QcborSpectrum::getMsLevel(), pappso::cbor::mzcbor::SpectrumTube::push_back(), and pappso::cbor::mzcbor::QcborSpectrum::setId().

Referenced by readSpectrumList().

◆ readCbor() [1/3]

void pappso::cbor::mzcbor::MzcborCopyReplaceBase::readCbor ( pappso::UiMonitorInterface & monitor)
protected

Definition at line 158 of file mzcborcopyreplacebase.cpp.

159{
160 mp_cborOutput->startMap();
161 mpa_cborReader->enterContainer();
162 QCborMap old_informations;
163
164 while(!mpa_cborReader->lastError() && mpa_cborReader->hasNext())
165 {
166 // mode
167 // informations
168 // log
169 // parameter_map
171 qDebug() << m_expectedString;
172 if(m_expectedString == "mode")
173 {
174 mp_cborOutput->append("mode");
175 mp_cborOutput->append(mpa_cborReader->toInteger());
176 mpa_cborReader->next();
177 }
178 else if(m_expectedString == "informations")
179 {
180
181 mpa_cborReader->readCborMap(old_informations);
182 mp_cborOutput->writeInformations(
183 "libpappsomspp", Utils::getVersion(), "mzCBOR", m_operation);
184 }
185 else
186 {
187 throw pappso::PappsoException(
188 QObject::tr("ERROR: %1 not expected in mzCBOR").arg(m_expectedString));
189 }
190 }
191
192
193 mp_cborOutput->endMap();
194 mpa_cborReader->leaveContainer();
195}
static QString getVersion()
Definition utils.cpp:669

References pappso::cbor::CborStreamReaderInterface::getExpectedString(), pappso::Utils::getVersion(), pappso::cbor::CborStreamReaderInterface::m_expectedString, m_operation, mp_cborOutput, and pappso::cbor::CborStreamReaderInterface::mpa_cborReader.

◆ readCbor() [2/3]

void pappso::cbor::mzcbor::MzcborCopyReplaceBase::readCbor ( QFile * cborp,
pappso::UiMonitorInterface & monitor )
virtual

read mzCBOR file

Parameters
cborpfile pointer
monitormonitor read progress and messages

Definition at line 60 of file mzcborcopyreplacebase.cpp.

61{
62 qDebug();
63 initCborReader(cborp);
64
65 qDebug();
66 if(mpa_cborReader->isMap())
67 {
68 readRoot(monitor);
69 }
70 qDebug();
71}
void readRoot(pappso::UiMonitorInterface &monitor)

References pappso::cbor::CborStreamReaderInterface::initCborReader(), pappso::cbor::CborStreamReaderInterface::mpa_cborReader, and readRoot().

Referenced by readRoot().

◆ readCbor() [3/3]

void pappso::cbor::mzcbor::MzcborCopyReplaceBase::readCbor ( QIODevice * cborp,
pappso::UiMonitorInterface & monitor )
virtual

read mzCBOR from any device (memory buffer or else)

Parameters
cborpdevice pointer
monitormonitor read progress and messages

Definition at line 74 of file mzcborcopyreplacebase.cpp.

75{
76 qDebug();
77 initCborReader(cborp);
78
79 qDebug();
80 if(mpa_cborReader->isMap())
81 {
82 readRoot(monitor);
83 }
84 qDebug();
85}

References pappso::cbor::CborStreamReaderInterface::initCborReader(), pappso::cbor::CborStreamReaderInterface::mpa_cborReader, and readRoot().

◆ readRoot()

void pappso::cbor::mzcbor::MzcborCopyReplaceBase::readRoot ( pappso::UiMonitorInterface & monitor)
protected

Definition at line 88 of file mzcborcopyreplacebase.cpp.

89{
90 mp_cborOutput->startMap();
91 mpa_cborReader->enterContainer();
92
93
95 if(m_expectedString == "mzCBOR")
96 {
97 mp_cborOutput->append("mzCBOR");
98 qDebug() << m_expectedString;
99 readCbor(monitor);
100 }
101 else
102 {
103 throw pappso::PappsoException("ERROR: expecting mzCBOR element");
104 }
105
106
107 QCborMap tmp_map;
109 if(m_expectedString == "mzML")
110 {
111 mp_cborOutput->append("mzML");
112
113 mpa_cborReader->readCborMap(tmp_map);
114 mp_cborOutput->writeCborMap(tmp_map);
115 }
116 else
117 {
118 throw pappso::PappsoException("ERROR: expecting mzML element");
119 }
120
121
122 QStringList copy_tags;
123 copy_tags << "cvList"
124 << "fileDescription" << "referenceableParamGroupList" << "softwareList"
125 << "instrumentConfigurationList" << "dataProcessingList";
126 while(!mpa_cborReader->lastError() && mpa_cborReader->hasNext())
127 {
129 qDebug() << m_expectedString;
130
131
132 if(copy_tags.contains(m_expectedString))
133 {
135 mpa_cborReader->readCborMap(tmp_map);
136 mp_cborOutput->writeCborMap(tmp_map);
137 }
138 else if(m_expectedString == "run")
139 {
140
141 mp_cborOutput->append("run");
142 qDebug() << m_expectedString;
143 readRun(monitor);
144 }
145
146 else
147 {
148 throw pappso::PappsoException(
149 QObject::tr("ERROR: %1 not expected in mzCBOR root").arg(m_expectedString));
150 }
151 }
152
153 mp_cborOutput->endMap();
154 mpa_cborReader->leaveContainer();
155}
void readRun(pappso::UiMonitorInterface &monitor)
virtual void readCbor(QFile *cborp, pappso::UiMonitorInterface &monitor)
read mzCBOR file

References pappso::cbor::CborStreamReaderInterface::getExpectedString(), pappso::cbor::CborStreamReaderInterface::m_expectedString, mp_cborOutput, pappso::cbor::CborStreamReaderInterface::mpa_cborReader, readCbor(), and readRun().

Referenced by readCbor(), and readCbor().

◆ readRun()

void pappso::cbor::mzcbor::MzcborCopyReplaceBase::readRun ( pappso::UiMonitorInterface & monitor)
protected

Definition at line 198 of file mzcborcopyreplacebase.cpp.

199{
200
201 // <run
202 // id="20120906_balliau_extract_1_A01_urnb-1"
203 // defaultInstrumentConfigurationRef="IC1"
204 // startTimeStamp="2012-09-06T16:17:42.762Z"
205 // defaultSourceFileRef="RAW1"
206 // >
207 // <spectrumList
208 // count="3"
209 // defaultDataProcessingRef="ThermoRawFileParserProcessing"
210 // >
211 //
212 mp_cborOutput->startMap();
213 mpa_cborReader->enterContainer();
214 QCborMap tmp_map;
215
216 QStringList copy_tags;
217 copy_tags << "id" << "defaultInstrumentConfigurationRef" << "startTimeStamp"
218 << "defaultSourceFileRef";
219 while(!mpa_cborReader->lastError() && mpa_cborReader->hasNext())
220 {
222 qDebug() << m_expectedString;
223
224
225 if(copy_tags.contains(m_expectedString))
226 {
229 qDebug() << m_expectedString;
231 }
232
233 else if(m_expectedString == "spectrumList")
234 {
236 readSpectrumList(monitor);
237 }
238 else if(m_expectedString == "chromatogramList")
239 {
241 mpa_cborReader->readCborMap(tmp_map);
242 mp_cborOutput->writeCborMap(tmp_map);
243 }
244 else
245 {
246 throw pappso::PappsoException(
247 QObject::tr("ERROR: %1 not expected in mzCBOR run").arg(m_expectedString));
248 }
249 }
250
251 mp_cborOutput->endMap();
252 mpa_cborReader->leaveContainer();
253}
void readSpectrumList(pappso::UiMonitorInterface &monitor)

References pappso::cbor::CborStreamReaderInterface::getExpectedString(), pappso::cbor::CborStreamReaderInterface::m_expectedString, mp_cborOutput, pappso::cbor::CborStreamReaderInterface::mpa_cborReader, and readSpectrumList().

Referenced by readRoot().

◆ readSpectrumList()

void pappso::cbor::mzcbor::MzcborCopyReplaceBase::readSpectrumList ( pappso::UiMonitorInterface & monitor)
protected

Definition at line 257 of file mzcborcopyreplacebase.cpp.

258{
259
260 // <spectrumList
261 // count="3"
262 // defaultDataProcessingRef="ThermoRawFileParserProcessing"
263 // >
264 //
265 mp_cborOutput->startMap();
266 mpa_cborReader->enterContainer();
267 QCborMap tmp_map;
268 QCborValue tmp_value;
269 QcborSpectrum cbor_spectrum;
270
271 SpectrumTube spectrum_tube;
272
273 QStringList copy_tags;
274 copy_tags << "defaultDataProcessingRef";
275 while(!mpa_cborReader->lastError() && mpa_cborReader->hasNext())
276 {
278 qDebug() << m_expectedString;
279
280
281 if(copy_tags.contains(m_expectedString))
282 {
284 mpa_cborReader->readCborValue(tmp_value);
285 mp_cborOutput->writeCborValue(tmp_value);
286 }
287 else if(m_expectedString == "count")
288 {
289 if(mpa_cborReader->isInteger())
290 {
291 monitor.setStatus(
292 QObject::tr("original spectrumList count=%1").arg(mpa_cborReader->toInteger()));
293 monitor.setTotalSteps(mpa_cborReader->toInteger());
294 }
295 mpa_cborReader->next();
296 }
297 else if(m_expectedString == "spectrum")
298 {
299 qDebug() << m_expectedString;
300
301 // this is an array
302 mpa_cborReader->enterContainer();
303 while(!mpa_cborReader->lastError() && mpa_cborReader->hasNext())
304 {
305 mpa_cborReader->readCborMap(cbor_spectrum);
306 monitor.count();
307 processQcborSpectrum(spectrum_tube, cbor_spectrum);
308 }
309
310
311 mpa_cborReader->leaveContainer();
312
313
314 monitor.setStatus(QObject::tr("new spectrumList count=%1").arg(spectrum_tube.size()));
315 mp_cborOutput->append("count");
316 mp_cborOutput->append((quint64)spectrum_tube.size());
318 mp_cborOutput->startArray();
319
320 spectrum_tube.flush(mp_cborOutput);
321
322 mp_cborOutput->endArray();
323 }
324 else
325 {
326 throw pappso::PappsoException(
327 QObject::tr("ERROR: %1 not expected in mzCBOR spectrumList").arg(m_expectedString));
328 }
329 }
330
331
332 mp_cborOutput->endMap();
333 mpa_cborReader->leaveContainer();
334}
virtual void setStatus(const QString &status)=0
current status of the process
virtual void setTotalSteps(std::size_t total_number_of_steps)
use it if the number of steps is known in an algorithm the total number of steps is usefull to report...
virtual void count()=0
count steps report when a step is computed in an algorithm
virtual void processQcborSpectrum(SpectrumTube &spectrum_tube, QcborSpectrum &cbor_spectrum)

References pappso::UiMonitorInterface::count(), pappso::cbor::mzcbor::SpectrumTube::flush(), pappso::cbor::CborStreamReaderInterface::getExpectedString(), pappso::cbor::CborStreamReaderInterface::m_expectedString, mp_cborOutput, pappso::cbor::CborStreamReaderInterface::mpa_cborReader, processQcborSpectrum(), pappso::UiMonitorInterface::setStatus(), pappso::UiMonitorInterface::setTotalSteps(), and pappso::cbor::mzcbor::SpectrumTube::size().

Referenced by readRun().

Member Data Documentation

◆ m_isMzcbor

bool pappso::cbor::mzcbor::MzcborCopyReplaceBase::m_isMzcbor = false
private

Definition at line 91 of file mzcborcopyreplacebase.h.

◆ m_operation

QString pappso::cbor::mzcbor::MzcborCopyReplaceBase::m_operation
protected

Definition at line 88 of file mzcborcopyreplacebase.h.

Referenced by MzcborCopyReplaceBase(), and readCbor().

◆ m_stopParsing

bool pappso::cbor::mzcbor::MzcborCopyReplaceBase::m_stopParsing = false
protected

Definition at line 86 of file mzcborcopyreplacebase.h.

◆ m_uuid

QString pappso::cbor::mzcbor::MzcborCopyReplaceBase::m_uuid
private

Definition at line 92 of file mzcborcopyreplacebase.h.

◆ mp_cborOutput

CborStreamWriter* pappso::cbor::mzcbor::MzcborCopyReplaceBase::mp_cborOutput
protected

The documentation for this class was generated from the following files: