LCOV - code coverage report
Current view: top level - source/extensions/health_checkers/thrift - client.h (source / functions) Hit Total Coverage
Test: coverage.dat Lines: 0 1 0.0 %
Date: 2024-01-05 06:35:25 Functions: 0 1 0.0 %

          Line data    Source code
       1             : #pragma once
       2             : 
       3             : #include "envoy/event/deferred_deletable.h"
       4             : #include "envoy/network/connection.h"
       5             : #include "envoy/upstream/upstream.h"
       6             : 
       7             : #include "source/extensions/filters/network/thrift_proxy/thrift.h"
       8             : 
       9             : namespace Envoy {
      10             : namespace Extensions {
      11             : namespace HealthCheckers {
      12             : namespace ThriftHealthChecker {
      13             : 
      14             : /**
      15             :  * Outbound request callbacks.
      16             :  */
      17             : class ClientCallback : public Network::ConnectionCallbacks {
      18             : public:
      19             :   /**
      20             :    * Called when the client needs a connection
      21             :    */
      22             :   virtual Upstream::Host::CreateConnectionData createConnection() PURE;
      23             : 
      24             :   /**
      25             :    * Called when a response is received.
      26             :    * @param is_success indicate if the response is a success response
      27             :    */
      28             :   virtual void onResponseResult(bool is_success) PURE;
      29             : };
      30             : 
      31             : /**
      32             :  * A single thrift client connection.
      33             :  */
      34             : class Client : public Event::DeferredDeletable {
      35             : public:
      36             :   /**
      37             :    * Initialize the connection.
      38             :    */
      39             :   virtual void start() PURE;
      40             : 
      41             :   /**
      42             :    * Send the health check request.
      43             :    */
      44             :   virtual bool sendRequest() PURE;
      45             : 
      46             :   /**
      47             :    * Close the underlying network connection.
      48             :    */
      49             :   virtual void close() PURE;
      50             : };
      51             : 
      52             : using ClientPtr = std::unique_ptr<Client>;
      53             : 
      54             : /**
      55             :  * A factory for individual thrift client connections.
      56             :  */
      57             : class ClientFactory {
      58             : public:
      59           0 :   virtual ~ClientFactory() = default;
      60             : 
      61             :   /**
      62             :    * Create a thrift client.
      63             :    * @param callbacks supplies the connection data creation, network connection callbacks
      64             :    *                  to the underlying network connection, and thrift response handling.
      65             :    * @param transport supplies the type of transport.
      66             :    * @param protocol supplies the type of protocol.
      67             :    * @param method_name supplies the method name.
      68             :    * @param data supplies the connection data.
      69             :    * @param seq_id supplies the initial sequence id.
      70             :    * @param fixed_seq_id supplies whether we have sequence id fixed or not.
      71             :    */
      72             :   virtual ClientPtr create(ClientCallback& callbacks,
      73             :                            NetworkFilters::ThriftProxy::TransportType transport,
      74             :                            NetworkFilters::ThriftProxy::ProtocolType protocol,
      75             :                            const std::string& method_name, Upstream::HostSharedPtr host,
      76             :                            int32_t seq_id, bool fixed_seq_id) PURE;
      77             : };
      78             : 
      79             : } // namespace ThriftHealthChecker
      80             : } // namespace HealthCheckers
      81             : } // namespace Extensions
      82             : } // namespace Envoy

Generated by: LCOV version 1.15