// ----------------------------------------------------------------------------- // // ----------------------------------------------------------------------------- ComparisonInputs JsonFilterParametersReader::readComparisonInputs(const QString name, ComparisonInputs defValues) { BOOST_ASSERT(m_CurrentFilterIndex.isEmpty() == false); if (m_CurrentFilterIndex.contains(name) == false) { return defValues; } if (m_CurrentFilterIndex.value(name).isArray()) { QJsonArray cInputsArray = m_CurrentFilterIndex.value(name).toArray(); ComparisonInputs inputs; for (int i = 0; i < cInputsArray.size(); i++) { if (cInputsArray[i].isObject() == true) { QJsonObject cInputObj = cInputsArray[i].toObject(); ComparisonInput_t cInput; if (cInput.readJson(cInputObj) == true) { inputs.addInput(cInput); } else { return defValues; } } } return inputs; } return defValues; }
// ----------------------------------------------------------------------------- // // ----------------------------------------------------------------------------- int H5FilterParametersWriter::writeValue(const QString name, ComparisonInputs v) { int numQFilters = static_cast<int>( v.size() ); int err = 0; QString buf; QTextStream ss(&buf); // Create a string that is comma delimited for each comparison operator and new line delimited // to mark the end of each ComparisonOpertor struct for(int i = 0; i < numQFilters; i++) { ss << v[i].dataContainerName << "," << v[i].attributeMatrixName << "," << v[i].attributeArrayName << "," << v[i].compOperator << "," << v[i].compValue << "\n"; } // Write the data set to the file and attach an attribute that says how many there were. if(numQFilters > 0) { err = QH5Lite::writeStringDataset(m_CurrentGroupId, name, buf); if (err < 0) { return err; } err = QH5Lite::writeScalarAttribute(m_CurrentGroupId, name, "NumInputs", numQFilters); if (err < 0) { return err; } } return err; }
// ----------------------------------------------------------------------------- // // ----------------------------------------------------------------------------- int QFilterParametersWriter::writeValue(const QString name, ComparisonInputs v) { int count = static_cast<int>( v.size() ); int err = 0; m_Prefs->beginWriteArray(name, count); for(int i = 0; i < count; ++i) { ComparisonInput_t d = v[i]; m_Prefs->setArrayIndex(i); m_Prefs->setValue("DataContainerName", d.dataContainerName); m_Prefs->setValue("AttributeMatrixName", d.attributeMatrixName); m_Prefs->setValue("AttributeArrayName", d.attributeArrayName); m_Prefs->setValue("CompOperator", d.compOperator); m_Prefs->setValue("CompValue", d.compValue); } m_Prefs->endArray(); return err; }
// ----------------------------------------------------------------------------- // // ----------------------------------------------------------------------------- int H5FilterParametersWriter::writeValue(const QString name, ComparisonInput_t comp) { ComparisonInputs v; v.addInput(comp); return writeValue(name, v); }