Details
-
Task
-
Resolution: Done
-
P2: Important
-
6.7
-
None
-
-
13
-
98b240d00 (dev), 669a48e5a (dev), 298d5a4bb (dev), e9f703ed3 (dev)
-
Foundation Sprint 86, Foundation Sprint 87, Foundation Sprint 88, Foundation Sprint 89, Foundation Sprint 90, Foundation Sprint 91, Foundation Sprint 92, Foundation Sprint 93, Foundations Sprint 94, Foundations Sprint 95, Foundations Sprint 96, Foundations Sprint 97
Description
The first patch-set implemented the most important enablers. Few features were omitted to keep commits smaller. This task is about adding these features:
- readyRead() handling *)
- settable timeout for requests
- progress signaling (download upload)
*) A note for readyRead() support
QRestReply class provides getter functions to often used datatypes:
byteArray() => QByteArray
text() => QString
jsonObject() => QJsonObject
It needs to be documented and defined what happens when these functions are called during a "readyRead()" handling, when potentially only part of the data is received.
Initial thinking:
- byteArray()
- return all bytes that haven't been read yet (exhausts/consumes the data)
- text()
- return QString received since start or previous text() call, internally keeping text codec state. The text data may be UTF-8, UTF-16 or UTF-32, which means that the character boundary may be byte-wise cut in the middle, causing a loss of character or an error => by keeping a text codec state this could be addressed (QStringDecoder).
- Alternatively discourage and convert whatever has been received so far, and exhaust / consume the data
- jsonObject()
- discouraged as the json object is probably not valid/complete. Attempt to convert to jsonObject, exhausts/consumes the data