grpc
src
core
ext
filters
client_channel
lb_policy_factory.h
Go to the documentation of this file.
1
/*
2
*
3
* Copyright 2015 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_FILTERS_CLIENT_CHANNEL_LB_POLICY_FACTORY_H
20
#define GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_LB_POLICY_FACTORY_H
21
22
#include <
grpc/support/port_platform.h
>
23
24
#include "
src/core/ext/filters/client_channel/lb_policy.h
"
25
#include "
src/core/lib/gprpp/orphanable.h
"
26
#include "
src/core/lib/gprpp/ref_counted_ptr.h
"
27
#include "
src/core/lib/iomgr/error.h
"
28
#include "
src/core/lib/json/json.h
"
29
30
namespace
grpc_core
{
31
32
class
LoadBalancingPolicyFactory
{
33
public
:
34
virtual
~LoadBalancingPolicyFactory
() {}
35
37
virtual
OrphanablePtr<LoadBalancingPolicy>
CreateLoadBalancingPolicy
(
38
LoadBalancingPolicy::Args
)
const
= 0;
39
42
virtual
const
char
*
name
()
const
= 0;
43
44
virtual
RefCountedPtr<LoadBalancingPolicy::Config>
ParseLoadBalancingConfig
(
45
const
Json
& json,
grpc_error_handle
*
error
)
const
= 0;
46
};
47
48
}
// namespace grpc_core
49
50
#endif
/* GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_LB_POLICY_FACTORY_H */
grpc_core::LoadBalancingPolicyFactory::~LoadBalancingPolicyFactory
virtual ~LoadBalancingPolicyFactory()
Definition:
lb_policy_factory.h:34
orphanable.h
grpc_core::LoadBalancingPolicyFactory::CreateLoadBalancingPolicy
virtual OrphanablePtr< LoadBalancingPolicy > CreateLoadBalancingPolicy(LoadBalancingPolicy::Args) const =0
Returns a new LB policy instance.
grpc_core
Definition:
call_metric_recorder.h:31
error
grpc_error_handle error
Definition:
retry_filter.cc:499
lb_policy.h
grpc_core::LoadBalancingPolicyFactory
Definition:
lb_policy_factory.h:32
grpc_core::RefCountedPtr
Definition:
ref_counted_ptr.h:35
Json
JSON (JavaScript Object Notation).
Definition:
third_party/bloaty/third_party/protobuf/conformance/third_party/jsoncpp/json.h:227
error.h
json.h
grpc_core::LoadBalancingPolicy::Args
Args used to instantiate an LB policy.
Definition:
lb_policy.h:343
grpc_core::OrphanablePtr
std::unique_ptr< T, Deleter > OrphanablePtr
Definition:
orphanable.h:64
ref_counted_ptr.h
grpc_error
Definition:
error_internal.h:42
grpc_core::LoadBalancingPolicyFactory::name
virtual const char * name() const =0
port_platform.h
grpc_core::LoadBalancingPolicyFactory::ParseLoadBalancingConfig
virtual RefCountedPtr< LoadBalancingPolicy::Config > ParseLoadBalancingConfig(const Json &json, grpc_error_handle *error) const =0
grpc
Author(s):
autogenerated on Fri May 16 2025 02:59:15