Line data Source code
1 : #pragma once 2 : 3 : #include "envoy/http/context.h" 4 : 5 : #include "source/common/http/codes.h" 6 : #include "source/common/http/user_agent.h" 7 : 8 : namespace Envoy { 9 : namespace Http { 10 : 11 : /** 12 : * Captures http-related structures with cardinality of one per server. 13 : */ 14 : class ContextImpl : public Context { 15 : public: 16 : explicit ContextImpl(Stats::SymbolTable& symbol_table); 17 589 : ~ContextImpl() override = default; 18 : 19 0 : const envoy::config::trace::v3::Tracing& defaultTracingConfig() override { 20 0 : return default_tracing_config_; 21 0 : } 22 : 23 273 : CodeStats& codeStats() override { return code_stats_; } 24 : 25 131 : void setDefaultTracingConfig(const envoy::config::trace::v3::Tracing& tracing_config) { 26 131 : default_tracing_config_ = tracing_config; 27 131 : } 28 : 29 922 : const UserAgentContext& userAgentContext() const override { return user_agent_context_; } 30 208 : const Stats::StatName& asyncClientStatPrefix() const override { 31 208 : return async_client_stat_prefix_; 32 208 : } 33 : 34 : private: 35 : CodeStatsImpl code_stats_; 36 : UserAgentContext user_agent_context_; 37 : const Stats::StatName async_client_stat_prefix_; 38 : envoy::config::trace::v3::Tracing default_tracing_config_; 39 : }; 40 : 41 : } // namespace Http 42 : } // namespace Envoy