Andreas Kling
4298ba25c3
LibCore: Convert CTCPSocket to ObjectPtr, add construct() helper
...
The C_OBJECT macro now also inserts a static construct(...) helper into
the class. Now we can make the constructor(s) private and instead call:
auto socket = CTCPSocket::construct(arguments);
construct() returns an ObjectPtr<T>, which we'll later switch to being
a NonnullRefPtr<T>, once everything else in in place for ref-counting.
2019-09-21 15:25:08 +02:00
Andreas Kling
ee83b1bcf4
LibCore: Use URL in CHttpRequest
...
Now there's just CHttpRequest::set_url(URL), no need to specify the
host, port and path manually anymore.
Updated ChanViewer and Downloader for the API change.
2019-08-10 19:32:03 +02:00
Andreas Kling
54ed6a888d
LibCore: Move CHttpJob and CNetworkJob output to the right places
...
Errors go to stderr, debug output goes to the debug console. :^)
2019-08-04 22:10:54 +02:00
Andreas Kling
b5aac9c44b
CHttpJob: Drive response download via on_ready_read instead of blocking
...
This allows the event loop to service events while an HTTP download is
happening. Pretty cool :^)
2019-08-04 18:59:06 +02:00
Andreas Kling
a8740f82eb
CHttpJob: Collect the payload as a list of buffers during download
...
Instead of growing the payload buffer as-we-go. This avoids wasting a
ton of time on buffer reallocation for non-trivial payloads.
2019-08-04 14:54:25 +02:00
Andreas Kling
273d9d6cf5
CHttpJob: If no "Content-Length" header was received, read until EOF
...
Instead of aborting after receiving the first chunk, we have to keep
reading until EOF.
2019-08-04 09:26:08 +02:00
Andreas Kling
1d0b464618
AK: Make HashMap::get(Key) return an Optional<Value>.
...
This allows HashMap::get() to be used for value types that cannot be default
constructed (e.g NonnullOwnPtr.)
2019-07-24 10:25:43 +02:00
Andreas Kling
04b9dc2d30
Libraries: Create top level directory for libraries.
...
Things were getting a little crowded in the project root, so this patch
moves the Lib*/ directories into Libraries/.
2019-07-04 16:16:50 +02:00