GRPC Core  18.0.0
Data Structures | Namespaces | Macros | Variables
subchannel.cc File Reference
#include <grpc/support/port_platform.h>
#include "src/core/ext/filters/client_channel/subchannel.h"
#include <inttypes.h>
#include <limits.h>
#include <algorithm>
#include <cstring>
#include "absl/strings/str_format.h"
#include <grpc/support/alloc.h>
#include <grpc/support/string_util.h>
#include "src/core/ext/filters/client_channel/client_channel.h"
#include "src/core/ext/filters/client_channel/health/health_check_client.h"
#include "src/core/ext/filters/client_channel/proxy_mapper_registry.h"
#include "src/core/ext/filters/client_channel/service_config.h"
#include "src/core/ext/filters/client_channel/subchannel_pool_interface.h"
#include "src/core/lib/address_utils/parse_address.h"
#include "src/core/lib/address_utils/sockaddr_utils.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/debug/stats.h"
#include "src/core/lib/gpr/alloc.h"
#include "src/core/lib/gprpp/debug_location.h"
#include "src/core/lib/gprpp/manual_constructor.h"
#include "src/core/lib/gprpp/ref_counted_ptr.h"
#include "src/core/lib/gprpp/sync.h"
#include "src/core/lib/profiling/timers.h"
#include "src/core/lib/slice/slice_internal.h"
#include "src/core/lib/surface/channel.h"
#include "src/core/lib/surface/channel_init.h"
#include "src/core/lib/transport/connectivity_state.h"
#include "src/core/lib/transport/error_utils.h"
#include "src/core/lib/transport/status_metadata.h"
#include "src/core/lib/uri/uri_parser.h"

Data Structures

class  grpc_core::Subchannel::ConnectedSubchannelStateWatcher
 
class  grpc_core::Subchannel::AsyncWatcherNotifierLocked
 
class  grpc_core::Subchannel::HealthWatcherMap::HealthWatcher
 

Namespaces

 grpc_core
 Round Robin Policy.
 

Macros

#define INTERNAL_REF_BITS   16
 
#define STRONG_REF_MASK   (~(gpr_atm)((1 << INTERNAL_REF_BITS) - 1))
 
#define GRPC_SUBCHANNEL_INITIAL_CONNECT_BACKOFF_SECONDS   1
 
#define GRPC_SUBCHANNEL_RECONNECT_BACKOFF_MULTIPLIER   1.6
 
#define GRPC_SUBCHANNEL_RECONNECT_MIN_TIMEOUT_SECONDS   20
 
#define GRPC_SUBCHANNEL_RECONNECT_MAX_BACKOFF_SECONDS   120
 
#define GRPC_SUBCHANNEL_RECONNECT_JITTER   0.2
 
#define SUBCHANNEL_CALL_TO_CALL_STACK(call)
 
#define CALL_STACK_TO_SUBCHANNEL_CALL(callstack)
 

Variables

TraceFlag grpc_core::grpc_trace_subchannel (false, "subchannel")
 
DebugOnlyTraceFlag grpc_core::grpc_trace_subchannel_refcount (false, "subchannel_refcount")
 

Macro Definition Documentation

◆ CALL_STACK_TO_SUBCHANNEL_CALL

#define CALL_STACK_TO_SUBCHANNEL_CALL (   callstack)
Value:
(SubchannelCall*)(((char*)(call_stack)) - \
GPR_ROUND_UP_TO_ALIGNMENT_SIZE(sizeof(SubchannelCall)))

◆ GRPC_SUBCHANNEL_INITIAL_CONNECT_BACKOFF_SECONDS

#define GRPC_SUBCHANNEL_INITIAL_CONNECT_BACKOFF_SECONDS   1

◆ GRPC_SUBCHANNEL_RECONNECT_BACKOFF_MULTIPLIER

#define GRPC_SUBCHANNEL_RECONNECT_BACKOFF_MULTIPLIER   1.6

◆ GRPC_SUBCHANNEL_RECONNECT_JITTER

#define GRPC_SUBCHANNEL_RECONNECT_JITTER   0.2

◆ GRPC_SUBCHANNEL_RECONNECT_MAX_BACKOFF_SECONDS

#define GRPC_SUBCHANNEL_RECONNECT_MAX_BACKOFF_SECONDS   120

◆ GRPC_SUBCHANNEL_RECONNECT_MIN_TIMEOUT_SECONDS

#define GRPC_SUBCHANNEL_RECONNECT_MIN_TIMEOUT_SECONDS   20

◆ INTERNAL_REF_BITS

#define INTERNAL_REF_BITS   16

◆ STRONG_REF_MASK

#define STRONG_REF_MASK   (~(gpr_atm)((1 << INTERNAL_REF_BITS) - 1))

◆ SUBCHANNEL_CALL_TO_CALL_STACK

#define SUBCHANNEL_CALL_TO_CALL_STACK (   call)
Value:
(grpc_call_stack*)((char*)(call) + \
GPR_ROUND_UP_TO_ALIGNMENT_SIZE(sizeof(SubchannelCall)))
#define GPR_ROUND_UP_TO_ALIGNMENT_SIZE(x)
Given a size, round up to the next multiple of sizeof(void*).
Definition: alloc.h:25
Definition: channel_stack.h:192