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

          Line data    Source code
       1             : #include "source/common/http/async_client_utility.h"
       2             : 
       3             : #include "source/common/common/assert.h"
       4             : 
       5             : namespace Envoy {
       6             : namespace Http {
       7             : 
       8           0 : AsyncClientRequestTracker::~AsyncClientRequestTracker() {
       9           0 :   for (auto* active_request : active_requests_) {
      10           0 :     active_request->cancel();
      11           0 :   }
      12           0 : }
      13             : 
      14           0 : void AsyncClientRequestTracker::add(AsyncClient::Request& request) {
      15           0 :   ASSERT(active_requests_.find(&request) == active_requests_.end(), "request is already tracked.");
      16           0 :   active_requests_.insert(&request);
      17           0 : }
      18             : 
      19           0 : void AsyncClientRequestTracker::remove(const AsyncClient::Request& request) {
      20             :   // Notice that use of "const_cast" here is motivated by keeping API convenient for client code.
      21             :   // In the context where remove() will be typically called, request.cancel() is no longer
      22             :   // desirable and therefore get prevented by means of "const" modifier.
      23           0 :   auto it = active_requests_.find(const_cast<AsyncClient::Request*>(&request));
      24             :   // Support a use case where request callbacks might get called prior to a request handle
      25             :   // is returned from AsyncClient::send().
      26           0 :   if (it != active_requests_.end()) {
      27           0 :     active_requests_.erase(it);
      28           0 :   }
      29           0 : }
      30             : 
      31             : } // namespace Http
      32             : } // namespace Envoy

Generated by: LCOV version 1.15