add getField(), getDataType()

This commit is contained in:
John
2021-11-20 10:11:55 +01:00
parent dea6b976e2
commit 8370ba72b4
3 changed files with 54 additions and 0 deletions
+23
View File
@@ -997,6 +997,29 @@ string DataFieldSet::getName(ssize_t fieldIndex) const {
return ostream.str();
}
const SingleDataField* DataFieldSet::getField(ssize_t fieldIndex) const {
if (fieldIndex < (ssize_t)m_ignoredCount) {
return nullptr;
}
if ((size_t)fieldIndex + m_ignoredCount >= m_fields.size()) {
return nullptr;
}
if (m_ignoredCount == 0) {
return m_fields[fieldIndex];
}
ssize_t remain = fieldIndex;
for (const auto field : m_fields) {
if (field->isIgnored()) {
continue;
}
remain--;
if (remain == 0) {
return field;
}
}
return nullptr;
}
result_t DataFieldSet::derive(const string& name, PartType partType, int divisor,
const map<unsigned int, string>& values, map<string, string>* attributes,
vector<const SingleDataField*>* fields) const {