WIP: somethings wrong.. #19

Closed
muellerr wants to merge 808 commits from source/master into master
2 changed files with 20 additions and 0 deletions
Showing only changes of commit 5cb591a063 - Show all commits

View File

@ -78,6 +78,22 @@ public:
}
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:
ArrayList<T, count_t> *adaptee;
};

View File

@ -40,6 +40,10 @@ public:
bool bigEndian) {
return SerialArrayListAdapter<BUFFER_TYPE, count_t>::deSerialize(this, buffer, size, bigEndian);
}
void swapArrayListEndianness() {
SerialArrayListAdapter<BUFFER_TYPE, count_t>::swapArrayListEndianness(this);
}
};