summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibProtocol/Request.h
diff options
context:
space:
mode:
Diffstat (limited to 'Userland/Libraries/LibProtocol/Request.h')
-rw-r--r--Userland/Libraries/LibProtocol/Request.h17
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;