Classes | Public Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
grpc::testing::AdsServiceImpl Class Reference

#include <xds_server.h>

Inheritance diagram for grpc::testing::AdsServiceImpl:
Inheritance graph
[legend]

Classes

struct  ResourceState
 
struct  ResourceTypeState
 
struct  ResponseState
 
class  RpcService
 
struct  SentState
 
struct  SubscriptionState
 

Public Member Functions

 AdsServiceImpl ()
 
absl::optional< ResponseStatecds_response_state ()
 
std::set< std::string > clients ()
 
absl::optional< ResponseStateeds_response_state ()
 
void ForceADSFailure (Status status)
 
absl::optional< ResponseStateGetResponseState (const std::string &type_url)
 
void IgnoreResourceType (const std::string &type_url)
 
absl::optional< ResponseStatelds_response_state ()
 
absl::optional< ResponseStaterds_response_state ()
 
bool seen_v2_client () const
 
bool seen_v3_client () const
 
void set_wrap_resources (bool wrap_resources)
 
void SetCdsResource (const ::envoy::config::cluster::v3::Cluster &cluster)
 
void SetEdsResource (const ::envoy::config::endpoint::v3::ClusterLoadAssignment &assignment)
 
void SetLdsResource (const ::envoy::config::listener::v3::Listener &listener)
 
void SetRdsResource (const ::envoy::config::route::v3::RouteConfiguration &route)
 
void SetResource (google::protobuf::Any resource, const std::string &type_url, const std::string &name)
 
void SetResourceMinVersion (const std::string &type_url, int version)
 
void Shutdown ()
 
void Start ()
 
void UnsetResource (const std::string &type_url, const std::string &name)
 
::envoy::service::discovery::v2::AggregatedDiscoveryService::Service * v2_rpc_service ()
 
::envoy::service::discovery::v3::AggregatedDiscoveryService::Service * v3_rpc_service ()
 

Private Types

using ResourceMap = std::map< std::string, ResourceTypeState >
 
using ResourceNameMap = std::map< std::string, ResourceState >
 
using SubscriptionMap = std::map< std::string, SubscriptionNameMap >
 
using SubscriptionNameMap = std::map< std::string, SubscriptionState >
 
using UpdateQueue = std::deque< std::pair< std::string, std::string > >
 

Private Member Functions

bool ads_done_ ABSL_GUARDED_BY (ads_mu_)
 
std::map< std::string, std::deque< ResponseState > > resource_type_response_state_ ABSL_GUARDED_BY (ads_mu_)
 
std::set< std::string > resource_types_to_ignore_ ABSL_GUARDED_BY (ads_mu_)
 
std::map< std::string, int > resource_type_min_versions_ ABSL_GUARDED_BY (ads_mu_)
 
ResourceMap resource_map_ ABSL_GUARDED_BY (ads_mu_)
 
absl::optional< Status > forced_ads_failure_ ABSL_GUARDED_BY (ads_mu_)
 
bool wrap_resources_ ABSL_GUARDED_BY (ads_mu_)
 
std::set< std::string > clients_ ABSL_GUARDED_BY (clients_mu_)
 
void AddClient (const std::string &client)
 
bool MaybeSubscribe (const std::string &resource_type, const std::string &resource_name, SubscriptionState *subscription_state, ResourceState *resource_state, UpdateQueue *update_queue)
 
void ProcessUnsubscriptions (const std::string &resource_type, const std::set< std::string > &resources_in_current_request, SubscriptionNameMap *subscription_name_map, ResourceNameMap *resource_name_map)
 
void RemoveClient (const std::string &client)
 

Static Private Member Functions

static bool ClientNeedsResourceUpdate (const ResourceTypeState &resource_type_state, const ResourceState &resource_state, int client_resource_type_version)
 

Private Attributes

grpc_core::CondVar ads_cond_
 
grpc_core::Mutex ads_mu_
 
grpc_core::Mutex clients_mu_
 
std::atomic_bool seen_v2_client_ {false}
 
std::atomic_bool seen_v3_client_ {false}
 
RpcService<::envoy::service::discovery::v2::AggregatedDiscoveryService, ::envoy::api::v2::DiscoveryRequest, ::envoy::api::v2::DiscoveryResponse > v2_rpc_service_
 
RpcService<::envoy::service::discovery::v3::AggregatedDiscoveryService, ::envoy::service::discovery::v3::DiscoveryRequest, ::envoy::service::discovery::v3::DiscoveryResponse > v3_rpc_service_
 

Detailed Description

Definition at line 68 of file xds_server.h.

Member Typedef Documentation

◆ ResourceMap

Definition at line 233 of file xds_server.h.

◆ ResourceNameMap

Definition at line 226 of file xds_server.h.

◆ SubscriptionMap

Definition at line 206 of file xds_server.h.

◆ SubscriptionNameMap

Definition at line 204 of file xds_server.h.

◆ UpdateQueue

using grpc::testing::AdsServiceImpl::UpdateQueue = std::deque< std::pair<std::string , std::string > >
private

Definition at line 194 of file xds_server.h.

Constructor & Destructor Documentation

◆ AdsServiceImpl()

grpc::testing::AdsServiceImpl::AdsServiceImpl ( )
inline

Definition at line 80 of file xds_server.h.

Member Function Documentation

◆ ABSL_GUARDED_BY() [1/8]

bool ads_done_ grpc::testing::AdsServiceImpl::ABSL_GUARDED_BY ( ads_mu_  )
private

◆ ABSL_GUARDED_BY() [2/8]

std::map<std::string , std::deque<ResponseState> > resource_type_response_state_ grpc::testing::AdsServiceImpl::ABSL_GUARDED_BY ( ads_mu_  )
private

◆ ABSL_GUARDED_BY() [3/8]

std::set<std::string > resource_types_to_ignore_ grpc::testing::AdsServiceImpl::ABSL_GUARDED_BY ( ads_mu_  )
private

◆ ABSL_GUARDED_BY() [4/8]

std::map<std::string , int> resource_type_min_versions_ grpc::testing::AdsServiceImpl::ABSL_GUARDED_BY ( ads_mu_  )
private

◆ ABSL_GUARDED_BY() [5/8]

ResourceMap resource_map_ grpc::testing::AdsServiceImpl::ABSL_GUARDED_BY ( ads_mu_  )
private

◆ ABSL_GUARDED_BY() [6/8]

absl::optional<Status> forced_ads_failure_ grpc::testing::AdsServiceImpl::ABSL_GUARDED_BY ( ads_mu_  )
private

◆ ABSL_GUARDED_BY() [7/8]

bool wrap_resources_ grpc::testing::AdsServiceImpl::ABSL_GUARDED_BY ( ads_mu_  )
private

◆ ABSL_GUARDED_BY() [8/8]

std::set<std::string> clients_ grpc::testing::AdsServiceImpl::ABSL_GUARDED_BY ( clients_mu_  )
private

◆ AddClient()

void grpc::testing::AdsServiceImpl::AddClient ( const std::string &  client)
inlineprivate

Definition at line 654 of file xds_server.h.

◆ cds_response_state()

absl::optional<ResponseState> grpc::testing::AdsServiceImpl::cds_response_state ( )
inline

Definition at line 166 of file xds_server.h.

◆ ClientNeedsResourceUpdate()

bool grpc::testing::AdsServiceImpl::ClientNeedsResourceUpdate ( const ResourceTypeState resource_type_state,
const ResourceState resource_state,
int  client_resource_type_version 
)
staticprivate

Definition at line 86 of file xds_server.cc.

◆ clients()

std::set<std::string> grpc::testing::AdsServiceImpl::clients ( )
inline

Definition at line 180 of file xds_server.h.

◆ eds_response_state()

absl::optional<ResponseState> grpc::testing::AdsServiceImpl::eds_response_state ( )
inline

Definition at line 169 of file xds_server.h.

◆ ForceADSFailure()

void grpc::testing::AdsServiceImpl::ForceADSFailure ( Status  status)
inline

Definition at line 185 of file xds_server.h.

◆ GetResponseState()

absl::optional<ResponseState> grpc::testing::AdsServiceImpl::GetResponseState ( const std::string &  type_url)
inline

Definition at line 151 of file xds_server.h.

◆ IgnoreResourceType()

void grpc::testing::AdsServiceImpl::IgnoreResourceType ( const std::string &  type_url)
inline

Definition at line 137 of file xds_server.h.

◆ lds_response_state()

absl::optional<ResponseState> grpc::testing::AdsServiceImpl::lds_response_state ( )
inline

Definition at line 160 of file xds_server.h.

◆ MaybeSubscribe()

bool grpc::testing::AdsServiceImpl::MaybeSubscribe ( const std::string &  resource_type,
const std::string &  resource_name,
SubscriptionState subscription_state,
ResourceState resource_state,
UpdateQueue update_queue 
)
private

Definition at line 98 of file xds_server.cc.

◆ ProcessUnsubscriptions()

void grpc::testing::AdsServiceImpl::ProcessUnsubscriptions ( const std::string &  resource_type,
const std::set< std::string > &  resources_in_current_request,
SubscriptionNameMap subscription_name_map,
ResourceNameMap resource_name_map 
)
private

Definition at line 115 of file xds_server.cc.

◆ rds_response_state()

absl::optional<ResponseState> grpc::testing::AdsServiceImpl::rds_response_state ( )
inline

Definition at line 163 of file xds_server.h.

◆ RemoveClient()

void grpc::testing::AdsServiceImpl::RemoveClient ( const std::string &  client)
inlineprivate

Definition at line 659 of file xds_server.h.

◆ seen_v2_client()

bool grpc::testing::AdsServiceImpl::seen_v2_client ( ) const
inline

Definition at line 84 of file xds_server.h.

◆ seen_v3_client()

bool grpc::testing::AdsServiceImpl::seen_v3_client ( ) const
inline

Definition at line 85 of file xds_server.h.

◆ set_wrap_resources()

void grpc::testing::AdsServiceImpl::set_wrap_resources ( bool  wrap_resources)
inline

Definition at line 97 of file xds_server.h.

◆ SetCdsResource()

void grpc::testing::AdsServiceImpl::SetCdsResource ( const ::envoy::config::cluster::v3::Cluster &  cluster)
inline

Definition at line 122 of file xds_server.h.

◆ SetEdsResource()

void grpc::testing::AdsServiceImpl::SetEdsResource ( const ::envoy::config::endpoint::v3::ClusterLoadAssignment &  assignment)
inline

Definition at line 128 of file xds_server.h.

◆ SetLdsResource()

void grpc::testing::AdsServiceImpl::SetLdsResource ( const ::envoy::config::listener::v3::Listener listener)
inline

Definition at line 109 of file xds_server.h.

◆ SetRdsResource()

void grpc::testing::AdsServiceImpl::SetRdsResource ( const ::envoy::config::route::v3::RouteConfiguration &  route)
inline

Definition at line 115 of file xds_server.h.

◆ SetResource()

void grpc::testing::AdsServiceImpl::SetResource ( google::protobuf::Any  resource,
const std::string &  type_url,
const std::string &  name 
)

Definition at line 47 of file xds_server.cc.

◆ SetResourceMinVersion()

void grpc::testing::AdsServiceImpl::SetResourceMinVersion ( const std::string &  type_url,
int  version 
)
inline

Definition at line 145 of file xds_server.h.

◆ Shutdown()

void grpc::testing::AdsServiceImpl::Shutdown ( )

Definition at line 148 of file xds_server.cc.

◆ Start()

void grpc::testing::AdsServiceImpl::Start ( )

Definition at line 143 of file xds_server.cc.

◆ UnsetResource()

void grpc::testing::AdsServiceImpl::UnsetResource ( const std::string &  type_url,
const std::string &  name 
)

Definition at line 66 of file xds_server.cc.

◆ v2_rpc_service()

::envoy::service::discovery::v2::AggregatedDiscoveryService::Service* grpc::testing::AdsServiceImpl::v2_rpc_service ( )
inline

Definition at line 88 of file xds_server.h.

◆ v3_rpc_service()

::envoy::service::discovery::v3::AggregatedDiscoveryService::Service* grpc::testing::AdsServiceImpl::v3_rpc_service ( )
inline

Definition at line 93 of file xds_server.h.

Member Data Documentation

◆ ads_cond_

grpc_core::CondVar grpc::testing::AdsServiceImpl::ads_cond_
private

Definition at line 676 of file xds_server.h.

◆ ads_mu_

grpc_core::Mutex grpc::testing::AdsServiceImpl::ads_mu_
private

Definition at line 677 of file xds_server.h.

◆ clients_mu_

grpc_core::Mutex grpc::testing::AdsServiceImpl::clients_mu_
private

Definition at line 694 of file xds_server.h.

◆ seen_v2_client_

std::atomic_bool grpc::testing::AdsServiceImpl::seen_v2_client_ {false}
private

Definition at line 673 of file xds_server.h.

◆ seen_v3_client_

std::atomic_bool grpc::testing::AdsServiceImpl::seen_v3_client_ {false}
private

Definition at line 674 of file xds_server.h.

◆ v2_rpc_service_

RpcService<::envoy::service::discovery::v2::AggregatedDiscoveryService, ::envoy::api::v2::DiscoveryRequest, ::envoy::api::v2::DiscoveryResponse> grpc::testing::AdsServiceImpl::v2_rpc_service_
private

Definition at line 667 of file xds_server.h.

◆ v3_rpc_service_

RpcService<::envoy::service::discovery::v3::AggregatedDiscoveryService, ::envoy::service::discovery::v3::DiscoveryRequest, ::envoy::service::discovery::v3::DiscoveryResponse> grpc::testing::AdsServiceImpl::v3_rpc_service_
private

Definition at line 671 of file xds_server.h.


The documentation for this class was generated from the following files:


grpc
Author(s):
autogenerated on Fri May 16 2025 03:03:33