30 if (metadataJsonFileName.isEmpty()) {
35 QJsonDocument jsonDoc;
38 qCWarning(CompInfoGeneralLog) <<
"Metadata json file open failed: compid:" <<
compId <<
errorString;
41 QJsonObject jsonObj = jsonDoc.object();
43 QList<JsonHelper::KeyValidateInfo> keyInfoList = {
45 { _jsonMetadataTypesKey, QJsonValue::Array,
true },
48 qCWarning(CompInfoGeneralLog) <<
"Metadata json validation failed: compid:" <<
compId <<
errorString;
54 qCWarning(CompInfoGeneralLog) <<
"Metadata json unsupported version" << version;
58 QJsonArray rgSupportedTypes = jsonObj[_jsonMetadataTypesKey].toArray();
59 for (QJsonValue typeValue : rgSupportedTypes) {
60 int metadataType = typeValue[
"type"].toInt(-1);
61 if (metadataType == -1)
64 uris.uriMetaData = typeValue[
"uri"].toString();
65 uris.crcMetaData = typeValue[
"fileCrc"].toVariant().toLongLong();
66 uris.crcMetaDataValid = typeValue.toObject().contains(
"fileCrc");
67 uris.uriMetaDataFallback = typeValue[
"uriFallback"].toString();
68 uris.crcMetaDataFallback = typeValue[
"fileCrcFallback"].toVariant().toLongLong();
69 uris.crcMetaDataFallbackValid = typeValue.toObject().contains(
"fileCrcFallback");
70 uris.uriTranslation = typeValue[
"translationUri"].toString();
71 uris.uriTranslationFallback = typeValue[
"translationUriFallback"].toString();
73 if (uris.uriMetaData.isEmpty() || !uris.crcMetaDataValid) {
76 qCDebug(ComponentInformationManagerLog) <<
"Metadata missing fields: type:uri:crcValid" << metadataType <<
77 uris.uriMetaData << uris.crcMetaDataValid;
81 _supportedTypes[(COMP_METADATA_TYPE)metadataType] = uris;
82 qCDebug(CompInfoGeneralLog) <<
"Metadata type : uri : crc" << metadataType << uris.uriMetaData << uris.crcMetaData;
bool isJsonFile(const QByteArray &bytes, QJsonDocument &jsonDoc, QString &errorString)
Determines whether an in-memory byte buffer contains parseable JSON content.