/proc/self/cwd/envoy/http/message.h
Line | Count | Source |
1 | | #pragma once |
2 | | |
3 | | #include <memory> |
4 | | #include <string> |
5 | | |
6 | | #include "envoy/buffer/buffer.h" |
7 | | #include "envoy/http/header_map.h" |
8 | | |
9 | | namespace Envoy { |
10 | | namespace Http { |
11 | | |
12 | | /** |
13 | | * Wraps an HTTP message including its headers, body, and any trailers. |
14 | | */ |
15 | | template <class HeaderType, class TrailerType> class Message { |
16 | | public: |
17 | 33.2k | virtual ~Message() = default; Envoy::Http::Message<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseTrailerMap>::~Message() Line | Count | Source | 17 | 5.76k | virtual ~Message() = default; |
Envoy::Http::Message<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestTrailerMap>::~Message() Line | Count | Source | 17 | 27.4k | virtual ~Message() = default; |
|
18 | | |
19 | | /** |
20 | | * @return HeaderType& the message headers. |
21 | | */ |
22 | | virtual HeaderType& headers() PURE; |
23 | | |
24 | | /** |
25 | | * @return Buffer::Instance the message body, if any. Callers are free to modify the body. |
26 | | */ |
27 | | virtual Buffer::Instance& body() PURE; |
28 | | |
29 | | /** |
30 | | * @return TrailerType* the message trailers, if any. |
31 | | */ |
32 | | virtual TrailerType* trailers() PURE; |
33 | | |
34 | | /** |
35 | | * Set the trailers. |
36 | | * @param trailers supplies the new trailers. |
37 | | */ |
38 | | virtual void trailers(std::unique_ptr<TrailerType>&& trailers) PURE; |
39 | | |
40 | | /** |
41 | | * @return std::string the message body as a std::string. |
42 | | */ |
43 | | virtual std::string bodyAsString() const PURE; |
44 | | }; |
45 | | |
46 | | using RequestMessage = Message<RequestHeaderMap, RequestTrailerMap>; |
47 | | using RequestMessagePtr = std::unique_ptr<RequestMessage>; |
48 | | using ResponseMessage = Message<ResponseHeaderMap, ResponseTrailerMap>; |
49 | | using ResponseMessagePtr = std::unique_ptr<ResponseMessage>; |
50 | | |
51 | | } // namespace Http |
52 | | } // namespace Envoy |