19 #ifndef GRPC_CORE_EXT_XDS_CERTIFICATE_PROVIDER_STORE_H
20 #define GRPC_CORE_EXT_XDS_CERTIFICATE_PROVIDER_STORE_H
26 #include "absl/strings/string_view.h"
49 : plugin_config_map_(std::move(plugin_config_map)) {}
57 absl::string_view key);
66 CertificateProviderWrapper(
69 : certificate_provider_(std::move(certificate_provider)),
70 store_(std::move(store)),
73 ~CertificateProviderWrapper()
override {
74 store_->ReleaseCertificateProvider(key_,
this);
79 return certificate_provider_->distributor();
83 return certificate_provider_->interested_parties();
86 absl::string_view key()
const {
return key_; }
89 RefCountedPtr<grpc_tls_certificate_provider> certificate_provider_;
90 RefCountedPtr<CertificateProviderStore> store_;
91 absl::string_view key_;
94 RefCountedPtr<CertificateProviderWrapper> CreateCertificateProviderLocked(
95 absl::string_view key) ABSL_EXCLUSIVE_LOCKS_REQUIRED(mu_);
99 void ReleaseCertificateProvider(absl::string_view key,
100 CertificateProviderWrapper* wrapper);
106 std::map<absl::string_view, CertificateProviderWrapper*>
107 certificate_providers_map_ ABSL_GUARDED_BY(mu_);
Definition: certificate_provider_store.h:38
std::map< std::string, PluginDefinition > PluginDefinitionMap
Definition: certificate_provider_store.h:46
CertificateProviderStore(PluginDefinitionMap plugin_config_map)
Definition: certificate_provider_store.h:48
void Orphan() override
Definition: certificate_provider_store.h:59
RefCountedPtr< grpc_tls_certificate_provider > CreateOrGetCertificateProvider(absl::string_view key)
Definition: certificate_provider_store.cc:33
Definition: orphanable.h:76
void Unref()
Definition: orphanable.h:103
Definition: ref_counted_ptr.h:35
Round Robin Policy.
Definition: backend_metric.cc:26
struct grpc_pollset_set grpc_pollset_set
Definition: pollset_set.h:31
Definition: certificate_provider_store.h:40
std::string plugin_name
Definition: certificate_provider_store.h:41
RefCountedPtr< CertificateProviderFactory::Config > config
Definition: certificate_provider_store.h:42
Definition: grpc_tls_certificate_provider.h:45