|
|
|
@ -191,7 +191,7 @@ class ClientChannelFilter::CallData { |
|
|
|
|
RefCountedPtr<DynamicFilters> dynamic_filters_; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
class ClientChannelFilter::FilterBasedCallData |
|
|
|
|
class ClientChannelFilter::FilterBasedCallData final |
|
|
|
|
: public ClientChannelFilter::CallData { |
|
|
|
|
public: |
|
|
|
|
static grpc_error_handle Init(grpc_call_element* elem, |
|
|
|
@ -311,7 +311,7 @@ class ClientChannelFilter::FilterBasedCallData |
|
|
|
|
grpc_error_handle cancel_error_; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
class ClientChannelFilter::PromiseBasedCallData |
|
|
|
|
class ClientChannelFilter::PromiseBasedCallData final |
|
|
|
|
: public ClientChannelFilter::CallData { |
|
|
|
|
public: |
|
|
|
|
explicit PromiseBasedCallData(ClientChannelFilter* chand) : chand_(chand) {} |
|
|
|
@ -451,7 +451,7 @@ ClientChannelServiceConfigCallData* GetServiceConfigCallData( |
|
|
|
|
context[GRPC_CONTEXT_SERVICE_CONFIG_CALL_DATA].value); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
class DynamicTerminationFilter { |
|
|
|
|
class DynamicTerminationFilter final { |
|
|
|
|
public: |
|
|
|
|
class CallData; |
|
|
|
|
|
|
|
|
@ -496,7 +496,7 @@ class DynamicTerminationFilter { |
|
|
|
|
ClientChannelFilter* chand_; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
class DynamicTerminationFilter::CallData { |
|
|
|
|
class DynamicTerminationFilter::CallData final { |
|
|
|
|
public: |
|
|
|
|
static grpc_error_handle Init(grpc_call_element* elem, |
|
|
|
|
const grpc_call_element_args* args) { |
|
|
|
@ -593,7 +593,7 @@ const grpc_channel_filter DynamicTerminationFilter::kFilterVtable = { |
|
|
|
|
// ClientChannelFilter::ResolverResultHandler
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
class ClientChannelFilter::ResolverResultHandler |
|
|
|
|
class ClientChannelFilter::ResolverResultHandler final |
|
|
|
|
: public Resolver::ResultHandler { |
|
|
|
|
public: |
|
|
|
|
explicit ResolverResultHandler(ClientChannelFilter* chand) : chand_(chand) { |
|
|
|
@ -628,7 +628,8 @@ class ClientChannelFilter::ResolverResultHandler |
|
|
|
|
// underlying subchannel is shared between channels, this wrapper will only
|
|
|
|
|
// be used within one channel, so it will always be synchronized by the
|
|
|
|
|
// control plane work_serializer.
|
|
|
|
|
class ClientChannelFilter::SubchannelWrapper : public SubchannelInterface { |
|
|
|
|
class ClientChannelFilter::SubchannelWrapper final |
|
|
|
|
: public SubchannelInterface { |
|
|
|
|
public: |
|
|
|
|
SubchannelWrapper(ClientChannelFilter* chand, |
|
|
|
|
RefCountedPtr<Subchannel> subchannel) |
|
|
|
@ -771,7 +772,8 @@ class ClientChannelFilter::SubchannelWrapper : public SubchannelInterface { |
|
|
|
|
// This class handles things like hopping into the WorkSerializer
|
|
|
|
|
// before passing notifications to the LB policy and propagating
|
|
|
|
|
// keepalive information betwen subchannels.
|
|
|
|
|
class WatcherWrapper : public Subchannel::ConnectivityStateWatcherInterface { |
|
|
|
|
class WatcherWrapper final |
|
|
|
|
: public Subchannel::ConnectivityStateWatcherInterface { |
|
|
|
|
public: |
|
|
|
|
WatcherWrapper( |
|
|
|
|
std::unique_ptr<SubchannelInterface::ConnectivityStateWatcherInterface> |
|
|
|
@ -1024,7 +1026,7 @@ void ClientChannelFilter::ExternalConnectivityWatcher::RemoveWatcherLocked() { |
|
|
|
|
// ClientChannelFilter::ConnectivityWatcherAdder
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
class ClientChannelFilter::ConnectivityWatcherAdder { |
|
|
|
|
class ClientChannelFilter::ConnectivityWatcherAdder final { |
|
|
|
|
public: |
|
|
|
|
ConnectivityWatcherAdder( |
|
|
|
|
ClientChannelFilter* chand, grpc_connectivity_state initial_state, |
|
|
|
@ -1057,7 +1059,7 @@ class ClientChannelFilter::ConnectivityWatcherAdder { |
|
|
|
|
// ClientChannelFilter::ConnectivityWatcherRemover
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
class ClientChannelFilter::ConnectivityWatcherRemover { |
|
|
|
|
class ClientChannelFilter::ConnectivityWatcherRemover final { |
|
|
|
|
public: |
|
|
|
|
ConnectivityWatcherRemover(ClientChannelFilter* chand, |
|
|
|
|
AsyncConnectivityStateWatcherInterface* watcher) |
|
|
|
@ -1087,7 +1089,7 @@ class ClientChannelFilter::ConnectivityWatcherRemover { |
|
|
|
|
// ClientChannelFilter::ClientChannelControlHelper
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
class ClientChannelFilter::ClientChannelControlHelper |
|
|
|
|
class ClientChannelFilter::ClientChannelControlHelper final |
|
|
|
|
: public LoadBalancingPolicy::ChannelControlHelper { |
|
|
|
|
public: |
|
|
|
|
explicit ClientChannelControlHelper(ClientChannelFilter* chand) |
|
|
|
@ -2478,7 +2480,8 @@ void ClientChannelFilter::FilterBasedCallData::PendingBatchesResume() { |
|
|
|
|
|
|
|
|
|
// A class to handle the call combiner cancellation callback for a
|
|
|
|
|
// queued pick.
|
|
|
|
|
class ClientChannelFilter::FilterBasedCallData::ResolverQueuedCallCanceller { |
|
|
|
|
class ClientChannelFilter::FilterBasedCallData::ResolverQueuedCallCanceller |
|
|
|
|
final { |
|
|
|
|
public: |
|
|
|
|
explicit ResolverQueuedCallCanceller(FilterBasedCallData* calld) |
|
|
|
|
: calld_(calld) { |
|
|
|
@ -2599,7 +2602,7 @@ void ClientChannelFilter::FilterBasedCallData:: |
|
|
|
|
// ClientChannelFilter::LoadBalancedCall::LbCallState
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
class ClientChannelFilter::LoadBalancedCall::LbCallState |
|
|
|
|
class ClientChannelFilter::LoadBalancedCall::LbCallState final |
|
|
|
|
: public ClientChannelLbCallState { |
|
|
|
|
public: |
|
|
|
|
explicit LbCallState(LoadBalancedCall* lb_call) : lb_call_(lb_call) {} |
|
|
|
@ -2621,7 +2624,7 @@ class ClientChannelFilter::LoadBalancedCall::LbCallState |
|
|
|
|
// ClientChannelFilter::LoadBalancedCall::Metadata
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
class ClientChannelFilter::LoadBalancedCall::Metadata |
|
|
|
|
class ClientChannelFilter::LoadBalancedCall::Metadata final |
|
|
|
|
: public LoadBalancingPolicy::MetadataInterface { |
|
|
|
|
public: |
|
|
|
|
explicit Metadata(grpc_metadata_batch* batch) : batch_(batch) {} |
|
|
|
@ -2661,7 +2664,7 @@ class ClientChannelFilter::LoadBalancedCall::Metadata |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private: |
|
|
|
|
class Encoder { |
|
|
|
|
class Encoder final { |
|
|
|
|
public: |
|
|
|
|
void Encode(const Slice& key, const Slice& value) { |
|
|
|
|
out_.emplace_back(std::string(key.as_string_view()), |
|
|
|
@ -2714,7 +2717,7 @@ ClientChannelFilter::LoadBalancedCall::LbCallState::GetCallAttemptTracer() |
|
|
|
|
// ClientChannelFilter::LoadBalancedCall::BackendMetricAccessor
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
class ClientChannelFilter::LoadBalancedCall::BackendMetricAccessor |
|
|
|
|
class ClientChannelFilter::LoadBalancedCall::BackendMetricAccessor final |
|
|
|
|
: public LoadBalancingPolicy::BackendMetricAccessor { |
|
|
|
|
public: |
|
|
|
|
BackendMetricAccessor(LoadBalancedCall* lb_call, |
|
|
|
@ -2735,7 +2738,7 @@ class ClientChannelFilter::LoadBalancedCall::BackendMetricAccessor |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private: |
|
|
|
|
class BackendMetricAllocator : public BackendMetricAllocatorInterface { |
|
|
|
|
class BackendMetricAllocator final : public BackendMetricAllocatorInterface { |
|
|
|
|
public: |
|
|
|
|
explicit BackendMetricAllocator(Arena* arena) : arena_(arena) {} |
|
|
|
|
|
|
|
|
@ -3390,7 +3393,8 @@ void ClientChannelFilter::FilterBasedLoadBalancedCall:: |
|
|
|
|
// because there may be multiple LB picks happening in parallel.
|
|
|
|
|
// Instead, we will probably need to maintain a list in the CallData
|
|
|
|
|
// object of pending LB picks to be cancelled when the closure runs.
|
|
|
|
|
class ClientChannelFilter::FilterBasedLoadBalancedCall::LbQueuedCallCanceller { |
|
|
|
|
class ClientChannelFilter::FilterBasedLoadBalancedCall::LbQueuedCallCanceller |
|
|
|
|
final { |
|
|
|
|
public: |
|
|
|
|
explicit LbQueuedCallCanceller( |
|
|
|
|
RefCountedPtr<FilterBasedLoadBalancedCall> lb_call) |
|
|
|
|