Coverage Report

Created: 2023-11-12 09:30

/proc/self/cwd/source/common/http/message_impl.h
Line
Count
Source (jump to first uncovered line)
1
#pragma once
2
3
#include <string>
4
5
#include "envoy/http/header_map.h"
6
#include "envoy/http/message.h"
7
8
#include "source/common/buffer/buffer_impl.h"
9
#include "source/common/common/non_copyable.h"
10
#include "source/common/http/header_map_impl.h"
11
12
namespace Envoy {
13
namespace Http {
14
15
/**
16
 * Implementation of Http::Message. This implementation does not support streaming.
17
 */
18
template <class HeadersInterfaceType, class HeadersImplType, class TrailersInterfaceType,
19
          class TrailersImplType>
20
class MessageImpl : public Message<HeadersInterfaceType, TrailersInterfaceType> {
21
public:
22
36.5k
  MessageImpl() : headers_(HeadersImplType::create()) {}
23
13.6k
  MessageImpl(std::unique_ptr<HeadersInterfaceType>&& headers) : headers_(std::move(headers)) {}
Envoy::Http::MessageImpl<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl, Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::MessageImpl(std::__1::unique_ptr<Envoy::Http::ResponseHeaderMap, std::__1::default_delete<Envoy::Http::ResponseHeaderMap> >&&)
Line
Count
Source
23
13.6k
  MessageImpl(std::unique_ptr<HeadersInterfaceType>&& headers) : headers_(std::move(headers)) {}
Unexecuted instantiation: Envoy::Http::MessageImpl<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl, Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::MessageImpl(std::__1::unique_ptr<Envoy::Http::RequestHeaderMap, std::__1::default_delete<Envoy::Http::RequestHeaderMap> >&&)
24
25
  // Http::Message
26
257k
  HeadersInterfaceType& headers() override { return *headers_; }
Envoy::Http::MessageImpl<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl, Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::headers()
Line
Count
Source
26
13.6k
  HeadersInterfaceType& headers() override { return *headers_; }
Envoy::Http::MessageImpl<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl, Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::headers()
Line
Count
Source
26
244k
  HeadersInterfaceType& headers() override { return *headers_; }
27
27.2k
  Buffer::Instance& body() override { return body_; }
Envoy::Http::MessageImpl<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl, Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::body()
Line
Count
Source
27
27.2k
  Buffer::Instance& body() override { return body_; }
Unexecuted instantiation: Envoy::Http::MessageImpl<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl, Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::body()
28
0
  TrailersInterfaceType* trailers() override { return trailers_.get(); }
Unexecuted instantiation: Envoy::Http::MessageImpl<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl, Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::trailers()
Unexecuted instantiation: Envoy::Http::MessageImpl<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl, Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::trailers()
29
0
  void trailers(std::unique_ptr<TrailersInterfaceType>&& trailers) override {
30
0
    trailers_ = std::move(trailers);
31
0
  }
Unexecuted instantiation: Envoy::Http::MessageImpl<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl, Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::trailers(std::__1::unique_ptr<Envoy::Http::ResponseTrailerMap, std::__1::default_delete<Envoy::Http::ResponseTrailerMap> >&&)
Unexecuted instantiation: Envoy::Http::MessageImpl<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl, Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::trailers(std::__1::unique_ptr<Envoy::Http::RequestTrailerMap, std::__1::default_delete<Envoy::Http::RequestTrailerMap> >&&)
32
13.6k
  std::string bodyAsString() const override { return body_.toString(); }
Envoy::Http::MessageImpl<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl, Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::bodyAsString() const
Line
Count
Source
32
13.6k
  std::string bodyAsString() const override { return body_.toString(); }
Unexecuted instantiation: Envoy::Http::MessageImpl<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl, Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::bodyAsString() const
33
34
private:
35
  std::unique_ptr<HeadersInterfaceType> headers_;
36
  Buffer::OwnedImpl body_;
37
  std::unique_ptr<TrailersInterfaceType> trailers_;
38
};
39
40
using RequestMessageImpl =
41
    MessageImpl<RequestHeaderMap, RequestHeaderMapImpl, RequestTrailerMap, RequestTrailerMapImpl>;
42
using ResponseMessageImpl = MessageImpl<ResponseHeaderMap, ResponseHeaderMapImpl,
43
                                        ResponseTrailerMap, ResponseTrailerMapImpl>;
44
45
} // namespace Http
46
} // namespace Envoy