#
78b14420 |
|
24-Jul-2020 |
Leorize <leorize+oss@disroot.org> |
libbnetapi: BUrlRequest now outputs to BDataIO Previously, BUrlRequest returns data received via a callback that can't return any value. This approach have several issues: - It's not possible to signify failures to the request. - Users have to implement custom listeners just to handle the common case of outputting to a buffer/file/etc. - The received data has to be serialized into BMessage when BUrlProtocolDispatchingListener is employed. This can cause a noticible slowdown in real-world scenarios as evident by #10748. With this change, BUrlRequest will output directly into a BDataIO, which exposes a richer API for request handlers to work with (for example a BitTorrent client can request a BPositionIO for non-linear data delivery), as well as simplifying common cases for users. The adaptation only requires one additional API: BHttpRequest::SetStopOnError(). This API simply instructs the HTTP request handler to cancel the request if an HTTP error is occurred. Change-Id: I4160884d77bff0e7678e0a623e2587987704443a Reviewed-on: https://review.haiku-os.org/c/haiku/+/3084 Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
|
#
1f569db0 |
|
15-Jul-2020 |
Leorize <leorize+oss@disroot.org> |
FileRequest: Make Stop() cancel the request as soon as possible This commit implements a check for the flag raised by Stop() to cancel a given request as soon as possible. Cancelled requests will return B_INTERRUPTED regardless of whether the request has completed, on par with how BHttpRequest is behaving at the moment. Change-Id: Ia8a95b910cff158c710c5b2ed58b4675e705642e Reviewed-on: https://review.haiku-os.org/c/haiku/+/3071 Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|