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

#include <spectrumtube.h>

Public Member Functions

 SpectrumTube ()
virtual ~SpectrumTube ()
const QString push_back (QcborSpectrum &spectrum)
void flush (pappso::cbor::CborStreamWriter *cbor_writer_p)
std::size_t size () const

Private Member Functions

void writeQcborSpectrumInBuffer (const QcborSpectrum &spectrum, const QString &old_native_id)

Private Attributes

std::size_t m_size = 0
QTemporaryFile * mpa_buffer = nullptr
pappso::cbor::CborStreamWriter * mpa_bufferWriter = nullptr

Detailed Description

Todo
write docs

Definition at line 48 of file spectrumtube.h.

Constructor & Destructor Documentation

◆ SpectrumTube()

pappso::cbor::mzcbor::SpectrumTube::SpectrumTube ( )

Definition at line 43 of file spectrumtube.cpp.

44{
45 mpa_buffer = new QTemporaryFile();
46 mpa_buffer->open();
47 qDebug() << mpa_buffer->fileName();
48 mpa_bufferWriter = new pappso::cbor::CborStreamWriter(mpa_buffer);
49}
pappso::cbor::CborStreamWriter * mpa_bufferWriter

References mpa_buffer, and mpa_bufferWriter.

◆ ~SpectrumTube()

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

Definition at line 51 of file spectrumtube.cpp.

52{
53
54 if(mpa_buffer != nullptr)
55 {
56 delete mpa_buffer;
57 }
58 if(mpa_bufferWriter != nullptr)
59 {
60 delete mpa_bufferWriter;
61 }
62}

References mpa_buffer, and mpa_bufferWriter.

Member Function Documentation

◆ flush()

void pappso::cbor::mzcbor::SpectrumTube::flush ( pappso::cbor::CborStreamWriter * cbor_writer_p)

Definition at line 170 of file spectrumtube.cpp.

171{
172 mpa_buffer->close();
173 mpa_buffer->open();
174 while(!mpa_buffer->atEnd())
175 {
176 cbor_writer_p->device()->write(mpa_buffer->read(1000));
177 }
178}

References mpa_buffer.

Referenced by pappso::cbor::mzcbor::MzcborCopyReplaceBase::readSpectrumList().

◆ push_back()

const QString pappso::cbor::mzcbor::SpectrumTube::push_back ( QcborSpectrum & spectrum)

Definition at line 69 of file spectrumtube.cpp.

70{
71 qDebug() << m_size;
72 std::size_t index = m_size;
73
74 spectrum.setIndex(index);
75
76 // replace scan number in native id
77 const QString native_id(spectrum.getId());
78 QString new_native_id;
79 // controllerType=0 controllerNumber=1 scan=2995
80 //
81 QStringList native_id_list = native_id.split(" scan=");
82 if(native_id_list.size() < 2)
83 {
84 new_native_id = QString("%1 index=%2").arg(native_id).arg(index);
85 }
86 else
87 {
88 new_native_id = QString("%1 scan=%2").arg(native_id_list[0]).arg(index + 1);
89 }
90
91 // spectrum.addUserParam();
92
93 spectrum.setId(new_native_id);
94
95 qDebug();
96
97 writeQcborSpectrumInBuffer(spectrum, native_id);
98 // qDebug() << mpa_buffer->data().length();
99 m_size++;
100 return native_id;
101}
void writeQcborSpectrumInBuffer(const QcborSpectrum &spectrum, const QString &old_native_id)

References pappso::cbor::mzcbor::QcborSpectrum::getId(), m_size, pappso::cbor::mzcbor::QcborSpectrum::setId(), pappso::cbor::mzcbor::QcborSpectrum::setIndex(), and writeQcborSpectrumInBuffer().

Referenced by pappso::cbor::mzcbor::MzcborCopyReplaceBase::processQcborSpectrum(), and pappso::cbor::mzcbor::MzcborPrecursorFinder::processQcborSpectrum().

◆ size()

std::size_t pappso::cbor::mzcbor::SpectrumTube::size ( ) const

Definition at line 64 of file spectrumtube.cpp.

65{
66 return m_size;
67}

References m_size.

Referenced by pappso::cbor::mzcbor::MzcborCopyReplaceBase::readSpectrumList().

◆ writeQcborSpectrumInBuffer()

void pappso::cbor::mzcbor::SpectrumTube::writeQcborSpectrumInBuffer ( const QcborSpectrum & spectrum,
const QString & old_native_id )
private

Definition at line 104 of file spectrumtube.cpp.

106{
107
108 // "id": "controllerType=0 controllerNumber=1 scan=3001",
109 // "index": 3000,
110 // "defaultArrayLength": 235,
111 // "cvParam": [],
112 // "userParam": [
113 // {
114 // "name": "[PAPPSO]original spectrum native id",
115 // "type": "xsd:string",
116 // "value": old_native_id
117 // }
118 // ],
119 QCborMap new_user_param;
120 new_user_param.insert(QString("name"), "[PAPPSO]original spectrum native id");
121 new_user_param.insert(QString("type"), "xsd:string");
122 new_user_param.insert(QString("value"), old_native_id);
123 //"scanList": {},
124 //"precursorList": {},
125 //"binaryDataArray": []
126 mpa_bufferWriter->startMap();
127 bool write_user_param = false;
128 for(auto it_cbor = spectrum.begin(); it_cbor != spectrum.end(); it_cbor++)
129 {
130 QString current_key = it_cbor.key().toString();
131
132 if(write_user_param)
133 {
134 if(current_key == "userParam")
135 {
136 QCborArray user_param_array = it_cbor.value().toArray();
137 user_param_array.append(new_user_param);
138 mpa_bufferWriter->writeCborValue(it_cbor.key());
139 mpa_bufferWriter->writeCborValue(user_param_array);
140 continue;
141 }
142 else
143 {
144 mpa_bufferWriter->append("userParam");
145 mpa_bufferWriter->startArray();
146 mpa_bufferWriter->writeCborMap(new_user_param);
147 mpa_bufferWriter->endArray();
148 }
149 write_user_param = false;
150 }
151
152 if(current_key == "cvParam")
153 {
154 // write cvParam
155 mpa_bufferWriter->writeCborValue(it_cbor.key());
156 mpa_bufferWriter->writeCborValue(it_cbor.value());
157 write_user_param = true;
158 }
159 else
160 {
161 mpa_bufferWriter->writeCborValue(it_cbor.key());
162 mpa_bufferWriter->writeCborValue(it_cbor.value());
163 }
164 }
165 mpa_bufferWriter->endMap();
166 // mpa_bufferWriter->writeCborMap(spectrum);
167}

References mpa_bufferWriter.

Referenced by push_back().

Member Data Documentation

◆ m_size

std::size_t pappso::cbor::mzcbor::SpectrumTube::m_size = 0
private

Definition at line 64 of file spectrumtube.h.

Referenced by push_back(), and size().

◆ mpa_buffer

QTemporaryFile* pappso::cbor::mzcbor::SpectrumTube::mpa_buffer = nullptr
private

Definition at line 65 of file spectrumtube.h.

Referenced by SpectrumTube(), ~SpectrumTube(), and flush().

◆ mpa_bufferWriter

pappso::cbor::CborStreamWriter* pappso::cbor::mzcbor::SpectrumTube::mpa_bufferWriter = nullptr
private

Definition at line 66 of file spectrumtube.h.

Referenced by SpectrumTube(), ~SpectrumTube(), and writeQcborSpectrumInBuffer().


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