38 reader.enterContainer();
40 while(reader.hasNext() && (!reader.isInvalid()))
47 if(txt_value ==
"bits")
50 bits = reader.toUnsignedInteger();
53 else if(txt_value ==
"isInt")
56 isInt = reader.toBool();
59 else if(txt_value ==
"unit")
65 else if(txt_value ==
"compress")
71 else if(txt_value ==
"data")
76 auto r = reader.readByteArray();
77 while(r.status == QCborStreamReader::Ok)
80 r = reader.readByteArray();
83 if(r.status == QCborStreamReader::Error)
105 reader.leaveContainer();
134 std::size_t encodedLength = reader.attributes().value(
"encodedLength").toULongLong();
135 while(reader.readNext() && !reader.isEndElement())
137 if(reader.isStartElement())
139 if(reader.name().toString() ==
"cvParam")
141 QString accession = reader.attributes().value(
"accession").toString();
144 if(accession ==
"MS:1000523")
149 else if(accession ==
"MS:1000519")
162 else if(accession ==
"MS:1000521")
174 else if(accession ==
"MS:1000522")
188 else if(accession ==
"MS:1000574")
192 else if(accession ==
"MS:1000576")
204 else if(accession ==
"MS:1000515")
208 else if(accession ==
"MS:1000514")
218 QObject::tr(
"cvParam accession %1 is not known in binaryDataArray")
221 reader.skipCurrentElement();
223 else if(reader.name().toString() ==
"binary")
226 while(reader.readNext() && !reader.isEndElement())
228 if(reader.isCharacters())
231 QStringView content = reader.text().trimmed();
232 if((reader.text().toString() ==
"\n") || (reader.text().toString() ==
"\n\t"))
238 if(!content.isEmpty())
242 if((std::size_t)reader.text().size() != encodedLength)
244 qWarning() <<
"reader.text().size() != encodedLength"
245 << reader.text().size() <<
" " << encodedLength;
258 reader.skipCurrentElement();
404 std::vector<double> &double_list)
const
407 int size_in_byte = 8;
417 std::vector<unsigned char> data_heap;
418 uLongf decompressedSize = estimated_length * size_in_byte;
419 data_heap.resize(decompressedSize);
422 int result_zlib = uncompress(
423 data_heap.data(), &decompressedSize, (Bytef *)
byteArray.constData(),
byteArray.size());
425 if(result_zlib != Z_OK)
431 data_heap.resize(decompressedSize);
432 double_list.resize(decompressedSize / size_in_byte);
437 for(std::size_t i = 0; i < data_heap.size(); i += size_in_byte)
443 double_list[j] = *(std::int32_t *)&data_heap[i];
447 double_list[j] = *(std::float_t *)&data_heap[i];
454 double_list[j] = *(std::int64_t *)&data_heap[i];
458 double_list[j] = *(
double *)&data_heap[i];
470 for(std::size_t i = 0; i < (std::size_t)
byteArray.size(); i += size_in_byte)
476 double_list[j] = *(std::int32_t *)&
byteArray.constData()[i];
480 double_list[j] = *(std::float_t *)&
byteArray.constData()[i];
487 double_list[j] = *(std::int64_t *)&
byteArray.constData()[i];
491 double_list[j] = *(
double *)&
byteArray.constData()[i];