GRPC Core
18.0.0
|
#include <internal.h>
Public Member Functions | |
grpc_chttp2_transport (const grpc_channel_args *channel_args, grpc_endpoint *ep, bool is_client, grpc_resource_user *resource_user) | |
~grpc_chttp2_transport () | |
grpc_chttp2_transport::grpc_chttp2_transport | ( | const grpc_channel_args * | channel_args, |
grpc_endpoint * | ep, | ||
bool | is_client, | ||
grpc_resource_user * | resource_user | ||
) |
grpc_chttp2_transport::~grpc_chttp2_transport | ( | ) |
void(* grpc_chttp2_transport::accept_stream_cb) (void *user_data, grpc_transport *transport, const void *server_data) |
void* grpc_chttp2_transport::accept_stream_cb_user_data |
grpc_chttp2_stream** grpc_chttp2_transport::accepting_stream = nullptr |
address to place a newly accepted stream - set and unset by grpc_chttp2_parsing_accept_stream; used by init_stream to publish the accepted server stream
grpc_transport grpc_chttp2_transport::base |
bool grpc_chttp2_transport::bdp_ping_blocked |
bool grpc_chttp2_transport::bdp_ping_started = false |
If start_bdp_ping_locked has been called.
grpc_closure grpc_chttp2_transport::benign_reclaimer_locked |
benign cleanup closure
bool grpc_chttp2_transport::benign_reclaimer_registered = false |
have we scheduled a benign cleanup?
grpc_core::RefCountedPtr<grpc_core::channelz::SocketNode> grpc_chttp2_transport::channelz_socket |
grpc_core::ContextList* grpc_chttp2_transport::cl = nullptr |
grpc_error_handle grpc_chttp2_transport::close_transport_on_writes_finished = GRPC_ERROR_NONE |
grpc_error_handle grpc_chttp2_transport::closed_with_error = GRPC_ERROR_NONE |
has the upper layer closed the transport?
grpc_core::Combiner* grpc_chttp2_transport::combiner |
grpc_chttp2_deframe_transport_state grpc_chttp2_transport::deframe_state = GRPC_DTS_CLIENT_PREFIX_0 |
uint8_t grpc_chttp2_transport::destroying = false |
is the transport destroying itself?
grpc_closure grpc_chttp2_transport::destructive_reclaimer_locked |
destructive cleanup closure
bool grpc_chttp2_transport::destructive_reclaimer_registered = false |
have we scheduled a destructive cleanup?
bool grpc_chttp2_transport::dirtied_local_settings = true |
are the local settings dirty and need to be sent?
uint8_t grpc_chttp2_transport::endpoint_reading = 1 |
is there a read request to the endpoint outstanding?
grpc_endpoint* grpc_chttp2_transport::ep |
uint32_t grpc_chttp2_transport::expect_continuation_stream_id = 0 |
grpc_closure grpc_chttp2_transport::finish_bdp_ping_locked |
grpc_closure grpc_chttp2_transport::finish_keepalive_ping_locked |
Cousure to run when the keepalive ping ack is received.
grpc_core::PolymorphicManualConstructor< grpc_core::chttp2::TransportFlowControlBase, grpc_core::chttp2::TransportFlowControl, grpc_core::chttp2::TransportFlowControlDisabled> grpc_chttp2_transport::flow_control |
uint32_t grpc_chttp2_transport::force_send_settings = 1 << GRPC_CHTTP2_SETTINGS_INITIAL_WINDOW_SIZE |
bitmask of setting indexes to send out Hack: it's common for implementations to assume 65536 bytes initial send window – this should by rights be 0
grpc_error_handle grpc_chttp2_transport::goaway_error = GRPC_ERROR_NONE |
Set to a grpc_error object if a goaway frame is received.
By default, set to GRPC_ERROR_NONE
grpc_chttp2_goaway_parser grpc_chttp2_transport::goaway_parser |
parser for goaway frames
bool grpc_chttp2_transport::have_next_bdp_ping_timer = false |
uint8_t grpc_chttp2_transport::header_eof = 0 |
grpc_chttp2_hpack_compressor grpc_chttp2_transport::hpack_compressor |
hpack encoding
grpc_chttp2_hpack_parser grpc_chttp2_transport::hpack_parser |
parser for headers
uint8_t grpc_chttp2_transport::incoming_frame_flags = 0 |
uint32_t grpc_chttp2_transport::incoming_frame_size = 0 |
uint8_t grpc_chttp2_transport::incoming_frame_type = 0 |
grpc_chttp2_stream* grpc_chttp2_transport::incoming_stream = nullptr |
uint32_t grpc_chttp2_transport::incoming_stream_id = 0 |
grpc_closure grpc_chttp2_transport::init_keepalive_ping_locked |
Closure to initialize a keepalive ping.
int64_t grpc_chttp2_transport::initial_window_update = 0 |
initial window change.
This is tracked as we parse settings frames from the remote peer. If there is a positive delta, then we will make all streams readable since they may have become unstalled
bool grpc_chttp2_transport::is_client |
is this a client?
bool grpc_chttp2_transport::is_first_frame = true |
bool grpc_chttp2_transport::keepalive_permit_without_calls = false |
if keepalive pings are allowed when there's no outstanding streams
bool grpc_chttp2_transport::keepalive_ping_started = false |
If start_keepalive_ping_locked has been called.
grpc_timer grpc_chttp2_transport::keepalive_ping_timer |
timer to initiate ping events
grpc_chttp2_keepalive_state grpc_chttp2_transport::keepalive_state |
keep-alive state machine state
grpc_millis grpc_chttp2_transport::keepalive_time |
time duration in between pings
grpc_millis grpc_chttp2_transport::keepalive_timeout |
grace period for a ping to complete before watchdog kicks in
grpc_closure grpc_chttp2_transport::keepalive_watchdog_fired_locked |
Closrue to run when the keepalive ping timeouts.
grpc_timer grpc_chttp2_transport::keepalive_watchdog_timer |
watchdog to kill the transport when waiting for the keepalive ping
uint32_t grpc_chttp2_transport::last_new_stream_id = 0 |
last new stream id
grpc_chttp2_stream_list grpc_chttp2_transport::lists[STREAM_LIST_COUNT] = {} |
various lists of streams
grpc_timer grpc_chttp2_transport::next_bdp_ping_timer |
grpc_closure grpc_chttp2_transport::next_bdp_ping_timer_expired_locked |
uint32_t grpc_chttp2_transport::next_stream_id = 0 |
what is the next stream id to be allocated by this peer? copied to next_stream_id in parsing when parsing commences
grpc_closure* grpc_chttp2_transport::notify_on_close = nullptr |
grpc_closure* grpc_chttp2_transport::notify_on_receive_settings = nullptr |
uint32_t grpc_chttp2_transport::num_messages_in_next_write = 0 |
uint32_t grpc_chttp2_transport::num_pending_induced_frames = 0 |
The number of pending induced frames (SETTINGS_ACK, PINGS_ACK and RST_STREAM) in the outgoing buffer (t->qbuf).
If this number goes beyond DEFAULT_MAX_PENDING_INDUCED_FRAMES, we pause reading new frames. We would only continue reading when we are able to write to the socket again, thereby reducing the number of induced frames.
grpc_slice_buffer grpc_chttp2_transport::outbuf |
data to write now
grpc_error_handle(* grpc_chttp2_transport::parser) (void *parser_user_data, grpc_chttp2_transport *t, grpc_chttp2_stream *s, const grpc_slice &slice, int is_last) |
void* grpc_chttp2_transport::parser_data = nullptr |
std::string grpc_chttp2_transport::peer_string |
grpc_chttp2_ping_parser grpc_chttp2_transport::ping |
size_t grpc_chttp2_transport::ping_ack_capacity = 0 |
size_t grpc_chttp2_transport::ping_ack_count = 0 |
ping acks
uint64_t* grpc_chttp2_transport::ping_acks = nullptr |
uint64_t grpc_chttp2_transport::ping_ctr = 0 |
grpc_chttp2_repeated_ping_policy grpc_chttp2_transport::ping_policy |
grpc_chttp2_ping_queue grpc_chttp2_transport::ping_queue = grpc_chttp2_ping_queue() |
ping queues for various ping insertion points
grpc_chttp2_server_ping_recv_state grpc_chttp2_transport::ping_recv_state |
grpc_chttp2_repeated_ping_state grpc_chttp2_transport::ping_state |
grpc_slice_buffer grpc_chttp2_transport::qbuf |
data to write next write
grpc_closure grpc_chttp2_transport::read_action_locked |
grpc_slice_buffer grpc_chttp2_transport::read_buffer |
incoming read bytes
bool grpc_chttp2_transport::reading_paused_on_pending_induced_frames = false |
grpc_core::RefCount grpc_chttp2_transport::refs |
grpc_resource_user* grpc_chttp2_transport::resource_user |
grpc_closure grpc_chttp2_transport::retry_initiate_ping_locked |
grpc_chttp2_rst_stream_parser grpc_chttp2_transport::rst_stream |
grpc_closure_list grpc_chttp2_transport::run_after_write = GRPC_CLOSURE_LIST_INIT |
grpc_chttp2_sent_goaway_state grpc_chttp2_transport::sent_goaway_state = GRPC_CHTTP2_NO_GOAWAY_SEND |
bool grpc_chttp2_transport::sent_local_settings = false |
have local settings been sent?
uint32_t grpc_chttp2_transport::settings[GRPC_NUM_SETTING_SETS][GRPC_CHTTP2_NUM_SETTINGS] |
settings values
grpc_chttp2_settings_parser grpc_chttp2_transport::settings |
union { ... } grpc_chttp2_transport::simple |
simple one shot parsers
grpc_closure grpc_chttp2_transport::start_bdp_ping_locked |
grpc_closure grpc_chttp2_transport::start_keepalive_ping_locked |
Closure to run when the keepalive ping is sent.
grpc_core::ConnectivityStateTracker grpc_chttp2_transport::state_tracker |
connectivity tracking
grpc_chttp2_stream_map grpc_chttp2_transport::stream_map |
maps stream id to grpc_chttp2_stream objects
grpc_chttp2_window_update_parser grpc_chttp2_transport::window_update |
grpc_closure grpc_chttp2_transport::write_action |
grpc_closure grpc_chttp2_transport::write_action_begin_locked |
grpc_closure grpc_chttp2_transport::write_action_end_locked |
uint32_t grpc_chttp2_transport::write_buffer_size = grpc_core::chttp2::kDefaultWindow |
how much data are we willing to buffer when the WRITE_BUFFER_HINT is set?
grpc_chttp2_write_cb* grpc_chttp2_transport::write_cb_pool = nullptr |
grpc_chttp2_write_state grpc_chttp2_transport::write_state = GRPC_CHTTP2_WRITE_STATE_IDLE |
write execution state of the transport