5#include <userver/server/http/http_response.hpp>
6#include <userver/server/request/response_base.hpp>
10namespace server::handlers {
14namespace server::http {
16class ResponseBodyStream
final {
18 ResponseBodyStream(ResponseBodyStream&&) =
default;
19 ~ResponseBodyStream();
24 void PushBodyChunk(std::string&& chunk, engine::Deadline deadline);
28 void SetBody(std::string&& body);
30 void SetHeader(
const std::string&,
const std::string&);
32 void SetHeader(std::string_view,
const std::string&);
34 void SetEndOfHeaders();
36 void SetStatusCode(
int status_code);
38 void SetStatusCode(HttpStatus status);
41 friend class server::handlers::HttpHandlerBase;
43 ResponseBodyStream(HttpResponse::Producer&& queue_producer, HttpResponse& http_response);
45 bool headers_ended_{
false};
46 bool headers_end_sent_{
false};
47 HttpResponse::Producer queue_producer_;
48 HttpResponse& http_response_;