1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- //
- // Copyright 2018 gRPC authors.
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- //
- #ifndef GRPC_TEST_CORE_UTIL_TEST_LB_POLICIES_H
- #define GRPC_TEST_CORE_UTIL_TEST_LB_POLICIES_H
- #include "src/core/ext/filters/client_channel/lb_policy.h"
- namespace grpc_core {
- using MetadataVector = std::vector<std::pair<std::string, std::string>>;
- struct PickArgsSeen {
- std::string path;
- MetadataVector metadata;
- };
- using TestPickArgsCallback = std::function<void(const PickArgsSeen&)>;
- // Registers an LB policy called "test_pick_args_lb" that passes the args
- // passed to SubchannelPicker::Pick() to cb.
- void RegisterTestPickArgsLoadBalancingPolicy(
- TestPickArgsCallback cb, const char* delegate_policy_name = "pick_first");
- struct TrailingMetadataArgsSeen {
- absl::Status status;
- const LoadBalancingPolicy::BackendMetricAccessor::BackendMetricData*
- backend_metric_data;
- MetadataVector metadata;
- };
- using InterceptRecvTrailingMetadataCallback =
- std::function<void(const TrailingMetadataArgsSeen&)>;
- // Registers an LB policy called "intercept_trailing_metadata_lb" that
- // invokes cb when trailing metadata is received for each call.
- void RegisterInterceptRecvTrailingMetadataLoadBalancingPolicy(
- InterceptRecvTrailingMetadataCallback cb);
- using AddressTestCallback = std::function<void(const ServerAddress&)>;
- // Registers an LB policy called "address_test_lb" that invokes cb for each
- // address used to create a subchannel.
- void RegisterAddressTestLoadBalancingPolicy(AddressTestCallback cb);
- // Registers an LB policy called "fixed_address_lb" that provides a
- // single subchannel whose address is in its configuration.
- void RegisterFixedAddressLoadBalancingPolicy();
- } // namespace grpc_core
- #endif // GRPC_TEST_CORE_UTIL_TEST_LB_POLICIES_H
|