HttpRequest.cpp 914 B

123456789101112131415161718192021222324252627282930313233
  1. /*
  2. * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #include <LibHTTP/Job.h>
  7. #include <RequestServer/HttpCommon.h>
  8. #include <RequestServer/HttpProtocol.h>
  9. #include <RequestServer/HttpRequest.h>
  10. namespace RequestServer {
  11. HttpRequest::HttpRequest(ConnectionFromClient& client, NonnullRefPtr<HTTP::Job> job, NonnullOwnPtr<Core::Stream::File>&& output_stream)
  12. : Request(client, move(output_stream))
  13. , m_job(job)
  14. {
  15. Detail::init(this, job);
  16. }
  17. HttpRequest::~HttpRequest()
  18. {
  19. m_job->on_finish = nullptr;
  20. m_job->on_progress = nullptr;
  21. m_job->cancel();
  22. }
  23. NonnullOwnPtr<HttpRequest> HttpRequest::create_with_job(Badge<HttpProtocol>&&, ConnectionFromClient& client, NonnullRefPtr<HTTP::Job> job, NonnullOwnPtr<Core::Stream::File>&& output_stream)
  24. {
  25. return adopt_own(*new HttpRequest(client, move(job), move(output_stream)));
  26. }
  27. }