GRPC Core  9.0.0
Namespaces | Macros | Functions | Variables
client_channel.cc File Reference
#include <grpc/support/port_platform.h>
#include "src/core/ext/filters/client_channel/client_channel.h"
#include <inttypes.h>
#include <limits.h>
#include <stdbool.h>
#include <stdio.h>
#include <string.h>
#include <set>
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/string_util.h>
#include <grpc/support/sync.h>
#include "src/core/ext/filters/client_channel/backend_metric.h"
#include "src/core/ext/filters/client_channel/backup_poller.h"
#include "src/core/ext/filters/client_channel/global_subchannel_pool.h"
#include "src/core/ext/filters/client_channel/http_connect_handshaker.h"
#include "src/core/ext/filters/client_channel/lb_policy_registry.h"
#include "src/core/ext/filters/client_channel/local_subchannel_pool.h"
#include "src/core/ext/filters/client_channel/proxy_mapper_registry.h"
#include "src/core/ext/filters/client_channel/resolver_registry.h"
#include "src/core/ext/filters/client_channel/resolver_result_parsing.h"
#include "src/core/ext/filters/client_channel/resolving_lb_policy.h"
#include "src/core/ext/filters/client_channel/retry_throttle.h"
#include "src/core/ext/filters/client_channel/service_config.h"
#include "src/core/ext/filters/client_channel/subchannel.h"
#include "src/core/ext/filters/deadline/deadline_filter.h"
#include "src/core/lib/backoff/backoff.h"
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/channel/connected_channel.h"
#include "src/core/lib/channel/status_util.h"
#include "src/core/lib/gprpp/inlined_vector.h"
#include "src/core/lib/gprpp/manual_constructor.h"
#include "src/core/lib/gprpp/map.h"
#include "src/core/lib/gprpp/sync.h"
#include "src/core/lib/iomgr/combiner.h"
#include "src/core/lib/iomgr/iomgr.h"
#include "src/core/lib/iomgr/polling_entity.h"
#include "src/core/lib/profiling/timers.h"
#include "src/core/lib/slice/slice_internal.h"
#include "src/core/lib/slice/slice_string_helpers.h"
#include "src/core/lib/surface/channel.h"
#include "src/core/lib/transport/connectivity_state.h"
#include "src/core/lib/transport/error_utils.h"
#include "src/core/lib/transport/metadata.h"
#include "src/core/lib/transport/metadata_batch.h"
#include "src/core/lib/transport/static_metadata.h"
#include "src/core/lib/transport/status_metadata.h"

Namespaces

 grpc_core
 Round Robin Policy.
 

Macros

#define DEFAULT_PER_RPC_RETRY_BUFFER_SIZE   (256 << 10)
 
#define RETRY_BACKOFF_JITTER   0.2
 
#define MAX_PENDING_BATCHES   6
 

Functions

grpc_connectivity_state grpc_client_channel_check_connectivity_state (grpc_channel_element *elem, int try_to_connect)
 
int grpc_client_channel_num_external_connectivity_watchers (grpc_channel_element *elem)
 
void grpc_client_channel_watch_connectivity_state (grpc_channel_element *elem, grpc_polling_entity pollent, grpc_connectivity_state *state, grpc_closure *closure, grpc_closure *watcher_timer_init)
 
void grpc_client_channel_start_connectivity_watch (grpc_channel_element *elem, grpc_connectivity_state initial_state, grpc_core::OrphanablePtr< grpc_core::AsyncConnectivityStateWatcherInterface > watcher)
 
void grpc_client_channel_stop_connectivity_watch (grpc_channel_element *elem, grpc_core::AsyncConnectivityStateWatcherInterface *watcher)
 
grpc_core::RefCountedPtr< grpc_core::SubchannelCallgrpc_client_channel_get_subchannel_call (grpc_call_element *elem)
 

Variables

TraceFlag grpc_core::grpc_client_channel_call_trace (false, "client_channel_call")
 
TraceFlag grpc_core::grpc_client_channel_routing_trace (false, "client_channel_routing")
 
const grpc_channel_filter grpc_client_channel_filter
 

Macro Definition Documentation

◆ DEFAULT_PER_RPC_RETRY_BUFFER_SIZE

#define DEFAULT_PER_RPC_RETRY_BUFFER_SIZE   (256 << 10)

◆ MAX_PENDING_BATCHES

#define MAX_PENDING_BATCHES   6

◆ RETRY_BACKOFF_JITTER

#define RETRY_BACKOFF_JITTER   0.2

Function Documentation

◆ grpc_client_channel_check_connectivity_state()

grpc_connectivity_state grpc_client_channel_check_connectivity_state ( grpc_channel_element elem,
int  try_to_connect 
)

◆ grpc_client_channel_get_subchannel_call()

grpc_core::RefCountedPtr<grpc_core::SubchannelCall> grpc_client_channel_get_subchannel_call ( grpc_call_element elem)

◆ grpc_client_channel_num_external_connectivity_watchers()

int grpc_client_channel_num_external_connectivity_watchers ( grpc_channel_element elem)

◆ grpc_client_channel_start_connectivity_watch()

void grpc_client_channel_start_connectivity_watch ( grpc_channel_element elem,
grpc_connectivity_state  initial_state,
grpc_core::OrphanablePtr< grpc_core::AsyncConnectivityStateWatcherInterface watcher 
)

◆ grpc_client_channel_stop_connectivity_watch()

void grpc_client_channel_stop_connectivity_watch ( grpc_channel_element elem,
grpc_core::AsyncConnectivityStateWatcherInterface watcher 
)

◆ grpc_client_channel_watch_connectivity_state()

void grpc_client_channel_watch_connectivity_state ( grpc_channel_element elem,
grpc_polling_entity  pollent,
grpc_connectivity_state state,
grpc_closure closure,
grpc_closure watcher_timer_init 
)

Variable Documentation

◆ batch

◆ batch_payload

◆ collect_stats

◆ completed_recv_initial_metadata

bool completed_recv_initial_metadata

◆ completed_recv_message_count

size_t completed_recv_message_count = 0

◆ completed_recv_trailing_metadata

bool completed_recv_trailing_metadata

◆ completed_send_initial_metadata

bool completed_send_initial_metadata

◆ completed_send_message_count

size_t completed_send_message_count = 0

◆ completed_send_trailing_metadata

bool completed_send_trailing_metadata

◆ elem

◆ grpc_client_channel_filter

const grpc_channel_filter grpc_client_channel_filter
Initial value:
= {
CallData::StartTransportStreamOpBatch,
ChannelData::StartTransportOp,
sizeof(CallData),
CallData::Init,
CallData::SetPollent,
CallData::Destroy,
sizeof(ChannelData),
ChannelData::Init,
ChannelData::Destroy,
ChannelData::GetChannelInfo,
"client-channel",
}

◆ next

QueuedPick* next = nullptr

◆ on_complete

grpc_closure on_complete

◆ recv_initial_metadata

grpc_metadata_batch recv_initial_metadata

◆ recv_initial_metadata_error

grpc_error* recv_initial_metadata_error = GRPC_ERROR_NONE

◆ recv_initial_metadata_ready

static void recv_initial_metadata_ready

◆ recv_initial_metadata_ready_deferred_batch

SubchannelCallBatchData* recv_initial_metadata_ready_deferred_batch
Initial value:
=
nullptr

◆ recv_message

OrphanablePtr<ByteStream> recv_message

◆ recv_message_error

grpc_error* recv_message_error = GRPC_ERROR_NONE

◆ recv_message_ready

static void recv_message_ready

◆ recv_message_ready_deferred_batch

SubchannelCallBatchData* recv_message_ready_deferred_batch = nullptr

◆ recv_trailing_metadata

grpc_metadata_batch recv_trailing_metadata

◆ recv_trailing_metadata_internal_batch

SubchannelCallBatchData* recv_trailing_metadata_internal_batch = nullptr

◆ recv_trailing_metadata_ready

static void recv_trailing_metadata_ready

◆ refs

◆ retry_dispatched

bool retry_dispatched

◆ send_initial_metadata

grpc_metadata_batch send_initial_metadata

◆ send_initial_metadata_storage

grpc_linked_mdelem* send_initial_metadata_storage

◆ send_message

ManualConstructor<ByteStreamCache::CachingByteStream> send_message

◆ send_ops_cached

bool send_ops_cached

◆ send_trailing_metadata

grpc_metadata_batch send_trailing_metadata

◆ send_trailing_metadata_storage

grpc_linked_mdelem* send_trailing_metadata_storage

◆ started_recv_initial_metadata

bool started_recv_initial_metadata

◆ started_recv_message_count

size_t started_recv_message_count = 0

◆ started_recv_trailing_metadata

bool started_recv_trailing_metadata

◆ started_send_initial_metadata

bool started_send_initial_metadata

◆ started_send_message_count

size_t started_send_message_count = 0

◆ started_send_trailing_metadata

bool started_send_trailing_metadata

◆ subchannel_call

RefCountedPtr<SubchannelCall> subchannel_call

◆ trailing_metadata_available

bool trailing_metadata_available = false