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

          Line data    Source code
       1             : #pragma once
       2             : 
       3             : #include <memory>
       4             : 
       5             : #include "envoy/event/dispatcher.h"
       6             : 
       7             : namespace Envoy {
       8             : namespace Event {
       9             : 
      10             : /**
      11             :  * A util to schedule a task to run in a future event loop cycle. One of the use cases is to run the
      12             :  * task after the previously DeferredDeletable objects are destroyed.
      13             :  */
      14             : class DeferredTaskUtil {
      15             : private:
      16             :   class DeferredTask : public DeferredDeletable {
      17             :   public:
      18           0 :     DeferredTask(std::function<void()>&& task) : task_(std::move(task)) {}
      19           0 :     ~DeferredTask() override { task_(); }
      20             : 
      21             :   private:
      22             :     std::function<void()> task_;
      23             :   };
      24             : 
      25             : public:
      26             :   /**
      27             :    * Submits an item for run deferred delete.
      28             :    */
      29           0 :   static void deferredRun(Dispatcher& dispatcher, std::function<void()>&& func) {
      30           0 :     dispatcher.deferredDelete(std::make_unique<DeferredTask>(std::move(func)));
      31           0 :   }
      32             : };
      33             : 
      34             : } // namespace Event
      35             : } // namespace Envoy

Generated by: LCOV version 1.15