extendd getName with optional field index
This commit is contained in:
+19
-2
@@ -803,6 +803,22 @@ unsigned char DataFieldSet::getLength(PartType partType, unsigned char maxLength
|
|||||||
return length;
|
return length;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
string DataFieldSet::getName(signed char fieldIndex)
|
||||||
|
{
|
||||||
|
if (fieldIndex<0) {
|
||||||
|
return m_name;
|
||||||
|
}
|
||||||
|
if ((unsigned char)fieldIndex>=m_fields.size()) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
if (m_uniqueNames) {
|
||||||
|
return m_fields[fieldIndex]->getName();
|
||||||
|
}
|
||||||
|
ostringstream ostream;
|
||||||
|
ostream << static_cast<signed>(fieldIndex);
|
||||||
|
return ostream.str();
|
||||||
|
}
|
||||||
|
|
||||||
result_t DataFieldSet::derive(string name, string comment,
|
result_t DataFieldSet::derive(string name, string comment,
|
||||||
string unit, const PartType partType,
|
string unit, const PartType partType,
|
||||||
int divisor, map<unsigned int, string> values,
|
int divisor, map<unsigned int, string> values,
|
||||||
@@ -835,10 +851,11 @@ void DataFieldSet::dump(ostream& output)
|
|||||||
{
|
{
|
||||||
bool first = true;
|
bool first = true;
|
||||||
for (vector<SingleDataField*>::iterator it = m_fields.begin(); it < m_fields.end(); it++) {
|
for (vector<SingleDataField*>::iterator it = m_fields.begin(); it < m_fields.end(); it++) {
|
||||||
if (first)
|
if (first) {
|
||||||
first = false;
|
first = false;
|
||||||
else
|
} else {
|
||||||
output << FIELD_SEPARATOR;
|
output << FIELD_SEPARATOR;
|
||||||
|
}
|
||||||
(*it)->dump(output);
|
(*it)->dump(output);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+7
-3
@@ -128,10 +128,11 @@ public:
|
|||||||
vector<SingleDataField*>& fields) = 0;
|
vector<SingleDataField*>& fields) = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the field name.
|
* Get the specified field name.
|
||||||
* @return the field name.
|
* @param fieldIndex the index of the field, or -1 for this.
|
||||||
|
* @return the field name, or the index as string if not unique or not available.
|
||||||
*/
|
*/
|
||||||
string getName() const { return m_name; }
|
virtual string getName(signed char fieldIndex=-1) const { return m_name; }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the field comment.
|
* Get the field comment.
|
||||||
@@ -549,6 +550,9 @@ public:
|
|||||||
// @copydoc
|
// @copydoc
|
||||||
virtual unsigned char getLength(PartType partType, unsigned char maxLength=MAX_LEN);
|
virtual unsigned char getLength(PartType partType, unsigned char maxLength=MAX_LEN);
|
||||||
|
|
||||||
|
// @copydoc
|
||||||
|
virtual string getName(signed char fieldIndex=-1);
|
||||||
|
|
||||||
// @copydoc
|
// @copydoc
|
||||||
virtual result_t derive(string name, string comment,
|
virtual result_t derive(string name, string comment,
|
||||||
string unit, const PartType partType,
|
string unit, const PartType partType,
|
||||||
|
|||||||
Reference in New Issue
Block a user