Array List swapper for SerialFixedArrayList
This commit is contained in:
parent
6fe0f45c27
commit
5cb591a063
@ -78,6 +78,22 @@ public:
|
|||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Swap the endianness of the Array list (not the length field !)
|
||||||
|
* Useful if the case the buffer type is large than uint8_t and the endianness
|
||||||
|
* is inconsistent with other SerializeElements.
|
||||||
|
* @param list
|
||||||
|
*/
|
||||||
|
static void swapArrayListEndianness(ArrayList<T, count_t>* list) {
|
||||||
|
ReturnValue_t result = HasReturnvaluesIF::RETURN_OK;
|
||||||
|
count_t i = 0;
|
||||||
|
while ((result == HasReturnvaluesIF::RETURN_OK) && (i < list->size)) {
|
||||||
|
T newEntry = EndianSwapper::swap(list->entries[i]);
|
||||||
|
list->entries[i] = newEntry;
|
||||||
|
++i;
|
||||||
|
}
|
||||||
|
}
|
||||||
private:
|
private:
|
||||||
ArrayList<T, count_t> *adaptee;
|
ArrayList<T, count_t> *adaptee;
|
||||||
};
|
};
|
||||||
|
@ -40,6 +40,10 @@ public:
|
|||||||
bool bigEndian) {
|
bool bigEndian) {
|
||||||
return SerialArrayListAdapter<BUFFER_TYPE, count_t>::deSerialize(this, buffer, size, bigEndian);
|
return SerialArrayListAdapter<BUFFER_TYPE, count_t>::deSerialize(this, buffer, size, bigEndian);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void swapArrayListEndianness() {
|
||||||
|
SerialArrayListAdapter<BUFFER_TYPE, count_t>::swapArrayListEndianness(this);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user