GRPC C++  1.39.1
certificate_provider_factory.h
Go to the documentation of this file.
1 //
2 //
3 // Copyright 2020 gRPC authors.
4 //
5 // Licensed under the Apache License, Version 2.0 (the "License");
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 // http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17 //
18 
19 #ifndef GRPC_CORE_EXT_XDS_CERTIFICATE_PROVIDER_FACTORY_H
20 #define GRPC_CORE_EXT_XDS_CERTIFICATE_PROVIDER_FACTORY_H
21 
23 
25 #include "src/core/lib/json/json.h"
27 
28 namespace grpc_core {
29 
30 // Factories for plugins. Each plugin implementation should create its own
31 // factory implementation and register an instance with the registry.
33  public:
34  // Interface for configs for CertificateProviders.
35  class Config : public RefCounted<Config> {
36  public:
37  ~Config() override = default;
38 
39  // Name of the type of the CertificateProvider. Unique to each type of
40  // config.
41  virtual const char* name() const = 0;
42 
43  virtual std::string ToString() const = 0;
44  };
45 
46  virtual ~CertificateProviderFactory() = default;
47 
48  // Name of the plugin.
49  virtual const char* name() const = 0;
50 
52  const Json& config_json, grpc_error_handle* error) = 0;
53 
54  // Create a CertificateProvider instance from config.
57 };
58 
59 } // namespace grpc_core
60 
61 #endif // GRPC_CORE_EXT_XDS_CERTIFICATE_PROVIDER_FACTORY_H
Definition: certificate_provider_factory.h:35
virtual std::string ToString() const =0
virtual const char * name() const =0
Definition: certificate_provider_factory.h:32
virtual ~CertificateProviderFactory()=default
virtual const char * name() const =0
virtual RefCountedPtr< Config > CreateCertificateProviderConfig(const Json &config_json, grpc_error_handle *error)=0
virtual RefCountedPtr< grpc_tls_certificate_provider > CreateCertificateProvider(RefCountedPtr< Config > config)=0
Definition: json.h:38
Definition: ref_counted.h:282
Definition: ref_counted_ptr.h:35
grpc_error_handle error
Definition: lame_client.cc:54
Round Robin Policy.
Definition: backend_metric.cc:26
RefCountedPtr< LoadBalancingPolicy::Config > config
Definition: priority.cc:60
Definition: error_internal.h:41