39 reader.enterContainer();
41 while(reader.hasNext() && (!reader.isInvalid()))
48 if(txt_value ==
"bits")
51 bits = reader.toUnsignedInteger();
54 else if(txt_value ==
"isInt")
57 isInt = reader.toBool();
60 else if(txt_value ==
"unit")
66 else if(txt_value ==
"compress")
72 else if(txt_value ==
"data")
77 auto r = reader.readByteArray();
78 while(r.status == QCborStreamReader::Ok)
81 r = reader.readByteArray();
84 if(r.status == QCborStreamReader::Error)
106 reader.leaveContainer();
136 std::size_t encodedLength = reader.attributes().value(
"encodedLength").toULongLong();
137 qDebug() <<
"encodedLength=" << encodedLength;
138 while(reader.readNext() && !reader.isEndElement())
140 if(reader.isStartElement())
142 if(reader.name().toString() ==
"cvParam")
144 QString accession = reader.attributes().value(
"accession").toString();
146 qDebug() <<
"accession=" << accession;
148 if(accession ==
"MS:1000523")
153 else if(accession ==
"MS:1000519")
166 else if(accession ==
"MS:1000521")
178 else if(accession ==
"MS:1000522")
192 else if(accession ==
"MS:1000574")
196 else if(accession ==
"MS:1000576")
208 else if(accession ==
"MS:1000515")
212 else if(accession ==
"MS:1000514")
219 else if(accession ==
"MS:1000595")
226 else if(accession ==
"MS:1000786")
237 QObject::tr(
"cvParam accession %1 is not known in binaryDataArray")
240 QObject::tr(
"cvParam accession %1 is not known in binaryDataArray")
243 reader.skipCurrentElement();
245 else if(reader.name().toString() ==
"binary")
248 while(reader.readNext() && !reader.isEndElement())
250 if(reader.isCharacters())
253 QStringView content = reader.text().trimmed();
254 if((reader.text().toString() ==
"\n") || (reader.text().toString() ==
"\n\t"))
260 if(!content.isEmpty())
264 if((std::size_t)reader.text().size() != encodedLength)
266 qWarning() <<
"reader.text().size() != encodedLength"
267 << reader.text().size() <<
" " << encodedLength;
280 reader.skipCurrentElement();
459 std::vector<double> &double_list)
const
462 int size_in_byte = 8;
472 std::vector<unsigned char> data_heap;
473 uLongf decompressedSize = estimated_length * size_in_byte;
474 data_heap.resize(decompressedSize);
477 int result_zlib = uncompress(
478 data_heap.data(), &decompressedSize, (Bytef *)
byteArray.constData(),
byteArray.size());
480 if(result_zlib != Z_OK)
486 data_heap.resize(decompressedSize);
487 double_list.resize(decompressedSize / size_in_byte);
492 for(std::size_t i = 0; i < data_heap.size(); i += size_in_byte)
498 double_list[j] = *(std::int32_t *)&data_heap[i];
502 double_list[j] = *(std::float_t *)&data_heap[i];
509 double_list[j] = *(std::int64_t *)&data_heap[i];
513 double_list[j] = *(
double *)&data_heap[i];
525 for(std::size_t i = 0; i < (std::size_t)
byteArray.size(); i += size_in_byte)
531 double_list[j] = *(std::int32_t *)&
byteArray.constData()[i];
535 double_list[j] = *(std::float_t *)&
byteArray.constData()[i];
542 double_list[j] = *(std::int64_t *)&
byteArray.constData()[i];
546 double_list[j] = *(
double *)&
byteArray.constData()[i];