diff options
Diffstat (limited to 'Userland/Libraries/LibProtocol/Request.h')
-rw-r--r-- | Userland/Libraries/LibProtocol/Request.h | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/Userland/Libraries/LibProtocol/Request.h b/Userland/Libraries/LibProtocol/Request.h index cf5cf51262..b649a208ae 100644 --- a/Userland/Libraries/LibProtocol/Request.h +++ b/Userland/Libraries/LibProtocol/Request.h @@ -62,6 +62,9 @@ public: private: explicit Request(RequestClient&, i32 request_id); + template<typename T> + void stream_into_impl(T&); + WeakPtr<RequestClient> m_client; int m_request_id { -1 }; RefPtr<Core::Notifier> m_write_notifier; @@ -69,28 +72,24 @@ private: bool m_should_buffer_all_input { false }; struct InternalBufferedData { - InternalBufferedData(int fd) - : read_stream(fd) - { - } - - InputFileStream read_stream; DuplexMemoryStream payload_stream; HashMap<String, String, CaseInsensitiveStringTraits> response_headers; Optional<u32> response_code; }; struct InternalStreamData { - InternalStreamData(int fd) - : read_stream(fd) + InternalStreamData(NonnullOwnPtr<Core::Stream::Stream> stream) + : read_stream(move(stream)) { } - InputFileStream read_stream; + NonnullOwnPtr<Core::Stream::Stream> read_stream; RefPtr<Core::Notifier> read_notifier; bool success; u32 total_size { 0 }; bool request_done { false }; + Function<void()> on_finish {}; + bool user_finish_called { false }; }; OwnPtr<InternalBufferedData> m_internal_buffered_data; |