/proc/self/cwd/source/extensions/filters/network/thrift_proxy/framed_transport_impl.h
Line | Count | Source (jump to first uncovered line) |
1 | | #pragma once |
2 | | |
3 | | #include <string> |
4 | | |
5 | | #include "envoy/buffer/buffer.h" |
6 | | |
7 | | #include "source/extensions/filters/network/thrift_proxy/transport.h" |
8 | | |
9 | | namespace Envoy { |
10 | | namespace Extensions { |
11 | | namespace NetworkFilters { |
12 | | namespace ThriftProxy { |
13 | | |
14 | | /** |
15 | | * FramedTransportImpl implements the Thrift Framed transport. |
16 | | * See https://github.com/apache/thrift/blob/master/doc/specs/thrift-rpc.md |
17 | | */ |
18 | | class FramedTransportImpl : public Transport { |
19 | | public: |
20 | 0 | FramedTransportImpl() = default; |
21 | | |
22 | | // Transport |
23 | 0 | const std::string& name() const override { return TransportNames::get().FRAMED; } |
24 | 0 | TransportType type() const override { return TransportType::Framed; } |
25 | | bool decodeFrameStart(Buffer::Instance& buffer, MessageMetadata& metadata) override; |
26 | | bool decodeFrameEnd(Buffer::Instance& buffer) override; |
27 | | void encodeFrame(Buffer::Instance& buffer, const MessageMetadata& metadata, |
28 | | Buffer::Instance& message) override; |
29 | | |
30 | | static const int32_t MaxFrameSize = 0xFA0000; |
31 | | }; |
32 | | |
33 | | } // namespace ThriftProxy |
34 | | } // namespace NetworkFilters |
35 | | } // namespace Extensions |
36 | | } // namespace Envoy |