LCOV - code coverage report
Current view: top level - source/common/quic - client_codec_impl.cc (source / functions) Hit Total Coverage
Test: coverage.dat Lines: 0 37 0.0 %
Date: 2024-01-05 06:35:25 Functions: 0 9 0.0 %

          Line data    Source code
       1             : #include "source/common/quic/client_codec_impl.h"
       2             : 
       3             : #include "source/common/quic/envoy_quic_client_stream.h"
       4             : 
       5             : namespace Envoy {
       6             : namespace Quic {
       7             : 
       8             : // Converts a QuicStream instance to EnvoyQuicStream instance. The current stream implementation
       9             : // inherits from these two interfaces, with the former one providing Quic interface and the latter
      10             : // providing Envoy interface.
      11           0 : EnvoyQuicClientStream* quicStreamToEnvoyClientStream(quic::QuicStream* stream) {
      12           0 :   return dynamic_cast<EnvoyQuicClientStream*>(stream);
      13           0 : }
      14             : 
      15             : QuicHttpClientConnectionImpl::QuicHttpClientConnectionImpl(
      16             :     EnvoyQuicClientSession& session, Http::ConnectionCallbacks& callbacks,
      17             :     Http::Http3::CodecStats& stats,
      18             :     const envoy::config::core::v3::Http3ProtocolOptions& http3_options,
      19             :     const uint32_t max_request_headers_kb, const uint32_t max_response_headers_count)
      20           0 :     : QuicHttpConnectionImplBase(session, stats), quic_client_session_(session) {
      21           0 :   session.setCodecStats(stats);
      22           0 :   session.setHttp3Options(http3_options);
      23           0 :   session.setHttpConnectionCallbacks(callbacks);
      24           0 :   session.setMaxIncomingHeadersCount(max_response_headers_count);
      25           0 :   session.set_max_inbound_header_list_size(max_request_headers_kb * 1024);
      26           0 : }
      27             : 
      28           0 : void QuicHttpClientConnectionImpl::goAway() {
      29           0 :   quic_client_session_.SendHttp3GoAway(quic::QUIC_PEER_GOING_AWAY, "client goaway");
      30           0 : }
      31             : 
      32             : Http::RequestEncoder&
      33           0 : QuicHttpClientConnectionImpl::newStream(Http::ResponseDecoder& response_decoder) {
      34           0 :   EnvoyQuicClientStream* stream =
      35           0 :       quicStreamToEnvoyClientStream(quic_client_session_.CreateOutgoingBidirectionalStream());
      36           0 :   ASSERT(stream != nullptr, "Fail to create QUIC stream.");
      37           0 :   stream->setResponseDecoder(response_decoder);
      38           0 :   if (quic_client_session_.aboveHighWatermark()) {
      39           0 :     stream->runHighWatermarkCallbacks();
      40           0 :   }
      41           0 :   return *stream;
      42           0 : }
      43             : 
      44           0 : void QuicHttpClientConnectionImpl::onUnderlyingConnectionAboveWriteBufferHighWatermark() {
      45           0 :   quic_client_session_.PerformActionOnActiveStreams([](quic::QuicStream* quic_stream) {
      46           0 :     ENVOY_LOG(debug, "runHighWatermarkCallbacks on stream {}", quic_stream->id());
      47           0 :     quicStreamToEnvoyClientStream(quic_stream)->runHighWatermarkCallbacks();
      48           0 :     return true;
      49           0 :   });
      50           0 : }
      51             : 
      52           0 : void QuicHttpClientConnectionImpl::onUnderlyingConnectionBelowWriteBufferLowWatermark() {
      53           0 :   quic_client_session_.PerformActionOnActiveStreams([](quic::QuicStream* quic_stream) {
      54           0 :     ENVOY_LOG(debug, "runLowWatermarkCallbacks on stream {}", quic_stream->id());
      55           0 :     quicStreamToEnvoyClientStream(quic_stream)->runLowWatermarkCallbacks();
      56           0 :     return true;
      57           0 :   });
      58           0 : }
      59             : 
      60             : } // namespace Quic
      61             : } // namespace Envoy

Generated by: LCOV version 1.15