40 reader.enterContainer();
42 while(reader.hasNext() && (!reader.isInvalid()))
49 if(txt_value ==
"bits")
52 bits = reader.toUnsignedInteger();
55 else if(txt_value ==
"isInt")
58 isInt = reader.toBool();
61 else if(txt_value ==
"unit")
67 else if(txt_value ==
"compress")
73 else if(txt_value ==
"data")
78 auto r = reader.readByteArray();
79 while(r.status == QCborStreamReader::Ok)
82 r = reader.readByteArray();
85 if(r.status == QCborStreamReader::Error)
107 reader.leaveContainer();
137 std::size_t encodedLength = reader.attributes().value(
"encodedLength").toULongLong();
138 qDebug() <<
"encodedLength=" << encodedLength;
139 while(reader.readNext() && !reader.isEndElement())
141 if(reader.isStartElement())
143 if(reader.name().toString() ==
"cvParam")
145 QString accession = reader.attributes().value(
"accession").toString();
147 qDebug() <<
"accession=" << accession;
149 if(accession ==
"MS:1000523")
154 else if(accession ==
"MS:1000519")
167 else if(accession ==
"MS:1000521")
179 else if(accession ==
"MS:1000522")
193 else if(accession ==
"MS:1000574")
197 else if(accession ==
"MS:1000576")
209 else if(accession ==
"MS:1000515")
213 else if(accession ==
"MS:1000514")
220 else if(accession ==
"MS:1000595")
227 else if(accession ==
"MS:1000786")
238 QObject::tr(
"cvParam accession %1 is not known in binaryDataArray")
241 QObject::tr(
"cvParam accession %1 is not known in binaryDataArray")
244 reader.skipCurrentElement();
246 else if(reader.name().toString() ==
"binary")
249 while(reader.readNext() && !reader.isEndElement())
251 if(reader.isCharacters())
254 QStringView content = reader.text().trimmed();
255 if((reader.text().toString() ==
"\n") || (reader.text().toString() ==
"\n\t"))
261 if(!content.isEmpty())
265 if((std::size_t)reader.text().size() != encodedLength)
267 qWarning() <<
"reader.text().size() != encodedLength"
268 << reader.text().size() <<
" " << encodedLength;
281 reader.skipCurrentElement();
460 std::vector<double> &double_list)
const
463 int size_in_byte = 8;
475 std::vector<unsigned char> data_heap;
476 uLongf decompressedSize = estimated_length * size_in_byte;
477 data_heap.resize(decompressedSize);
480 int result_zlib = uncompress(
481 data_heap.data(), &decompressedSize, (Bytef *)
byteArray.constData(),
byteArray.size());
483 if(result_zlib != Z_OK)
489 data_heap.resize(decompressedSize);
490 double_list.resize(decompressedSize / size_in_byte);
495 for(std::size_t i = 0; i < data_heap.size(); i += size_in_byte)
501 double_list[j] = *(std::int32_t *)&data_heap[i];
505 double_list[j] = *(std::float_t *)&data_heap[i];
512 double_list[j] = *(std::int64_t *)&data_heap[i];
516 double_list[j] = *(
double *)&data_heap[i];
526 qDebug() << size_in_byte <<
" " <<
byteArray.size();
528 double_list.resize(
byteArray.size() / size_in_byte);
531 for(std::size_t i = 0; i < (std::size_t)
byteArray.size(); i += size_in_byte)
533 qDebug() <<
" i=" << i;
538 double_list[j] = *(std::int32_t *)&
byteArray.constData()[i];
542 double_list[j] = *(std::float_t *)&
byteArray.constData()[i];
549 double_list[j] = *(std::int64_t *)&
byteArray.constData()[i];
554 double_list[j] = *(
double *)&
byteArray.constData()[i];