Line data Source code
1 : #pragma once 2 : 3 : #include "envoy/network/filter.h" 4 : 5 : namespace Envoy { 6 : namespace Network { 7 : namespace Matching { 8 : 9 : /** 10 : * Implementation of Network::MatchingData, providing connection-level data to 11 : * the match tree. 12 : */ 13 : class MatchingDataImpl : public MatchingData { 14 : public: 15 : explicit MatchingDataImpl(const ConnectionSocket& socket, 16 : const StreamInfo::FilterState& filter_state, 17 : const envoy::config::core::v3::Metadata& dynamic_metadata) 18 0 : : socket_(socket), filter_state_(filter_state), dynamic_metadata_(dynamic_metadata) {} 19 0 : const ConnectionSocket& socket() const override { return socket_; } 20 0 : const StreamInfo::FilterState& filterState() const override { return filter_state_; } 21 0 : const envoy::config::core::v3::Metadata& dynamicMetadata() const override { 22 0 : return dynamic_metadata_; 23 0 : } 24 : 25 : private: 26 : const ConnectionSocket& socket_; 27 : const StreamInfo::FilterState& filter_state_; 28 : const envoy::config::core::v3::Metadata& dynamic_metadata_; 29 : }; 30 : 31 : /** 32 : * Implementation of Network::UdpMatchingData, providing UDP data to the match tree. 33 : */ 34 : class UdpMatchingDataImpl : public UdpMatchingData { 35 : public: 36 : UdpMatchingDataImpl(const Address::Instance& local_address, 37 : const Address::Instance& remote_address) 38 0 : : local_address_(local_address), remote_address_(remote_address) {} 39 0 : const Address::Instance& localAddress() const override { return local_address_; } 40 0 : const Address::Instance& remoteAddress() const override { return remote_address_; } 41 : 42 : private: 43 : const Address::Instance& local_address_; 44 : const Address::Instance& remote_address_; 45 : }; 46 : 47 : } // namespace Matching 48 : } // namespace Network 49 : } // namespace Envoy