diff options
Diffstat (limited to 'Libraries/LibCore/CHttpJob.h')
-rw-r--r-- | Libraries/LibCore/CHttpJob.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/Libraries/LibCore/CHttpJob.h b/Libraries/LibCore/CHttpJob.h new file mode 100644 index 0000000000..5b714a7f77 --- /dev/null +++ b/Libraries/LibCore/CHttpJob.h @@ -0,0 +1,33 @@ +#pragma once + +#include <AK/HashMap.h> +#include <LibCore/CHttpRequest.h> +#include <LibCore/CNetworkJob.h> + +class CTCPSocket; + +class CHttpJob final : public CNetworkJob { +public: + explicit CHttpJob(const CHttpRequest&); + virtual ~CHttpJob() override; + + virtual void start() override; + + virtual const char* class_name() const override { return "CHttpJob"; } + +private: + void on_socket_connected(); + + enum class State { + InStatus, + InHeaders, + InBody, + Finished, + }; + + CHttpRequest m_request; + CTCPSocket* m_socket { nullptr }; + State m_state { State::InStatus }; + int m_code { -1 }; + HashMap<String, String> m_headers; +}; |