Line data Source code
1 : #pragma once 2 : 3 : #include "envoy/common/pure.h" 4 : #include "envoy/router/router.h" 5 : 6 : namespace Envoy { 7 : namespace Router { 8 : 9 : struct StatNames; 10 : struct VirtualClusterStatNames; 11 : struct RouteStatNames; 12 : 13 : class Context { 14 : public: 15 481 : virtual ~Context() = default; 16 : 17 : /** 18 : * @return a struct containing StatNames for router stats. 19 : */ 20 : virtual const StatNames& statNames() const PURE; 21 : 22 : /** 23 : * @return a struct containing StatNames for virtual cluster stats. 24 : */ 25 : virtual const VirtualClusterStatNames& virtualClusterStatNames() const PURE; 26 : 27 : /** 28 : * @return a struct containing StatNames for route level stats. 29 : */ 30 : virtual const RouteStatNames& routeStatNames() const PURE; 31 : 32 : /** 33 : * @return a reference to the default generic connection pool factory. 34 : */ 35 : virtual GenericConnPoolFactory& genericConnPoolFactory() PURE; 36 : }; 37 : 38 : /** 39 : * RouteStatsContext defines config needed to generate all route level stats. 40 : */ 41 : class RouteStatsContext { 42 : public: 43 5 : virtual ~RouteStatsContext() = default; 44 : 45 : /** 46 : * @return stat name for route specific stats. 47 : */ 48 : virtual Stats::StatName statName() const PURE; 49 : 50 : /** 51 : * @return a struct containing stats for route stats. 52 : */ 53 : virtual const RouteStats& stats() const PURE; 54 : }; 55 : 56 : } // namespace Router 57 : } // namespace Envoy