xds_client.h
Go to the documentation of this file.
1 //
2 // Copyright 2019 gRPC authors.
3 //
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 // http://www.apache.org/licenses/LICENSE-2.0
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 //
16 
17 #ifndef GRPC_CORE_EXT_XDS_XDS_CLIENT_H
18 #define GRPC_CORE_EXT_XDS_XDS_CLIENT_H
19 
21 
22 #include <map>
23 #include <memory>
24 #include <set>
25 #include <string>
26 #include <utility>
27 #include <vector>
28 
29 #include "absl/base/thread_annotations.h"
30 #include "absl/status/status.h"
31 #include "absl/status/statusor.h"
32 #include "absl/strings/string_view.h"
33 #include "upb/def.hpp"
34 
36 
54 
55 namespace grpc_core {
56 
59 
60 class XdsClient : public DualRefCounted<XdsClient> {
61  public:
62  // Resource watcher interface. Implemented by callers.
63  // Note: Most callers will not use this API directly but rather via a
64  // resource-type-specific wrapper API provided by the relevant
65  // XdsResourceType implementation.
66  class ResourceWatcherInterface : public RefCounted<ResourceWatcherInterface> {
67  public:
68  virtual void OnGenericResourceChanged(
69  const XdsResourceType::ResourceData* resource)
71  virtual void OnError(absl::Status status)
73  virtual void OnResourceDoesNotExist()
75  };
76 
77  // Factory function to get or create the global XdsClient instance.
78  // If *error is not GRPC_ERROR_NONE upon return, then there was
79  // an error initializing the client.
82 
83  // Most callers should not instantiate directly. Use GetOrCreate() instead.
84  XdsClient(std::unique_ptr<XdsBootstrap> bootstrap,
85  const grpc_channel_args* args);
86  ~XdsClient() override;
87 
88  const XdsBootstrap& bootstrap() const {
89  // bootstrap_ is guaranteed to be non-null since XdsClient::GetOrCreate()
90  // would return a null object if bootstrap_ was null.
91  return *bootstrap_;
92  }
93 
96  }
97 
99 
100  void Orphan() override;
101 
102  // Start and cancel watch for a resource.
103  //
104  // The XdsClient takes ownership of the watcher, but the caller may
105  // keep a raw pointer to the watcher, which may be used only for
106  // cancellation. (Because the caller does not own the watcher, the
107  // pointer must not be used for any other purpose.)
108  // If the caller is going to start a new watch after cancelling the
109  // old one, it should set delay_unsubscription to true.
110  //
111  // The resource type object must be a global singleton, since the first
112  // time the XdsClient sees a particular resource type object, it will
113  // store the pointer to that object as the authoritative implementation for
114  // its type URLs. The resource type object must outlive the XdsClient object,
115  // and it is illegal to start a subsequent watch for the same type URLs using
116  // a different resource type object.
117  //
118  // Note: Most callers will not use this API directly but rather via a
119  // resource-type-specific wrapper API provided by the relevant
120  // XdsResourceType implementation.
124  absl::string_view listener_name,
125  ResourceWatcherInterface* watcher,
126  bool delay_unsubscription = false);
127 
128  // Adds and removes drop stats for cluster_name and eds_service_name.
132  void RemoveClusterDropStats(const XdsBootstrap::XdsServer& xds_server,
135  XdsClusterDropStats* cluster_drop_stats);
136 
137  // Adds and removes locality stats for cluster_name and eds_service_name
138  // for the specified locality.
146  const RefCountedPtr<XdsLocalityName>& locality,
147  XdsClusterLocalityStats* cluster_locality_stats);
148 
149  // Resets connection backoff state.
150  void ResetBackoff();
151 
152  // Dumps the active xDS config in JSON format.
153  // Individual xDS resource is encoded as envoy.admin.v3.*ConfigDump. Returns
154  // envoy.service.status.v3.ClientConfig which also includes the config
155  // status (e.g., CLIENT_REQUESTED, CLIENT_ACKED, CLIENT_NACKED).
156  //
157  // Expected to be invoked by wrapper languages in their CSDS service
158  // implementation.
160 
161  // Helpers for encoding the XdsClient object in channel args.
162  grpc_arg MakeChannelArg() const;
164  const grpc_channel_args& args);
165 
166  private:
167  struct XdsResourceKey {
169  std::vector<URI::QueryParam> query_params;
170 
171  bool operator<(const XdsResourceKey& other) const {
172  int c = id.compare(other.id);
173  if (c != 0) return c < 0;
174  return query_params < other.query_params;
175  }
176  };
177 
181  };
182 
183  // Contains a channel to the xds server and all the data related to the
184  // channel. Holds a ref to the xds client object.
185  class ChannelState : public DualRefCounted<ChannelState> {
186  public:
187  template <typename T>
188  class RetryableCall;
189 
190  class AdsCallState;
191  class LrsCallState;
192 
195  ~ChannelState() override;
196 
197  void Orphan() override;
198 
199  grpc_channel* channel() const { return channel_; }
200  XdsClient* xds_client() const { return xds_client_.get(); }
201  AdsCallState* ads_calld() const;
202  LrsCallState* lrs_calld() const;
203 
204  void MaybeStartLrsCall();
205  void StopLrsCallLocked() ABSL_EXCLUSIVE_LOCKS_REQUIRED(&XdsClient::mu_);
206 
207  bool HasAdsCall() const;
208  bool HasActiveAdsCall() const;
209 
210  void StartConnectivityWatchLocked()
212  void CancelConnectivityWatchLocked();
213 
214  void SubscribeLocked(const XdsResourceType* type,
217  void UnsubscribeLocked(const XdsResourceType* type,
219  bool delay_unsubscription)
221 
222  private:
224 
225  // The owning xds client.
227 
229 
230  // The channel and its status.
234 
235  // The retryable XDS calls.
238 
239  // Stores the most recent accepted resource version for each resource type.
240  std::map<const XdsResourceType*, std::string /*version*/>
242  };
243 
245  std::map<ResourceWatcherInterface*, RefCountedPtr<ResourceWatcherInterface>>
247  // The latest data seen for the resource.
248  std::unique_ptr<XdsResourceType::ResourceData> resource;
250  bool ignored_deletion = false;
251  };
252 
253  struct AuthorityState {
255  std::map<const XdsResourceType*, std::map<XdsResourceKey, ResourceState>>
257  };
258 
260  struct LocalityState {
261  XdsClusterLocalityStats* locality_stats = nullptr;
263  };
264 
265  XdsClusterDropStats* drop_stats = nullptr;
267  std::map<RefCountedPtr<XdsLocalityName>, LocalityState,
270  Timestamp last_report_time = ExecCtx::Get()->Now();
271  };
272 
273  // Load report data.
274  using LoadReportMap = std::map<
275  std::pair<std::string /*cluster_name*/, std::string /*eds_service_name*/>,
277 
281  };
282 
283  // Sends an error notification to all watchers.
286  // Sends an error notification to a specific set of watchers.
291  // Sends a resource-does-not-exist notification to a specific set of watchers.
295 
296  void MaybeRegisterResourceTypeLocked(const XdsResourceType* resource_type)
298 
299  // Gets the type for resource_type, or null if the type is unknown.
302 
306  absl::string_view authority, absl::string_view resource_type,
307  const XdsResourceKey& key);
308 
310  const XdsBootstrap::XdsServer& xds_server, bool send_all_clusters,
311  const std::set<std::string>& clusters) ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_);
312 
315 
316  std::unique_ptr<XdsBootstrap> bootstrap_;
324 
326 
327  // Stores resource type objects seen by type URL.
328  std::map<absl::string_view /*resource_type*/, const XdsResourceType*>
329  resource_types_ ABSL_GUARDED_BY(mu_);
330  std::map<absl::string_view /*v2_resource_type*/, const XdsResourceType*>
331  v2_resource_types_ ABSL_GUARDED_BY(mu_);
333 
334  // Map of existing xDS server channels.
335  std::map<XdsBootstrap::XdsServer, ChannelState*> xds_server_channel_map_
337 
338  std::map<std::string /*authority*/, AuthorityState> authority_state_map_
340 
341  std::map<XdsBootstrap::XdsServer, LoadReportServer>
342  xds_load_report_server_map_ ABSL_GUARDED_BY(mu_);
343 
344  // Stores started watchers whose resource name was not parsed successfully,
345  // waiting to be cancelled or reset in Orphan().
346  std::map<ResourceWatcherInterface*, RefCountedPtr<ResourceWatcherInterface>>
347  invalid_watchers_ ABSL_GUARDED_BY(mu_);
348 
349  bool shutting_down_ ABSL_GUARDED_BY(mu_) = false;
350 };
351 
352 namespace internal {
355 // Sets bootstrap config to be used when no env var is set.
356 // Does not take ownership of config.
357 void SetXdsFallbackBootstrapConfig(const char* config);
358 } // namespace internal
359 
360 } // namespace grpc_core
361 
362 #endif // GRPC_CORE_EXT_XDS_XDS_CLIENT_H
grpc_arg
Definition: grpc_types.h:103
trace.h
grpc_core::XdsClient::args_
grpc_channel_args * args_
Definition: xds_client.h:317
grpc_core::XdsClient::ResourceWatcherInterface::OnGenericResourceChanged
virtual void OnGenericResourceChanged(const XdsResourceType::ResourceData *resource) ABSL_EXCLUSIVE_LOCKS_REQUIRED(&work_serializer_)=0
grpc_core::XdsClient::ChannelState::Orphan
void Orphan() override
Definition: xds_client.cc:558
grpc_core::XdsClient::XdsResourceName::key
XdsResourceKey key
Definition: xds_client.h:180
grpc_core::XdsClient::LoadReportState::LocalityState::deleted_locality_stats
XdsClusterLocalityStats::Snapshot deleted_locality_stats
Definition: xds_client.h:262
orphanable.h
upb::SymbolTable
Definition: def.hpp:377
const
#define const
Definition: bloaty/third_party/zlib/zconf.h:230
xds_client_stats.h
certificate_provider_store.h
grpc_core::XdsClient::AddClusterDropStats
RefCountedPtr< XdsClusterDropStats > AddClusterDropStats(const XdsBootstrap::XdsServer &xds_server, absl::string_view cluster_name, absl::string_view eds_service_name)
Definition: xds_client.cc:2098
false
#define false
Definition: setup_once.h:323
grpc_core::XdsClient::ChannelState::LrsCallState
Definition: xds_client.cc:374
grpc_core
Definition: call_metric_recorder.h:31
xds_resource_type.h
cluster_name
std::string cluster_name
Definition: xds_cluster_resolver.cc:91
grpc_core::WorkSerializer
Definition: work_serializer.h:51
grpc_pollset_set
struct grpc_pollset_set grpc_pollset_set
Definition: iomgr_fwd.h:23
grpc_core::XdsClient::ResourceWatcherInterface
Definition: xds_client.h:66
grpc_core::XdsClient
Definition: xds_client.h:60
grpc_core::XdsClient::ResetBackoff
void ResetBackoff()
Definition: xds_client.cc:2225
absl::string_view
Definition: abseil-cpp/absl/strings/string_view.h:167
grpc_core::DualRefCounted
Definition: dual_ref_counted.h:48
grpc_core::Timestamp
Definition: src/core/lib/gprpp/time.h:62
grpc_core::XdsClient::ChannelState::xds_client
XdsClient * xds_client() const
Definition: xds_client.h:200
testing::internal::string
::std::string string
Definition: bloaty/third_party/protobuf/third_party/googletest/googletest/include/gtest/internal/gtest-port.h:881
error
grpc_error_handle error
Definition: retry_filter.cc:499
grpc_core::XdsClient::ChannelState::channel
grpc_channel * channel() const
Definition: xds_client.h:199
grpc_core::XdsClient::mu_
Mutex mu_
Definition: xds_client.h:325
grpc_core::XdsClient::LoadReportMap
std::map< std::pair< std::string, std::string >, LoadReportState > LoadReportMap
Definition: xds_client.h:276
grpc_core::XdsClient::GetResourceTypeLocked
const XdsResourceType * GetResourceTypeLocked(absl::string_view resource_type) ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_)
Definition: xds_client.cc:2047
status
absl::Status status
Definition: rls.cc:251
setup.name
name
Definition: setup.py:542
grpc_core::XdsClient::BuildLoadReportSnapshotLocked
XdsApi::ClusterLoadReportMap BuildLoadReportSnapshotLocked(const XdsBootstrap::XdsServer &xds_server, bool send_all_clusters, const std::set< std::string > &clusters) ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_)
Definition: xds_client.cc:2291
grpc_core::XdsClient::MakeChannelArg
grpc_arg MakeChannelArg() const
Definition: xds_client.cc:2557
grpc_core::XdsClient::AuthorityState::resource_map
std::map< const XdsResourceType *, std::map< XdsResourceKey, ResourceState > > resource_map
Definition: xds_client.h:256
grpc_core::XdsClient::Orphan
void Orphan() override
Definition: xds_client.cc:1884
def.hpp
grpc_core::XdsClient::LoadReportState::LocalityState
Definition: xds_client.h:260
grpc_core::XdsClient::bootstrap_
std::unique_ptr< XdsBootstrap > bootstrap_
Definition: xds_client.h:316
grpc_core::XdsClient::XdsResourceKey::operator<
bool operator<(const XdsResourceKey &other) const
Definition: xds_client.h:171
grpc_core::XdsClient::XdsResourceKey
Definition: xds_client.h:167
map
zval * map
Definition: php/ext/google/protobuf/encode_decode.c:480
grpc_core::XdsClient::ConstructFullXdsResourceName
static std::string ConstructFullXdsResourceName(absl::string_view authority, absl::string_view resource_type, const XdsResourceKey &key)
Definition: xds_client.cc:2084
grpc_channel_args
Definition: grpc_types.h:132
grpc_core::grpc_xds_client_trace
TraceFlag grpc_xds_client_trace(false, "xds_client")
Definition: xds_client.h:57
gen_build_yaml.struct
def struct(**kwargs)
Definition: test/core/end2end/gen_build_yaml.py:30
grpc_core::XdsClient::ChannelState::~ChannelState
~ChannelState() override
Definition: xds_client.cc:545
grpc_core::XdsClient::XdsResourceKey::query_params
std::vector< URI::QueryParam > query_params
Definition: xds_client.h:169
grpc_types.h
grpc_core::XdsClient::ChannelState::ads_calld_
OrphanablePtr< RetryableCall< AdsCallState > > ads_calld_
Definition: xds_client.h:236
grpc_core::XdsClient::RemoveClusterDropStats
void RemoveClusterDropStats(const XdsBootstrap::XdsServer &xds_server, absl::string_view cluster_name, absl::string_view eds_service_name, XdsClusterDropStats *cluster_drop_stats)
Definition: xds_client.cc:2138
grpc_core::XdsClient::ChannelState::channel_
grpc_channel * channel_
Definition: xds_client.h:231
grpc_core::XdsClient::XdsResourceName::authority
std::string authority
Definition: xds_client.h:179
asyncio_get_stats.args
args
Definition: asyncio_get_stats.py:40
grpc_core::XdsClient::NotifyWatchersOnErrorLocked
void NotifyWatchersOnErrorLocked(const std::map< ResourceWatcherInterface *, RefCountedPtr< ResourceWatcherInterface >> &watchers, absl::Status status)
Definition: xds_client.cc:2260
grpc_core::RefCountedPtr
Definition: ref_counted_ptr.h:35
grpc_core::XdsApi::ResourceMetadata
Definition: xds_api.h:92
grpc_core::XdsClusterLocalityStats::Snapshot
Definition: xds_client_stats.h:176
grpc_core::XdsClient::ChannelState::RetryableCall
Definition: xds_client.cc:111
grpc_core::XdsClient::ChannelState::watcher_
StateWatcher * watcher_
Definition: xds_client.h:233
work_serializer.h
ABSL_EXCLUSIVE_LOCKS_REQUIRED
#define ABSL_EXCLUSIVE_LOCKS_REQUIRED(...)
Definition: abseil-cpp/absl/base/thread_annotations.h:145
grpc_core::grpc_xds_client_refcount_trace
TraceFlag grpc_xds_client_refcount_trace(false, "xds_client_refcount")
Definition: xds_client.h:58
grpc_core::XdsClient::ChannelState::lrs_calld
LrsCallState * lrs_calld() const
Definition: xds_client.cc:574
grpc_core::XdsClusterDropStats::Snapshot
Definition: xds_client_stats.h:109
xds_bootstrap.h
grpc_core::XdsClient::ChannelState::HasActiveAdsCall
bool HasActiveAdsCall() const
Definition: xds_client.cc:579
grpc_core::XdsClient::ChannelState::MaybeStartLrsCall
void MaybeStartLrsCall()
Definition: xds_client.cc:583
time.h
grpc_core::XdsClusterLocalityStats
Definition: xds_client_stats.h:158
error.h
grpc_core::XdsClient::GetOrCreate
static RefCountedPtr< XdsClient > GetOrCreate(const grpc_channel_args *args, grpc_error_handle *error)
Definition: xds_client.cc:2465
grpc_core::XdsClient::ResourceState::resource
std::unique_ptr< XdsResourceType::ResourceData > resource
Definition: xds_client.h:248
grpc_core::XdsClient::XdsResourceKey::id
std::string id
Definition: xds_client.h:168
grpc_core::RefCounted
Definition: ref_counted.h:280
grpc_core::internal::UnsetGlobalXdsClientForTest
void UnsetGlobalXdsClientForTest()
Definition: xds_client.cc:2518
grpc_core::XdsClient::LoadReportState
Definition: xds_client.h:259
grpc_core::XdsClient::ChannelState::StateWatcher
Definition: xds_client.cc:480
grpc_core::XdsClusterDropStats
Definition: xds_client_stats.h:104
grpc_core::XdsClient::GetOrCreateChannelStateLocked
RefCountedPtr< ChannelState > GetOrCreateChannelStateLocked(const XdsBootstrap::XdsServer &server) ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_)
Definition: xds_client.cc:1901
grpc_core::TraceFlag
Definition: debug/trace.h:63
grpc_core::internal::SetXdsFallbackBootstrapConfig
void SetXdsFallbackBootstrapConfig(const char *config)
Definition: xds_client.cc:2523
grpc_core::XdsClient::ResourceState::meta
XdsApi::ResourceMetadata meta
Definition: xds_client.h:249
grpc_core::XdsClient::LoadReportServer::load_report_map
LoadReportMap load_report_map
Definition: xds_client.h:280
grpc_core::XdsClient::LoadReportState::deleted_drop_stats
XdsClusterDropStats::Snapshot deleted_drop_stats
Definition: xds_client.h:266
grpc_core::XdsClient::XdsClient
XdsClient(std::unique_ptr< XdsBootstrap > bootstrap, const grpc_channel_args *args)
Definition: xds_client.cc:1851
grpc_core::Mutex
Definition: src/core/lib/gprpp/sync.h:61
grpc_core::XdsClient::RemoveClusterLocalityStats
void RemoveClusterLocalityStats(const XdsBootstrap::XdsServer &xds_server, absl::string_view cluster_name, absl::string_view eds_service_name, const RefCountedPtr< XdsLocalityName > &locality, XdsClusterLocalityStats *cluster_locality_stats)
Definition: xds_client.cc:2201
grpc_core::XdsClient::xds_federation_enabled_
const bool xds_federation_enabled_
Definition: xds_client.h:319
grpc_core::XdsClient::NotifyOnErrorLocked
void NotifyOnErrorLocked(absl::Status status) ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_)
Definition: xds_client.cc:2232
grpc_core::XdsBootstrap::XdsServer
Definition: xds_bootstrap.h:52
grpc_core::XdsClient::ChannelState::xds_client_
WeakRefCountedPtr< XdsClient > xds_client_
Definition: xds_client.h:223
key
const char * key
Definition: hpack_parser_table.cc:164
grpc_core::XdsClient::CancelResourceWatch
void CancelResourceWatch(const XdsResourceType *type, absl::string_view listener_name, ResourceWatcherInterface *watcher, bool delay_unsubscription=false)
Definition: xds_client.cc:1990
grpc_core::XdsClient::certificate_provider_store_
OrphanablePtr< CertificateProviderStore > certificate_provider_store_
Definition: xds_client.h:321
eds_service_name
std::string eds_service_name
Definition: xds_cluster_resolver.cc:99
grpc_core::XdsClient::ResourceWatcherInterface::OnResourceDoesNotExist
virtual void OnResourceDoesNotExist() ABSL_EXCLUSIVE_LOCKS_REQUIRED(&work_serializer_)=0
grpc_core::XdsClient::LoadReportServer
Definition: xds_client.h:278
grpc_core::XdsClient::interested_parties
grpc_pollset_set * interested_parties() const
Definition: xds_client.h:98
server
Definition: examples/python/async_streaming/server.py:1
grpc_core::XdsClient::ResourceWatcherInterface::OnError
virtual void OnError(absl::Status status) ABSL_EXCLUSIVE_LOCKS_REQUIRED(&work_serializer_)=0
ref_counted.h
grpc_core::XdsClient::LoadReportState::locality_stats
std::map< RefCountedPtr< XdsLocalityName >, LocalityState, XdsLocalityName::Less > locality_stats
Definition: xds_client.h:269
absl::Status
Definition: third_party/abseil-cpp/absl/status/status.h:424
grpc_core::XdsClient::ChannelState::ChannelState
ChannelState(WeakRefCountedPtr< XdsClient > xds_client, const XdsBootstrap::XdsServer &server)
Definition: xds_client.cc:528
grpc_core::XdsBootstrap
Definition: xds_bootstrap.h:41
grpc_core::OrphanablePtr
std::unique_ptr< T, Deleter > OrphanablePtr
Definition: orphanable.h:64
xds_api.h
grpc_core::XdsClient::ParseXdsResourceName
absl::StatusOr< XdsResourceName > ParseXdsResourceName(absl::string_view name, const XdsResourceType *type)
Definition: xds_client.cc:2056
std
Definition: grpcpp/impl/codegen/async_unary_call.h:407
grpc_core::WeakRefCountedPtr
Definition: ref_counted_ptr.h:185
grpc_core::XdsResourceType
Definition: xds_resource_type.h:34
grpc_core::XdsClient::~XdsClient
~XdsClient() override
Definition: xds_client.cc:1873
grpc_core::XdsClient::WatchResource
void WatchResource(const XdsResourceType *type, absl::string_view name, RefCountedPtr< ResourceWatcherInterface > watcher)
Definition: xds_client.cc:1914
grpc_core::XdsClient::GetFromChannelArgs
static RefCountedPtr< XdsClient > GetFromChannelArgs(const grpc_channel_args &args)
Definition: xds_client.cc:2563
exec_ctx.h
grpc_core::XdsClient::interested_parties_
grpc_pollset_set * interested_parties_
Definition: xds_client.h:320
grpc_core::XdsClient::work_serializer_
WorkSerializer work_serializer_
Definition: xds_client.h:323
grpc_core::XdsClient::AddClusterLocalityStats
RefCountedPtr< XdsClusterLocalityStats > AddClusterLocalityStats(const XdsBootstrap::XdsServer &xds_server, absl::string_view cluster_name, absl::string_view eds_service_name, RefCountedPtr< XdsLocalityName > locality)
Definition: xds_client.cc:2158
grpc_core::XdsClient::api_
XdsApi api_
Definition: xds_client.h:322
ref_counted_ptr.h
grpc_channel
struct grpc_channel grpc_channel
Definition: grpc_types.h:62
config_s
Definition: bloaty/third_party/zlib/deflate.c:120
watcher
ClusterWatcher * watcher
Definition: cds.cc:148
dual_ref_counted.h
grpc_core::XdsClient::ChannelState::resource_type_version_map_
std::map< const XdsResourceType *, std::string > resource_type_version_map_
Definition: xds_client.h:241
grpc_core::XdsClient::ChannelState::AdsCallState
Definition: xds_client.cc:147
grpc_core::XdsClient::ChannelState::server_
const XdsBootstrap::XdsServer & server_
Definition: xds_client.h:228
grpc_core::XdsLocalityName::Less
Definition: xds_client_stats.h:48
internal
Definition: benchmark/test/output_test_helper.cc:20
grpc_core::XdsClient::ResourceState::watchers
std::map< ResourceWatcherInterface *, RefCountedPtr< ResourceWatcherInterface > > watchers
Definition: xds_client.h:246
grpc_core::XdsClient::certificate_provider_store
CertificateProviderStore & certificate_provider_store()
Definition: xds_client.h:94
grpc_core::XdsResourceType::ResourceData
Definition: xds_resource_type.h:39
grpc_core::XdsApi
Definition: xds_api.h:55
grpc_core::XdsClient::AuthorityState
Definition: xds_client.h:253
grpc_core::CertificateProviderStore
Definition: certificate_provider_store.h:46
absl::StatusOr
Definition: abseil-cpp/absl/status/statusor.h:187
asyncio_get_stats.type
type
Definition: asyncio_get_stats.py:37
uri_parser.h
iomgr_fwd.h
grpc_core::ExecCtx::Now
Timestamp Now()
Definition: exec_ctx.cc:90
grpc_core::XdsClient::LoadReportServer::channel_state
RefCountedPtr< ChannelState > channel_state
Definition: xds_client.h:279
grpc_error
Definition: error_internal.h:42
grpc_core::Duration
Definition: src/core/lib/gprpp/time.h:122
grpc_core::XdsClient::XdsResourceName
Definition: xds_client.h:178
grpc_core::XdsClient::ChannelState::ads_calld
AdsCallState * ads_calld() const
Definition: xds_client.cc:569
grpc_core::XdsClient::MaybeRegisterResourceTypeLocked
void MaybeRegisterResourceTypeLocked(const XdsResourceType *resource_type) ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_)
Definition: xds_client.cc:2035
grpc_core::XdsClient::DumpClientConfigBinary
std::string DumpClientConfigBinary()
Definition: xds_client.cc:2376
grpc_core::XdsClient::ChannelState::lrs_calld_
OrphanablePtr< RetryableCall< LrsCallState > > lrs_calld_
Definition: xds_client.h:237
grpc_core::XdsClient::ChannelState::shutting_down_
bool shutting_down_
Definition: xds_client.h:232
grpc_core::XdsClient::NotifyWatchersOnResourceDoesNotExist
void NotifyWatchersOnResourceDoesNotExist(const std::map< ResourceWatcherInterface *, RefCountedPtr< ResourceWatcherInterface >> &watchers)
Definition: xds_client.cc:2279
grpc_core::XdsClient::request_timeout_
const Duration request_timeout_
Definition: xds_client.h:318
pair
std::pair< std::string, std::string > pair
Definition: abseil-cpp/absl/container/internal/raw_hash_set_benchmark.cc:78
grpc_core::internal::SetXdsChannelArgsForTest
void SetXdsChannelArgsForTest(grpc_channel_args *args)
Definition: xds_client.cc:2513
grpc_core::XdsClient::ABSL_GUARDED_BY
std::map< absl::string_view, const XdsResourceType * > resource_types_ ABSL_GUARDED_BY(mu_)
grpc_core::XdsClient::ResourceState
Definition: xds_client.h:244
grpc_core::XdsClient::AuthorityState::channel_state
RefCountedPtr< ChannelState > channel_state
Definition: xds_client.h:254
sync.h
grpc_core::ExecCtx::Get
static ExecCtx * Get()
Definition: exec_ctx.h:205
grpc_core::XdsClient::bootstrap
const XdsBootstrap & bootstrap() const
Definition: xds_client.h:88
grpc_core::XdsApi::ClusterLoadReportMap
std::map< std::pair< std::string, std::string >, ClusterLoadReport > ClusterLoadReportMap
Definition: xds_api.h:89
grpc_core::XdsClient::ChannelState
Definition: xds_client.h:185
port_platform.h


grpc
Author(s):
autogenerated on Thu Mar 13 2025 03:01:55