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();
115 for(
auto it_binarr = cbor_map.cbegin(); it_binarr != cbor_map.cend(); it_binarr++)
120 txt_value = it_binarr.key().toString();
122 if(txt_value ==
"bits")
125 bits = it_binarr.value().toInteger();
127 else if(txt_value ==
"isInt")
130 isInt = it_binarr.value().toBool();
132 else if(txt_value ==
"unit")
135 unit = it_binarr.value().toString();
137 else if(txt_value ==
"compress")
140 compress = it_binarr.value().toString();
142 else if(txt_value ==
"data")
147 byteArray = it_binarr.value().toByteArray();
178 std::size_t encodedLength = reader.attributes().value(
"encodedLength").toULongLong();
179 qDebug() <<
"encodedLength=" << encodedLength;
180 while(reader.readNext() && !reader.isEndElement())
182 if(reader.isStartElement())
184 if(reader.name().toString() ==
"cvParam")
186 QString accession = reader.attributes().value(
"accession").toString();
188 qDebug() <<
"accession=" << accession;
190 if(accession ==
"MS:1000523")
195 else if(accession ==
"MS:1000519")
208 else if(accession ==
"MS:1000521")
220 else if(accession ==
"MS:1000522")
234 else if(accession ==
"MS:1000574")
238 else if(accession ==
"MS:1000576")
250 else if(accession ==
"MS:1000515")
254 else if(accession ==
"MS:1000514")
261 else if(accession ==
"MS:1000595")
268 else if(accession ==
"MS:1000786")
279 QObject::tr(
"cvParam accession %1 is not known in binaryDataArray")
282 QObject::tr(
"cvParam accession %1 is not known in binaryDataArray")
285 reader.skipCurrentElement();
287 else if(reader.name().toString() ==
"binary")
290 while(reader.readNext() && !reader.isEndElement())
292 if(reader.isCharacters())
295 QStringView content = reader.text().trimmed();
296 if((reader.text().toString() ==
"\n") || (reader.text().toString() ==
"\n\t"))
302 if(!content.isEmpty())
306 if((std::size_t)reader.text().size() != encodedLength)
308 qWarning() <<
"reader.text().size() != encodedLength"
309 << reader.text().size() <<
" " << encodedLength;
322 reader.skipCurrentElement();
501 std::vector<double> &double_list)
const
504 int size_in_byte = 8;
516 std::vector<unsigned char> data_heap;
517 uLongf decompressedSize = estimated_length * size_in_byte;
518 data_heap.resize(decompressedSize);
521 int result_zlib = uncompress(
522 data_heap.data(), &decompressedSize, (Bytef *)
byteArray.constData(),
byteArray.size());
524 if(result_zlib != Z_OK)
530 data_heap.resize(decompressedSize);
531 double_list.resize(decompressedSize / size_in_byte);
536 for(std::size_t i = 0; i < data_heap.size(); i += size_in_byte)
542 double_list[j] = *(std::int32_t *)&data_heap[i];
546 double_list[j] = *(std::float_t *)&data_heap[i];
553 double_list[j] = *(std::int64_t *)&data_heap[i];
557 double_list[j] = *(
double *)&data_heap[i];
567 qDebug() << size_in_byte <<
" " <<
byteArray.size();
569 double_list.resize(
byteArray.size() / size_in_byte);
572 for(std::size_t i = 0; i < (std::size_t)
byteArray.size(); i += size_in_byte)
574 qDebug() <<
" i=" << i;
579 double_list[j] = *(std::int32_t *)&
byteArray.constData()[i];
583 double_list[j] = *(std::float_t *)&
byteArray.constData()[i];
590 double_list[j] = *(std::int64_t *)&
byteArray.constData()[i];
595 double_list[j] = *(
double *)&
byteArray.constData()[i];