xds_channel_stack_modifier.h
Go to the documentation of this file.
1 //
2 //
3 // Copyright 2021 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_XDS_CHANNEL_STACK_MODIFIER_H
20 #define GRPC_CORE_EXT_XDS_XDS_CHANNEL_STACK_MODIFIER_H
21 
23 
24 #include <utility>
25 #include <vector>
26 
28 
33 
34 namespace grpc_core {
35 
36 // XdsChannelStackModifier allows for inserting xDS HTTP filters into the
37 // channel stack. It is registered to mutate the
38 // `ChannelStackBuilder` object via
39 // ChannelInit::Builder::RegisterStage.
40 class XdsChannelStackModifier : public RefCounted<XdsChannelStackModifier> {
41  public:
43  std::vector<const grpc_channel_filter*> filters)
44  : filters_(std::move(filters)) {}
45  // Returns true on success, false otherwise.
47  grpc_arg MakeChannelArg() const;
49  const grpc_channel_args& args);
50 
51  private:
52  std::vector<const grpc_channel_filter*> filters_;
53 };
54 
55 } // namespace grpc_core
56 
57 #endif /* GRPC_CORE_EXT_XDS_XDS_CHANNEL_STACK_MODIFIER_H */
grpc_arg
Definition: grpc_types.h:103
grpc_core::XdsChannelStackModifier
Definition: xds_channel_stack_modifier.h:40
channel_fwd.h
grpc_core::XdsChannelStackModifier::MakeChannelArg
grpc_arg MakeChannelArg() const
Definition: xds_channel_stack_modifier.cc:89
grpc_core
Definition: call_metric_recorder.h:31
grpc_core::XdsChannelStackModifier::GetFromChannelArgs
static RefCountedPtr< XdsChannelStackModifier > GetFromChannelArgs(const grpc_channel_args &args)
Definition: xds_channel_stack_modifier.cc:96
grpc_channel_args
Definition: grpc_types.h:132
grpc_core::ChannelStackBuilder
Definition: channel_stack_builder.h:41
grpc_types.h
profile_analyzer.builder
builder
Definition: profile_analyzer.py:159
asyncio_get_stats.args
args
Definition: asyncio_get_stats.py:40
grpc_core::RefCountedPtr
Definition: ref_counted_ptr.h:35
absl::move
constexpr absl::remove_reference_t< T > && move(T &&t) noexcept
Definition: abseil-cpp/absl/utility/utility.h:221
grpc_core::RefCounted
Definition: ref_counted.h:280
grpc_core::XdsChannelStackModifier::filters_
std::vector< const grpc_channel_filter * > filters_
Definition: xds_channel_stack_modifier.h:52
ref_counted.h
std
Definition: grpcpp/impl/codegen/async_unary_call.h:407
grpc_core::XdsChannelStackModifier::XdsChannelStackModifier
XdsChannelStackModifier(std::vector< const grpc_channel_filter * > filters)
Definition: xds_channel_stack_modifier.h:42
ref_counted_ptr.h
grpc_core::XdsChannelStackModifier::ModifyChannelStack
bool ModifyChannelStack(ChannelStackBuilder *builder)
Definition: xds_channel_stack_modifier.cc:61
channel_stack_builder.h
port_platform.h


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