grpc 1.7.3 → 1.8.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +2106 -2116
- data/include/grpc/census.h +1 -432
- data/include/grpc/compression.h +9 -9
- data/include/grpc/grpc.h +115 -98
- data/include/grpc/grpc_cronet.h +3 -3
- data/include/grpc/grpc_posix.h +4 -4
- data/include/grpc/grpc_security.h +160 -88
- data/include/grpc/grpc_security_constants.h +7 -0
- data/include/grpc/impl/codegen/atm.h +9 -1
- data/include/grpc/impl/codegen/atm_gcc_atomic.h +13 -4
- data/include/grpc/impl/codegen/atm_gcc_sync.h +6 -5
- data/include/grpc/impl/codegen/atm_windows.h +23 -22
- data/include/grpc/impl/codegen/byte_buffer.h +14 -14
- data/include/grpc/impl/codegen/byte_buffer_reader.h +2 -2
- data/include/grpc/impl/codegen/connectivity_state.h +0 -2
- data/include/grpc/impl/codegen/grpc_types.h +32 -28
- data/include/grpc/impl/codegen/port_platform.h +48 -0
- data/include/grpc/impl/codegen/slice.h +10 -10
- data/include/grpc/impl/codegen/sync_generic.h +9 -3
- data/include/grpc/slice.h +16 -17
- data/include/grpc/slice_buffer.h +22 -22
- data/include/grpc/support/alloc.h +11 -11
- data/include/grpc/support/avl.h +28 -20
- data/include/grpc/support/cmdline.h +13 -13
- data/include/grpc/support/histogram.h +17 -17
- data/include/grpc/support/host_port.h +2 -2
- data/include/grpc/support/log.h +9 -9
- data/include/grpc/support/log_windows.h +1 -1
- data/include/grpc/support/string_util.h +2 -2
- data/include/grpc/support/subprocess.h +5 -5
- data/include/grpc/support/sync.h +43 -27
- data/include/grpc/support/thd.h +6 -6
- data/include/grpc/support/tls_gcc.h +1 -1
- data/include/grpc/support/tls_pthread.h +1 -1
- data/src/core/ext/census/{grpc_context.c → grpc_context.cc} +5 -8
- data/src/core/ext/filters/client_channel/backup_poller.cc +165 -0
- data/src/core/ext/{census/grpc_filter.h → filters/client_channel/backup_poller.h} +12 -7
- data/src/core/ext/filters/client_channel/{channel_connectivity.c → channel_connectivity.cc} +45 -42
- data/src/core/ext/filters/client_channel/{client_channel.c → client_channel.cc} +452 -417
- data/src/core/ext/filters/client_channel/client_channel.h +16 -8
- data/src/core/ext/filters/client_channel/{client_channel_factory.c → client_channel_factory.cc} +0 -0
- data/src/core/ext/filters/client_channel/client_channel_factory.h +29 -21
- data/src/core/ext/filters/client_channel/{client_channel_plugin.c → client_channel_plugin.cc} +15 -19
- data/src/core/ext/filters/client_channel/{connector.c → connector.cc} +0 -0
- data/src/core/ext/filters/client_channel/connector.h +29 -21
- data/src/core/ext/filters/client_channel/{http_connect_handshaker.c → http_connect_handshaker.cc} +10 -10
- data/src/core/ext/filters/client_channel/http_connect_handshaker.h +8 -0
- data/src/core/ext/filters/client_channel/{http_proxy.c → http_proxy.cc} +14 -14
- data/src/core/ext/filters/client_channel/http_proxy.h +8 -0
- data/src/core/ext/filters/client_channel/{lb_policy.c → lb_policy.cc} +47 -48
- data/src/core/ext/filters/client_channel/lb_policy.h +76 -70
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/{client_load_reporting_filter.c → client_load_reporting_filter.cc} +28 -29
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +9 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/{grpclb.c → grpclb.cc} +554 -563
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +9 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +17 -9
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/{grpclb_channel_secure.c → grpclb_channel_secure.cc} +17 -17
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/{grpclb_client_stats.c → grpclb_client_stats.cc} +3 -3
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +9 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/{load_balancer_api.c → load_balancer_api.cc} +64 -67
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +20 -21
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +599 -0
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +695 -0
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.cc +270 -0
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +153 -0
- data/src/core/ext/filters/client_channel/{lb_policy_factory.c → lb_policy_factory.cc} +10 -10
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +48 -40
- data/src/core/ext/filters/client_channel/{lb_policy_registry.c → lb_policy_registry.cc} +9 -9
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +11 -3
- data/src/core/ext/filters/client_channel/{parse_address.c → parse_address.cc} +24 -24
- data/src/core/ext/filters/client_channel/parse_address.h +14 -6
- data/src/core/ext/filters/client_channel/{proxy_mapper.c → proxy_mapper.cc} +0 -0
- data/src/core/ext/filters/client_channel/proxy_mapper.h +8 -0
- data/src/core/ext/filters/client_channel/{proxy_mapper_registry.c → proxy_mapper_registry.cc} +0 -0
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +8 -0
- data/src/core/ext/filters/client_channel/{resolver.c → resolver.cc} +21 -23
- data/src/core/ext/filters/client_channel/resolver.h +33 -27
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/{dns_resolver_ares.c → dns_resolver_ares.cc} +133 -133
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +18 -9
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/{grpc_ares_ev_driver_posix.c → grpc_ares_ev_driver_posix.cc} +58 -56
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/{grpc_ares_wrapper.c → grpc_ares_wrapper.cc} +118 -115
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +23 -15
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +60 -0
- data/src/core/ext/filters/client_channel/resolver/dns/native/{dns_resolver.c → dns_resolver.cc} +100 -94
- data/src/core/ext/filters/client_channel/resolver/fake/{fake_resolver.c → fake_resolver.cc} +14 -14
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +9 -1
- data/src/core/ext/filters/client_channel/resolver/sockaddr/{sockaddr_resolver.c → sockaddr_resolver.cc} +60 -60
- data/src/core/ext/filters/client_channel/{resolver_factory.c → resolver_factory.cc} +2 -2
- data/src/core/ext/filters/client_channel/resolver_factory.h +27 -19
- data/src/core/ext/filters/client_channel/{resolver_registry.c → resolver_registry.cc} +35 -35
- data/src/core/ext/filters/client_channel/resolver_registry.h +18 -10
- data/src/core/ext/filters/client_channel/{retry_throttle.c → retry_throttle.cc} +10 -10
- data/src/core/ext/filters/client_channel/retry_throttle.h +8 -0
- data/src/core/ext/filters/client_channel/{subchannel.c → subchannel.cc} +210 -213
- data/src/core/ext/filters/client_channel/subchannel.h +68 -60
- data/src/core/ext/filters/client_channel/{subchannel_index.c → subchannel_index.cc} +52 -52
- data/src/core/ext/filters/client_channel/subchannel_index.h +22 -14
- data/src/core/ext/filters/client_channel/{uri_parser.c → uri_parser.cc} +29 -27
- data/src/core/ext/filters/client_channel/uri_parser.h +18 -10
- data/src/core/ext/filters/deadline/{deadline_filter.c → deadline_filter.cc} +12 -15
- data/src/core/ext/filters/deadline/deadline_filter.h +11 -2
- data/src/core/ext/filters/http/client/{http_client_filter.c → http_client_filter.cc} +83 -83
- data/src/core/ext/filters/http/client/http_client_filter.h +8 -0
- data/src/core/ext/filters/http/{http_filters_plugin.c → http_filters_plugin.cc} +20 -21
- data/src/core/ext/filters/http/message_compress/{message_compress_filter.c → message_compress_filter.cc} +84 -83
- data/src/core/ext/filters/http/message_compress/message_compress_filter.h +9 -1
- data/src/core/ext/filters/http/server/{http_server_filter.c → http_server_filter.cc} +80 -78
- data/src/core/ext/filters/http/server/http_server_filter.h +8 -0
- data/src/core/ext/filters/load_reporting/{server_load_reporting_filter.c → server_load_reporting_filter.cc} +29 -29
- data/src/core/ext/filters/load_reporting/server_load_reporting_filter.h +9 -1
- data/src/core/ext/filters/load_reporting/{server_load_reporting_plugin.c → server_load_reporting_plugin.cc} +11 -11
- data/src/core/ext/filters/load_reporting/server_load_reporting_plugin.h +13 -5
- data/src/core/ext/filters/max_age/{max_age_filter.c → max_age_filter.cc} +46 -56
- data/src/core/ext/filters/max_age/max_age_filter.h +8 -0
- data/src/core/ext/filters/message_size/{message_size_filter.c → message_size_filter.cc} +62 -40
- data/src/core/ext/filters/message_size/message_size_filter.h +8 -0
- data/src/core/ext/filters/workarounds/{workaround_cronet_compression_filter.c → workaround_cronet_compression_filter.cc} +11 -11
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.h +8 -0
- data/src/core/ext/filters/workarounds/{workaround_utils.c → workaround_utils.cc} +7 -7
- data/src/core/ext/filters/workarounds/workaround_utils.h +9 -1
- data/src/core/ext/transport/chttp2/alpn/{alpn.c → alpn.cc} +3 -3
- data/src/core/ext/transport/chttp2/alpn/alpn.h +10 -2
- data/src/core/ext/transport/chttp2/client/{chttp2_connector.c → chttp2_connector.cc} +49 -45
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +8 -0
- data/src/core/ext/transport/chttp2/client/insecure/{channel_create.c → channel_create.cc} +28 -27
- data/src/core/ext/transport/chttp2/client/insecure/{channel_create_posix.c → channel_create_posix.cc} +14 -13
- data/src/core/ext/transport/chttp2/client/secure/{secure_channel_create.c → secure_channel_create.cc} +68 -66
- data/src/core/ext/transport/chttp2/server/{chttp2_server.c → chttp2_server.cc} +76 -77
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +11 -3
- data/src/core/ext/transport/chttp2/server/insecure/{server_chttp2.c → server_chttp2.cc} +3 -3
- data/src/core/ext/transport/chttp2/server/insecure/{server_chttp2_posix.c → server_chttp2_posix.cc} +13 -12
- data/src/core/ext/transport/chttp2/server/secure/{server_secure_chttp2.c → server_secure_chttp2.cc} +12 -10
- data/src/core/ext/transport/chttp2/transport/{bin_decoder.c → bin_decoder.cc} +7 -7
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +15 -7
- data/src/core/ext/transport/chttp2/transport/{bin_encoder.c → bin_encoder.cc} +11 -11
- data/src/core/ext/transport/chttp2/transport/bin_encoder.h +8 -0
- data/src/core/ext/transport/chttp2/transport/{chttp2_plugin.c → chttp2_plugin.cc} +2 -9
- data/src/core/ext/transport/chttp2/transport/{chttp2_transport.c → chttp2_transport.cc} +778 -778
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +14 -10
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +385 -0
- data/src/core/ext/transport/chttp2/transport/flow_control.h +337 -0
- data/src/core/ext/transport/chttp2/transport/frame.h +8 -0
- data/src/core/ext/transport/chttp2/transport/{frame_data.c → frame_data.cc} +34 -34
- data/src/core/ext/transport/chttp2/transport/frame_data.h +25 -17
- data/src/core/ext/transport/chttp2/transport/{frame_goaway.c → frame_goaway.cc} +18 -18
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +18 -10
- data/src/core/ext/transport/chttp2/transport/{frame_ping.c → frame_ping.cc} +18 -19
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +12 -4
- data/src/core/ext/transport/chttp2/transport/{frame_rst_stream.c → frame_rst_stream.cc} +16 -16
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +16 -8
- data/src/core/ext/transport/chttp2/transport/{frame_settings.c → frame_settings.cc} +23 -24
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +17 -9
- data/src/core/ext/transport/chttp2/transport/{frame_window_update.c → frame_window_update.cc} +22 -24
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +14 -6
- data/src/core/ext/transport/chttp2/transport/{hpack_encoder.c → hpack_encoder.cc} +206 -161
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +23 -13
- data/src/core/ext/transport/chttp2/transport/{hpack_parser.c → hpack_parser.cc} +340 -334
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +30 -22
- data/src/core/ext/transport/chttp2/transport/{hpack_table.c → hpack_table.cc} +25 -25
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +19 -11
- data/src/core/ext/transport/chttp2/transport/{http2_settings.c → http2_settings.cc} +1 -1
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +10 -2
- data/src/core/ext/transport/chttp2/transport/{huffsyms.c → huffsyms.cc} +0 -0
- data/src/core/ext/transport/chttp2/transport/huffsyms.h +8 -0
- data/src/core/ext/transport/chttp2/transport/{incoming_metadata.c → incoming_metadata.cc} +14 -13
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +18 -10
- data/src/core/ext/transport/chttp2/transport/internal.h +214 -340
- data/src/core/ext/transport/chttp2/transport/{parsing.c → parsing.cc} +152 -141
- data/src/core/ext/transport/chttp2/transport/{stream_lists.c → stream_lists.cc} +53 -53
- data/src/core/ext/transport/chttp2/transport/{stream_map.c → stream_map.cc} +35 -34
- data/src/core/ext/transport/chttp2/transport/stream_map.h +22 -14
- data/src/core/ext/transport/chttp2/transport/{varint.c → varint.cc} +0 -0
- data/src/core/ext/transport/chttp2/transport/varint.h +8 -0
- data/src/core/ext/transport/chttp2/transport/writing.cc +636 -0
- data/src/core/ext/transport/inproc/{inproc_plugin.c → inproc_plugin.cc} +5 -6
- data/src/core/ext/transport/inproc/{inproc_transport.c → inproc_transport.cc} +479 -544
- data/src/core/ext/transport/inproc/inproc_transport.h +4 -4
- data/src/core/lib/backoff/backoff.cc +80 -0
- data/src/core/lib/backoff/backoff.h +83 -0
- data/src/core/lib/channel/{channel_args.c → channel_args.cc} +92 -92
- data/src/core/lib/channel/channel_args.h +45 -37
- data/src/core/lib/channel/{channel_stack.c → channel_stack.cc} +67 -68
- data/src/core/lib/channel/channel_stack.h +76 -75
- data/src/core/lib/channel/{channel_stack_builder.c → channel_stack_builder.cc} +91 -91
- data/src/core/lib/channel/channel_stack_builder.h +45 -45
- data/src/core/lib/channel/{connected_channel.c → connected_channel.cc} +70 -70
- data/src/core/lib/channel/connected_channel.h +12 -4
- data/src/core/lib/channel/context.h +2 -2
- data/src/core/lib/channel/{handshaker.c → handshaker.cc} +7 -9
- data/src/core/lib/channel/handshaker.h +9 -1
- data/src/core/lib/channel/{handshaker_factory.c → handshaker_factory.cc} +7 -7
- data/src/core/lib/channel/handshaker_factory.h +18 -10
- data/src/core/lib/channel/{handshaker_registry.c → handshaker_registry.cc} +0 -0
- data/src/core/lib/channel/handshaker_registry.h +8 -0
- data/src/core/lib/compression/algorithm_metadata.h +8 -0
- data/src/core/lib/compression/{compression.c → compression.cc} +9 -9
- data/src/core/lib/compression/{message_compress.c → message_compress.cc} +0 -0
- data/src/core/lib/compression/message_compress.h +8 -0
- data/src/core/lib/compression/{stream_compression.c → stream_compression.cc} +12 -12
- data/src/core/lib/compression/stream_compression.h +27 -19
- data/src/core/lib/compression/{stream_compression_gzip.c → stream_compression_gzip.cc} +35 -36
- data/src/core/lib/compression/stream_compression_gzip.h +8 -0
- data/src/core/lib/compression/{stream_compression_identity.c → stream_compression_identity.cc} +19 -20
- data/src/core/lib/compression/stream_compression_identity.h +8 -0
- data/src/core/lib/debug/{stats.c → stats.cc} +19 -19
- data/src/core/lib/debug/stats.h +17 -9
- data/src/core/lib/debug/{stats_data.c → stats_data.cc} +45 -22
- data/src/core/lib/debug/stats_data.h +58 -19
- data/src/core/lib/debug/trace.cc +142 -0
- data/src/core/lib/debug/trace.h +74 -14
- data/src/core/lib/http/{format_request.c → format_request.cc} +10 -10
- data/src/core/lib/http/format_request.h +12 -4
- data/src/core/lib/http/{httpcli.c → httpcli.cc} +80 -80
- data/src/core/lib/http/httpcli.h +41 -33
- data/src/core/lib/http/{httpcli_security_connector.c → httpcli_security_connector.cc} +69 -55
- data/src/core/lib/http/{parser.c → parser.cc} +42 -42
- data/src/core/lib/http/parser.h +28 -20
- data/src/core/lib/{support → iomgr}/block_annotate.h +17 -8
- data/src/core/lib/iomgr/{call_combiner.c → call_combiner.cc} +29 -17
- data/src/core/lib/iomgr/call_combiner.h +9 -1
- data/src/core/lib/iomgr/closure.h +220 -62
- data/src/core/lib/iomgr/{combiner.c → combiner.cc} +63 -62
- data/src/core/lib/iomgr/combiner.h +16 -8
- data/src/core/lib/iomgr/{endpoint.c → endpoint.cc} +6 -0
- data/src/core/lib/iomgr/endpoint.h +47 -32
- data/src/core/lib/iomgr/endpoint_pair.h +12 -4
- data/src/core/lib/iomgr/{endpoint_pair_posix.c → endpoint_pair_posix.cc} +3 -3
- data/src/core/lib/iomgr/{endpoint_pair_uv.c → endpoint_pair_uv.cc} +2 -2
- data/src/core/lib/iomgr/{endpoint_pair_windows.c → endpoint_pair_windows.cc} +6 -6
- data/src/core/lib/iomgr/{error.c → error.cc} +125 -124
- data/src/core/lib/iomgr/error.h +32 -27
- data/src/core/lib/iomgr/error_internal.h +11 -2
- data/src/core/lib/iomgr/{ev_epoll1_linux.c → ev_epoll1_linux.cc} +214 -215
- data/src/core/lib/iomgr/ev_epoll1_linux.h +9 -1
- data/src/core/lib/iomgr/ev_epollex_linux.cc +1488 -0
- data/src/core/lib/iomgr/ev_epollex_linux.h +9 -1
- data/src/core/lib/iomgr/{ev_epollsig_linux.c → ev_epollsig_linux.cc} +304 -305
- data/src/core/lib/iomgr/ev_epollsig_linux.h +12 -4
- data/src/core/lib/iomgr/{ev_poll_posix.c → ev_poll_posix.cc} +272 -283
- data/src/core/lib/iomgr/ev_poll_posix.h +10 -2
- data/src/core/lib/iomgr/ev_posix.cc +288 -0
- data/src/core/lib/iomgr/ev_posix.h +75 -67
- data/src/core/lib/iomgr/{ev_windows.c → ev_windows.cc} +2 -2
- data/src/core/lib/iomgr/exec_ctx.cc +177 -0
- data/src/core/lib/iomgr/exec_ctx.h +35 -13
- data/src/core/lib/iomgr/{executor.c → executor.cc} +34 -35
- data/src/core/lib/iomgr/executor.h +12 -4
- data/src/core/lib/iomgr/{fork_posix.c → fork_posix.cc} +0 -0
- data/src/core/lib/iomgr/{fork_windows.c → fork_windows.cc} +0 -0
- data/src/core/lib/iomgr/gethostname.h +9 -1
- data/src/core/lib/iomgr/{gethostname_fallback.c → gethostname_fallback.cc} +2 -1
- data/src/core/lib/iomgr/{gethostname_host_name_max.c → gethostname_host_name_max.cc} +4 -3
- data/src/core/lib/iomgr/{gethostname_sysconf.c → gethostname_sysconf.cc} +3 -2
- data/src/core/lib/iomgr/{iocp_windows.c → iocp_windows.cc} +23 -25
- data/src/core/lib/iomgr/iocp_windows.h +17 -3
- data/src/core/lib/iomgr/{iomgr.c → iomgr.cc} +25 -19
- data/src/core/lib/iomgr/iomgr.h +11 -3
- data/src/core/lib/iomgr/iomgr_internal.h +13 -5
- data/src/core/lib/iomgr/{iomgr_posix.c → iomgr_posix.cc} +0 -1
- data/src/core/lib/iomgr/{iomgr_uv.c → iomgr_uv.cc} +1 -1
- data/src/core/lib/iomgr/iomgr_uv.h +8 -0
- data/src/core/lib/iomgr/{iomgr_windows.c → iomgr_windows.cc} +0 -0
- data/src/core/lib/iomgr/{is_epollexclusive_available.c → is_epollexclusive_available.cc} +1 -1
- data/src/core/lib/iomgr/is_epollexclusive_available.h +8 -0
- data/src/core/lib/iomgr/{load_file.c → load_file.cc} +12 -12
- data/src/core/lib/iomgr/load_file.h +2 -2
- data/src/core/lib/iomgr/{lockfree_event.c → lockfree_event.cc} +76 -68
- data/src/core/lib/iomgr/lockfree_event.h +30 -11
- data/src/core/lib/iomgr/{network_status_tracker.c → network_status_tracker.cc} +3 -2
- data/src/core/lib/iomgr/network_status_tracker.h +2 -2
- data/src/core/lib/iomgr/{polling_entity.c → polling_entity.cc} +18 -18
- data/src/core/lib/iomgr/polling_entity.h +21 -13
- data/src/core/lib/iomgr/pollset.h +17 -11
- data/src/core/lib/iomgr/pollset_set.h +23 -15
- data/src/core/lib/iomgr/{pollset_set_uv.c → pollset_set_uv.cc} +0 -0
- data/src/core/lib/iomgr/{pollset_set_windows.c → pollset_set_windows.cc} +0 -0
- data/src/core/lib/iomgr/{pollset_uv.c → pollset_uv.cc} +31 -29
- data/src/core/lib/iomgr/pollset_uv.h +8 -0
- data/src/core/lib/iomgr/{pollset_windows.c → pollset_windows.cc} +24 -24
- data/src/core/lib/iomgr/pollset_windows.h +17 -4
- data/src/core/lib/iomgr/port.h +10 -0
- data/src/core/lib/iomgr/resolve_address.h +18 -10
- data/src/core/lib/iomgr/{resolve_address_posix.c → resolve_address_posix.cc} +40 -40
- data/src/core/lib/iomgr/{resolve_address_uv.c → resolve_address_uv.cc} +61 -56
- data/src/core/lib/iomgr/{resolve_address_windows.c → resolve_address_windows.cc} +36 -34
- data/src/core/lib/iomgr/{resource_quota.c → resource_quota.cc} +209 -180
- data/src/core/lib/iomgr/resource_quota.h +45 -37
- data/src/core/lib/iomgr/{sockaddr_utils.c → sockaddr_utils.cc} +61 -61
- data/src/core/lib/iomgr/sockaddr_utils.h +23 -15
- data/src/core/lib/iomgr/sockaddr_windows.h +6 -0
- data/src/core/lib/iomgr/{socket_factory_posix.c → socket_factory_posix.cc} +20 -20
- data/src/core/lib/iomgr/socket_factory_posix.h +15 -15
- data/src/core/lib/iomgr/{socket_mutator.c → socket_mutator.cc} +18 -18
- data/src/core/lib/iomgr/socket_mutator.h +11 -11
- data/src/core/lib/iomgr/socket_utils.h +9 -1
- data/src/core/lib/iomgr/{socket_utils_common_posix.c → socket_utils_common_posix.cc} +28 -28
- data/src/core/lib/iomgr/{socket_utils_linux.c → socket_utils_linux.cc} +3 -3
- data/src/core/lib/iomgr/{socket_utils_posix.c → socket_utils_posix.cc} +3 -3
- data/src/core/lib/iomgr/socket_utils_posix.h +26 -18
- data/src/core/lib/iomgr/{socket_utils_uv.c → socket_utils_uv.cc} +1 -1
- data/src/core/lib/iomgr/{socket_utils_windows.c → socket_utils_windows.cc} +2 -2
- data/src/core/lib/iomgr/{socket_windows.c → socket_windows.cc} +18 -18
- data/src/core/lib/iomgr/socket_windows.h +26 -13
- data/src/core/lib/iomgr/tcp_client.h +14 -6
- data/src/core/lib/iomgr/{tcp_client_posix.c → tcp_client_posix.cc} +69 -70
- data/src/core/lib/iomgr/tcp_client_posix.h +11 -3
- data/src/core/lib/iomgr/{tcp_client_uv.c → tcp_client_uv.cc} +47 -48
- data/src/core/lib/iomgr/{tcp_client_windows.c → tcp_client_windows.cc} +46 -44
- data/src/core/lib/iomgr/{tcp_posix.c → tcp_posix.cc} +198 -175
- data/src/core/lib/iomgr/tcp_posix.h +15 -7
- data/src/core/lib/iomgr/tcp_server.h +31 -23
- data/src/core/lib/iomgr/{tcp_server_posix.c → tcp_server_posix.cc} +78 -77
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +27 -19
- data/src/core/lib/iomgr/{tcp_server_utils_posix_common.c → tcp_server_utils_posix_common.cc} +27 -27
- data/src/core/lib/iomgr/{tcp_server_utils_posix_ifaddrs.c → tcp_server_utils_posix_ifaddrs.cc} +25 -25
- data/src/core/lib/iomgr/{tcp_server_utils_posix_noifaddrs.c → tcp_server_utils_posix_noifaddrs.cc} +2 -2
- data/src/core/lib/iomgr/{tcp_server_uv.c → tcp_server_uv.cc} +133 -105
- data/src/core/lib/iomgr/{tcp_server_windows.c → tcp_server_windows.cc} +81 -77
- data/src/core/lib/iomgr/tcp_uv.cc +420 -0
- data/src/core/lib/iomgr/tcp_uv.h +18 -4
- data/src/core/lib/iomgr/{tcp_windows.c → tcp_windows.cc} +90 -79
- data/src/core/lib/iomgr/tcp_windows.h +17 -4
- data/src/core/lib/iomgr/{time_averaged_stats.c → time_averaged_stats.cc} +0 -0
- data/src/core/lib/iomgr/time_averaged_stats.h +8 -0
- data/src/core/lib/iomgr/timer.h +16 -9
- data/src/core/lib/iomgr/{timer_generic.c → timer_generic.cc} +130 -171
- data/src/core/lib/iomgr/timer_generic.h +4 -4
- data/src/core/lib/iomgr/{timer_heap.c → timer_heap.cc} +20 -21
- data/src/core/lib/iomgr/timer_heap.h +16 -8
- data/src/core/lib/iomgr/{timer_manager.c → timer_manager.cc} +54 -52
- data/src/core/lib/iomgr/timer_manager.h +8 -0
- data/src/core/lib/iomgr/{timer_uv.c → timer_uv.cc} +22 -24
- data/src/core/lib/iomgr/timer_uv.h +2 -2
- data/src/core/lib/iomgr/{udp_server.c → udp_server.cc} +75 -75
- data/src/core/lib/iomgr/udp_server.h +25 -17
- data/src/core/lib/iomgr/{unix_sockets_posix.c → unix_sockets_posix.cc} +22 -21
- data/src/core/lib/iomgr/unix_sockets_posix.h +14 -6
- data/src/core/lib/iomgr/{unix_sockets_posix_noop.c → unix_sockets_posix_noop.cc} +5 -5
- data/src/core/lib/iomgr/{wakeup_fd_cv.c → wakeup_fd_cv.cc} +2 -2
- data/src/core/lib/iomgr/wakeup_fd_cv.h +10 -0
- data/src/core/lib/iomgr/{wakeup_fd_eventfd.c → wakeup_fd_eventfd.cc} +0 -0
- data/src/core/lib/iomgr/{wakeup_fd_nospecial.c → wakeup_fd_nospecial.cc} +0 -0
- data/src/core/lib/iomgr/{wakeup_fd_pipe.c → wakeup_fd_pipe.cc} +1 -0
- data/src/core/lib/iomgr/wakeup_fd_pipe.h +9 -1
- data/src/core/lib/iomgr/{wakeup_fd_posix.c → wakeup_fd_posix.cc} +6 -7
- data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -0
- data/src/core/lib/json/{json.c → json.cc} +0 -0
- data/src/core/lib/json/json.h +8 -0
- data/src/core/lib/json/{json_reader.c → json_reader.cc} +18 -18
- data/src/core/lib/json/json_reader.h +26 -18
- data/src/core/lib/json/{json_string.c → json_string.cc} +57 -57
- data/src/core/lib/json/{json_writer.c → json_writer.cc} +20 -20
- data/src/core/lib/json/json_writer.h +23 -15
- data/src/core/lib/profiling/{basic_timers.c → basic_timers.cc} +34 -34
- data/src/core/lib/profiling/{stap_timers.c → stap_timers.cc} +5 -5
- data/src/core/lib/profiling/timers.h +6 -6
- data/src/core/lib/security/context/{security_context.c → security_context.cc} +98 -95
- data/src/core/lib/security/context/security_context.h +27 -29
- data/src/core/lib/security/credentials/composite/{composite_credentials.c → composite_credentials.cc} +79 -73
- data/src/core/lib/security/credentials/composite/composite_credentials.h +17 -9
- data/src/core/lib/security/credentials/{credentials.c → credentials.cc} +97 -92
- data/src/core/lib/security/credentials/credentials.h +83 -75
- data/src/core/lib/security/credentials/{credentials_metadata.c → credentials_metadata.cc} +7 -6
- data/src/core/lib/security/credentials/fake/{fake_credentials.c → fake_credentials.cc} +39 -36
- data/src/core/lib/security/credentials/fake/fake_credentials.h +13 -5
- data/src/core/lib/security/credentials/google_default/{credentials_generic.c → credentials_generic.cc} +5 -5
- data/src/core/lib/security/credentials/google_default/{google_default_credentials.c → google_default_credentials.cc} +55 -55
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +9 -1
- data/src/core/lib/security/credentials/iam/{iam_credentials.c → iam_credentials.cc} +19 -18
- data/src/core/lib/security/credentials/jwt/{json_token.c → json_token.cc} +80 -75
- data/src/core/lib/security/credentials/jwt/json_token.h +23 -15
- data/src/core/lib/security/credentials/jwt/{jwt_credentials.c → jwt_credentials.cc} +45 -41
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +11 -3
- data/src/core/lib/security/credentials/jwt/{jwt_verifier.c → jwt_verifier.cc} +262 -252
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +38 -30
- data/src/core/lib/security/credentials/oauth2/{oauth2_credentials.c → oauth2_credentials.cc} +138 -141
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +30 -22
- data/src/core/lib/security/credentials/plugin/{plugin_credentials.c → plugin_credentials.cc} +52 -53
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +7 -7
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +344 -0
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +27 -0
- data/src/core/lib/security/transport/auth_filters.h +16 -0
- data/src/core/lib/security/transport/{client_auth_filter.c → client_auth_filter.cc} +127 -115
- data/src/core/lib/security/transport/{lb_targets_info.c → lb_targets_info.cc} +16 -13
- data/src/core/lib/security/transport/lb_targets_info.h +11 -3
- data/src/core/lib/security/transport/{secure_endpoint.c → secure_endpoint.cc} +84 -76
- data/src/core/lib/security/transport/secure_endpoint.h +13 -5
- data/src/core/lib/security/transport/security_connector.cc +1121 -0
- data/src/core/lib/security/transport/security_connector.h +97 -79
- data/src/core/lib/security/transport/{security_handshaker.c → security_handshaker.cc} +139 -132
- data/src/core/lib/security/transport/security_handshaker.h +11 -3
- data/src/core/lib/security/transport/{server_auth_filter.c → server_auth_filter.cc} +68 -68
- data/src/core/lib/security/transport/{tsi_error.c → tsi_error.cc} +1 -1
- data/src/core/lib/security/transport/tsi_error.h +9 -1
- data/src/core/lib/security/util/{json_util.c → json_util.cc} +11 -11
- data/src/core/lib/security/util/json_util.h +12 -4
- data/src/core/lib/slice/{b64.c → b64.cc} +15 -15
- data/src/core/lib/slice/b64.h +12 -4
- data/src/core/lib/slice/{percent_encoding.c → percent_encoding.cc} +15 -15
- data/src/core/lib/slice/percent_encoding.h +11 -3
- data/src/core/lib/slice/{slice.c → slice.cc} +64 -64
- data/src/core/lib/slice/{slice_buffer.c → slice_buffer.cc} +38 -38
- data/src/core/lib/slice/{slice_hash_table.c → slice_hash_table.cc} +7 -7
- data/src/core/lib/slice/slice_hash_table.h +19 -11
- data/src/core/lib/slice/{slice_intern.c → slice_intern.cc} +35 -34
- data/src/core/lib/slice/slice_internal.h +17 -6
- data/src/core/lib/slice/{slice_string_helpers.c → slice_string_helpers.cc} +9 -9
- data/src/core/lib/slice/slice_string_helpers.h +3 -3
- data/src/core/lib/support/abstract.h +29 -0
- data/src/core/lib/support/{alloc.c → alloc.cc} +22 -22
- data/src/core/lib/support/{arena.c → arena.cc} +12 -12
- data/src/core/lib/support/arena.h +11 -3
- data/src/core/lib/support/{atm.c → atm.cc} +1 -1
- data/src/core/lib/support/{avl.c → avl.cc} +71 -70
- data/src/core/lib/support/{cmdline.c → cmdline.cc} +62 -62
- data/src/core/lib/support/{cpu_iphone.c → cpu_iphone.cc} +2 -0
- data/src/core/lib/support/{cpu_linux.c → cpu_linux.cc} +10 -0
- data/src/core/lib/support/{cpu_posix.c → cpu_posix.cc} +27 -4
- data/src/core/lib/support/{cpu_windows.c → cpu_windows.cc} +1 -0
- data/src/core/lib/support/env.h +3 -3
- data/src/core/lib/support/{env_linux.c → env_linux.cc} +11 -11
- data/src/core/lib/support/{env_posix.c → env_posix.cc} +4 -4
- data/src/core/lib/support/{env_windows.c → env_windows.cc} +5 -5
- data/src/core/lib/support/{fork.c → fork.cc} +2 -2
- data/src/core/lib/support/{histogram.c → histogram.cc} +25 -26
- data/src/core/lib/support/{host_port.c → host_port.cc} +16 -16
- data/src/core/lib/support/{log.c → log.cc} +8 -8
- data/src/core/lib/support/{log_android.c → log_android.cc} +7 -7
- data/src/core/lib/support/{log_linux.c → log_linux.cc} +8 -8
- data/src/core/lib/support/{log_posix.c → log_posix.cc} +9 -10
- data/src/core/lib/support/{log_windows.c → log_windows.cc} +7 -7
- data/src/core/lib/support/manual_constructor.h +211 -0
- data/src/core/lib/support/memory.h +41 -0
- data/src/core/lib/support/mpscq.cc +114 -0
- data/src/core/lib/support/mpscq.h +45 -7
- data/src/core/lib/support/{murmur_hash.c → murmur_hash.cc} +9 -12
- data/src/core/lib/support/murmur_hash.h +9 -1
- data/src/core/lib/support/spinlock.h +8 -1
- data/src/core/lib/support/{string.c → string.cc} +56 -55
- data/src/core/lib/support/string.h +21 -21
- data/src/core/lib/support/{string_posix.c → string_posix.cc} +5 -4
- data/src/core/lib/support/{string_util_windows.c → string_util_windows.cc} +9 -6
- data/src/core/lib/support/{string_windows.c → string_windows.cc} +3 -2
- data/src/core/lib/support/string_windows.h +8 -0
- data/src/core/lib/support/{subprocess_posix.c → subprocess_posix.cc} +13 -13
- data/src/core/lib/support/{subprocess_windows.c → subprocess_windows.cc} +9 -9
- data/src/core/lib/support/{sync.c → sync.cc} +22 -22
- data/src/core/lib/support/{sync_posix.c → sync_posix.cc} +6 -2
- data/src/core/lib/support/{sync_windows.c → sync_windows.cc} +14 -14
- data/src/core/lib/support/{thd.c → thd.cc} +0 -0
- data/src/core/lib/support/{thd_posix.c → thd_posix.cc} +10 -10
- data/src/core/lib/support/{thd_windows.c → thd_windows.cc} +10 -10
- data/src/core/lib/support/{time.c → time.cc} +0 -0
- data/src/core/lib/support/{time_posix.c → time_posix.cc} +5 -6
- data/src/core/lib/support/{time_precise.c → time_precise.cc} +6 -4
- data/src/core/lib/support/time_precise.h +9 -1
- data/src/core/lib/support/{time_windows.c → time_windows.cc} +2 -3
- data/src/core/lib/support/{tls_pthread.c → tls_pthread.cc} +2 -2
- data/src/core/lib/support/tmpfile.h +1 -1
- data/src/core/lib/support/{tmpfile_msys.c → tmpfile_msys.cc} +2 -2
- data/src/core/lib/support/{tmpfile_posix.c → tmpfile_posix.cc} +7 -7
- data/src/core/lib/support/{tmpfile_windows.c → tmpfile_windows.cc} +2 -2
- data/src/core/lib/support/{wrap_memcpy.c → wrap_memcpy.cc} +4 -2
- data/src/core/lib/surface/{alarm.c → alarm.cc} +32 -31
- data/src/core/lib/surface/alarm_internal.h +10 -2
- data/src/core/lib/surface/{api_trace.c → api_trace.cc} +1 -1
- data/src/core/lib/surface/api_trace.h +2 -2
- data/src/core/lib/surface/{byte_buffer.c → byte_buffer.cc} +13 -13
- data/src/core/lib/surface/{byte_buffer_reader.c → byte_buffer_reader.cc} +9 -9
- data/src/core/lib/surface/{call.c → call.cc} +379 -372
- data/src/core/lib/surface/call.h +37 -38
- data/src/core/lib/surface/{call_details.c → call_details.cc} +0 -0
- data/src/core/lib/surface/{call_log_batch.c → call_log_batch.cc} +13 -11
- data/src/core/lib/surface/call_test_only.h +5 -5
- data/src/core/lib/surface/{channel.c → channel.cc} +94 -95
- data/src/core/lib/surface/channel.h +29 -21
- data/src/core/lib/surface/{channel_init.c → channel_init.cc} +13 -13
- data/src/core/lib/surface/channel_init.h +6 -6
- data/src/core/lib/surface/{channel_ping.c → channel_ping.cc} +12 -12
- data/src/core/lib/surface/{channel_stack_type.c → channel_stack_type.cc} +1 -1
- data/src/core/lib/surface/channel_stack_type.h +9 -1
- data/src/core/lib/surface/{completion_queue.c → completion_queue.cc} +416 -379
- data/src/core/lib/surface/completion_queue.h +29 -29
- data/src/core/lib/surface/{completion_queue_factory.c → completion_queue_factory.cc} +1 -1
- data/src/core/lib/surface/completion_queue_factory.h +8 -0
- data/src/core/lib/surface/{event_string.c → event_string.cc} +9 -9
- data/src/core/lib/surface/event_string.h +9 -1
- data/src/core/lib/surface/{init.c → init.cc} +16 -39
- data/src/core/lib/surface/init.h +8 -0
- data/src/core/lib/surface/{init_secure.c → init_secure.cc} +12 -25
- data/src/core/lib/surface/lame_client.cc +38 -40
- data/src/core/lib/surface/lame_client.h +8 -0
- data/src/core/lib/surface/{metadata_array.c → metadata_array.cc} +0 -0
- data/src/core/lib/surface/{server.c → server.cc} +340 -404
- data/src/core/lib/surface/server.h +22 -14
- data/src/core/lib/surface/{validate_metadata.c → validate_metadata.cc} +10 -9
- data/src/core/lib/surface/validate_metadata.h +10 -2
- data/src/core/lib/surface/{version.c → version.cc} +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +84 -0
- data/src/core/lib/transport/bdp_estimator.h +67 -42
- data/src/core/lib/transport/{byte_stream.c → byte_stream.cc} +51 -51
- data/src/core/lib/transport/byte_stream.h +41 -33
- data/src/core/lib/transport/{connectivity_state.c → connectivity_state.cc} +36 -40
- data/src/core/lib/transport/connectivity_state.h +29 -21
- data/src/core/lib/transport/{error_utils.c → error_utils.cc} +26 -22
- data/src/core/lib/transport/error_utils.h +18 -6
- data/src/core/lib/transport/{metadata.c → metadata.cc} +92 -88
- data/src/core/lib/transport/metadata.h +22 -20
- data/src/core/lib/transport/{metadata_batch.c → metadata_batch.cc} +78 -79
- data/src/core/lib/transport/metadata_batch.h +46 -45
- data/src/core/lib/transport/pid_controller.cc +48 -0
- data/src/core/lib/transport/pid_controller.h +84 -32
- data/src/core/lib/transport/{service_config.c → service_config.cc} +66 -48
- data/src/core/lib/transport/service_config.h +11 -2
- data/src/core/lib/transport/{static_metadata.c → static_metadata.cc} +2 -2
- data/src/core/lib/transport/static_metadata.h +30 -23
- data/src/core/lib/transport/{status_conversion.c → status_conversion.cc} +4 -3
- data/src/core/lib/transport/status_conversion.h +12 -2
- data/src/core/lib/transport/{timeout_encoding.c → timeout_encoding.cc} +28 -61
- data/src/core/lib/transport/timeout_encoding.h +11 -2
- data/src/core/lib/transport/{transport.c → transport.cc} +79 -79
- data/src/core/lib/transport/transport.h +78 -80
- data/src/core/lib/transport/transport_impl.h +27 -19
- data/src/core/lib/transport/{transport_op_string.c → transport_op_string.cc} +32 -30
- data/src/core/plugin_registry/{grpc_plugin_registry.c → grpc_plugin_registry.cc} +34 -38
- data/src/core/tsi/{fake_transport_security.c → fake_transport_security.cc} +141 -132
- data/src/core/tsi/fake_transport_security.h +5 -5
- data/src/core/tsi/{gts_transport_security.c → gts_transport_security.cc} +4 -4
- data/src/core/tsi/gts_transport_security.h +11 -3
- data/src/core/tsi/{ssl_transport_security.c → ssl_transport_security.cc} +309 -300
- data/src/core/tsi/ssl_transport_security.h +25 -25
- data/src/core/tsi/ssl_types.h +8 -0
- data/src/core/tsi/{transport_security.c → transport_security.cc} +94 -87
- data/src/core/tsi/transport_security.h +55 -55
- data/src/core/tsi/{transport_security_adapter.c → transport_security_adapter.cc} +58 -55
- data/src/core/tsi/transport_security_adapter.h +2 -2
- data/src/core/tsi/{transport_security_grpc.c → transport_security_grpc.cc} +21 -21
- data/src/core/tsi/transport_security_grpc.h +19 -19
- data/src/core/tsi/transport_security_interface.h +41 -41
- data/src/ruby/ext/grpc/extconf.rb +4 -2
- data/src/ruby/ext/grpc/rb_byte_buffer.c +5 -5
- data/src/ruby/ext/grpc/rb_byte_buffer.h +2 -2
- data/src/ruby/ext/grpc/rb_call.c +41 -42
- data/src/ruby/ext/grpc/rb_call.h +6 -6
- data/src/ruby/ext/grpc/rb_call_credentials.c +30 -30
- data/src/ruby/ext/grpc/rb_channel.c +87 -87
- data/src/ruby/ext/grpc/rb_channel_credentials.c +23 -23
- data/src/ruby/ext/grpc/rb_completion_queue.c +11 -11
- data/src/ruby/ext/grpc/rb_completion_queue.h +3 -3
- data/src/ruby/ext/grpc/rb_compression_options.c +20 -20
- data/src/ruby/ext/grpc/rb_event_thread.c +14 -14
- data/src/ruby/ext/grpc/rb_event_thread.h +1 -1
- data/src/ruby/ext/grpc/rb_grpc.c +8 -8
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +16 -58
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +242 -306
- data/src/ruby/ext/grpc/rb_server.c +23 -23
- data/src/ruby/ext/grpc/rb_server_credentials.c +13 -13
- data/src/ruby/lib/grpc/generic/rpc_server.rb +25 -12
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/grpc/health/checker.rb +14 -0
- data/src/ruby/spec/pb/health/checker_spec.rb +29 -0
- data/third_party/cares/config_freebsd/ares_config.h +502 -0
- data/third_party/cares/config_openbsd/ares_config.h +502 -0
- metadata +302 -328
- data/src/core/ext/census/aggregation.h +0 -51
- data/src/core/ext/census/base_resources.c +0 -56
- data/src/core/ext/census/base_resources.h +0 -24
- data/src/core/ext/census/census_interface.h +0 -61
- data/src/core/ext/census/census_rpc_stats.h +0 -86
- data/src/core/ext/census/context.c +0 -496
- data/src/core/ext/census/gen/census.pb.c +0 -161
- data/src/core/ext/census/gen/census.pb.h +0 -280
- data/src/core/ext/census/gen/trace_context.pb.c +0 -39
- data/src/core/ext/census/gen/trace_context.pb.h +0 -78
- data/src/core/ext/census/grpc_filter.c +0 -196
- data/src/core/ext/census/grpc_plugin.c +0 -70
- data/src/core/ext/census/initialize.c +0 -51
- data/src/core/ext/census/intrusive_hash_map.c +0 -305
- data/src/core/ext/census/intrusive_hash_map.h +0 -152
- data/src/core/ext/census/intrusive_hash_map_internal.h +0 -48
- data/src/core/ext/census/mlog.c +0 -586
- data/src/core/ext/census/mlog.h +0 -80
- data/src/core/ext/census/operation.c +0 -48
- data/src/core/ext/census/placeholders.c +0 -49
- data/src/core/ext/census/resource.c +0 -303
- data/src/core/ext/census/resource.h +0 -48
- data/src/core/ext/census/rpc_metric_id.h +0 -36
- data/src/core/ext/census/trace_context.c +0 -71
- data/src/core/ext/census/trace_context.h +0 -56
- data/src/core/ext/census/trace_label.h +0 -46
- data/src/core/ext/census/trace_propagation.h +0 -48
- data/src/core/ext/census/trace_status.h +0 -30
- data/src/core/ext/census/trace_string.h +0 -35
- data/src/core/ext/census/tracing.c +0 -55
- data/src/core/ext/census/tracing.h +0 -109
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.c +0 -714
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.c +0 -924
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c +0 -60
- data/src/core/ext/transport/chttp2/transport/flow_control.c +0 -502
- data/src/core/ext/transport/chttp2/transport/writing.c +0 -534
- data/src/core/lib/debug/trace.c +0 -146
- data/src/core/lib/iomgr/closure.c +0 -219
- data/src/core/lib/iomgr/ev_epollex_linux.c +0 -1461
- data/src/core/lib/iomgr/ev_posix.c +0 -266
- data/src/core/lib/iomgr/exec_ctx.c +0 -113
- data/src/core/lib/iomgr/tcp_uv.c +0 -381
- data/src/core/lib/security/credentials/ssl/ssl_credentials.c +0 -194
- data/src/core/lib/security/transport/security_connector.c +0 -914
- data/src/core/lib/support/backoff.c +0 -72
- data/src/core/lib/support/backoff.h +0 -56
- data/src/core/lib/support/mpscq.c +0 -79
- data/src/core/lib/support/stack_lockfree.c +0 -137
- data/src/core/lib/support/stack_lockfree.h +0 -38
- data/src/core/lib/transport/bdp_estimator.c +0 -110
- data/src/core/lib/transport/pid_controller.c +0 -63
@@ -22,6 +22,7 @@
|
|
22
22
|
#include <assert.h>
|
23
23
|
#include <stdbool.h>
|
24
24
|
|
25
|
+
#include "src/core/ext/transport/chttp2/transport/flow_control.h"
|
25
26
|
#include "src/core/ext/transport/chttp2/transport/frame.h"
|
26
27
|
#include "src/core/ext/transport/chttp2/transport/frame_data.h"
|
27
28
|
#include "src/core/ext/transport/chttp2/transport/frame_goaway.h"
|
@@ -37,11 +38,14 @@
|
|
37
38
|
#include "src/core/lib/iomgr/combiner.h"
|
38
39
|
#include "src/core/lib/iomgr/endpoint.h"
|
39
40
|
#include "src/core/lib/iomgr/timer.h"
|
40
|
-
#include "src/core/lib/
|
41
|
+
#include "src/core/lib/support/manual_constructor.h"
|
41
42
|
#include "src/core/lib/transport/connectivity_state.h"
|
42
|
-
#include "src/core/lib/transport/pid_controller.h"
|
43
43
|
#include "src/core/lib/transport/transport_impl.h"
|
44
44
|
|
45
|
+
#ifdef __cplusplus
|
46
|
+
extern "C" {
|
47
|
+
#endif
|
48
|
+
|
45
49
|
/* streams are kept in various linked lists depending on what things need to
|
46
50
|
happen to them... this enum labels each list */
|
47
51
|
typedef enum {
|
@@ -61,12 +65,6 @@ typedef enum {
|
|
61
65
|
GRPC_CHTTP2_WRITE_STATE_WRITING_WITH_MORE,
|
62
66
|
} grpc_chttp2_write_state;
|
63
67
|
|
64
|
-
typedef enum {
|
65
|
-
GRPC_CHTTP2_PING_ON_NEXT_WRITE = 0,
|
66
|
-
GRPC_CHTTP2_PING_BEFORE_TRANSPORT_WINDOW_UPDATE,
|
67
|
-
GRPC_CHTTP2_PING_TYPE_COUNT /* must be last */
|
68
|
-
} grpc_chttp2_ping_type;
|
69
|
-
|
70
68
|
typedef enum {
|
71
69
|
GRPC_CHTTP2_OPTIMIZE_FOR_LATENCY,
|
72
70
|
GRPC_CHTTP2_OPTIMIZE_FOR_THROUGHPUT,
|
@@ -93,7 +91,6 @@ typedef enum {
|
|
93
91
|
GRPC_CHTTP2_INITIATE_WRITE_STREAM_FLOW_CONTROL,
|
94
92
|
GRPC_CHTTP2_INITIATE_WRITE_TRANSPORT_FLOW_CONTROL,
|
95
93
|
GRPC_CHTTP2_INITIATE_WRITE_SEND_SETTINGS,
|
96
|
-
GRPC_CHTTP2_INITIATE_WRITE_BDP_ESTIMATOR_PING,
|
97
94
|
GRPC_CHTTP2_INITIATE_WRITE_FLOW_CONTROL_UNSTALLED_BY_SETTING,
|
98
95
|
GRPC_CHTTP2_INITIATE_WRITE_FLOW_CONTROL_UNSTALLED_BY_UPDATE,
|
99
96
|
GRPC_CHTTP2_INITIATE_WRITE_APPLICATION_PING,
|
@@ -103,7 +100,7 @@ typedef enum {
|
|
103
100
|
GRPC_CHTTP2_INITIATE_WRITE_FORCE_RST_STREAM,
|
104
101
|
} grpc_chttp2_initiate_write_reason;
|
105
102
|
|
106
|
-
const char
|
103
|
+
const char* grpc_chttp2_initiate_write_reason_string(
|
107
104
|
grpc_chttp2_initiate_write_reason reason);
|
108
105
|
|
109
106
|
typedef struct {
|
@@ -114,19 +111,19 @@ typedef struct {
|
|
114
111
|
typedef struct {
|
115
112
|
int max_pings_without_data;
|
116
113
|
int max_ping_strikes;
|
117
|
-
|
118
|
-
|
114
|
+
grpc_millis min_sent_ping_interval_without_data;
|
115
|
+
grpc_millis min_recv_ping_interval_without_data;
|
119
116
|
} grpc_chttp2_repeated_ping_policy;
|
120
117
|
|
121
118
|
typedef struct {
|
122
|
-
|
119
|
+
grpc_millis last_ping_sent_time;
|
123
120
|
int pings_before_data_required;
|
124
121
|
grpc_timer delayed_ping_timer;
|
125
122
|
bool is_delayed_ping_timer_set;
|
126
123
|
} grpc_chttp2_repeated_ping_state;
|
127
124
|
|
128
125
|
typedef struct {
|
129
|
-
|
126
|
+
grpc_millis last_ping_recv_time;
|
130
127
|
int ping_strikes;
|
131
128
|
} grpc_chttp2_server_ping_recv_state;
|
132
129
|
|
@@ -174,13 +171,13 @@ typedef enum {
|
|
174
171
|
} grpc_chttp2_deframe_transport_state;
|
175
172
|
|
176
173
|
typedef struct {
|
177
|
-
grpc_chttp2_stream
|
178
|
-
grpc_chttp2_stream
|
174
|
+
grpc_chttp2_stream* head;
|
175
|
+
grpc_chttp2_stream* tail;
|
179
176
|
} grpc_chttp2_stream_list;
|
180
177
|
|
181
178
|
typedef struct {
|
182
|
-
grpc_chttp2_stream
|
183
|
-
grpc_chttp2_stream
|
179
|
+
grpc_chttp2_stream* next;
|
180
|
+
grpc_chttp2_stream* prev;
|
184
181
|
} grpc_chttp2_stream_link;
|
185
182
|
|
186
183
|
/* We keep several sets of connection wide parameters */
|
@@ -204,8 +201,8 @@ typedef enum {
|
|
204
201
|
|
205
202
|
typedef struct grpc_chttp2_write_cb {
|
206
203
|
int64_t call_at_byte;
|
207
|
-
grpc_closure
|
208
|
-
struct grpc_chttp2_write_cb
|
204
|
+
grpc_closure* closure;
|
205
|
+
struct grpc_chttp2_write_cb* next;
|
209
206
|
} grpc_chttp2_write_cb;
|
210
207
|
|
211
208
|
/* forward declared in frame_data.h */
|
@@ -213,8 +210,8 @@ struct grpc_chttp2_incoming_byte_stream {
|
|
213
210
|
grpc_byte_stream base;
|
214
211
|
gpr_refcount refs;
|
215
212
|
|
216
|
-
grpc_chttp2_transport
|
217
|
-
grpc_chttp2_stream
|
213
|
+
grpc_chttp2_transport* transport; /* immutable */
|
214
|
+
grpc_chttp2_stream* stream; /* immutable */
|
218
215
|
|
219
216
|
/* Accessed only by transport thread when stream->pending_byte_stream == false
|
220
217
|
* Accessed only by application thread when stream->pending_byte_stream ==
|
@@ -227,7 +224,7 @@ struct grpc_chttp2_incoming_byte_stream {
|
|
227
224
|
struct {
|
228
225
|
grpc_closure closure;
|
229
226
|
size_t max_size_hint;
|
230
|
-
grpc_closure
|
227
|
+
grpc_closure* on_complete;
|
231
228
|
} next_action;
|
232
229
|
grpc_closure destroy_action;
|
233
230
|
grpc_closure finished_action;
|
@@ -240,54 +237,15 @@ typedef enum {
|
|
240
237
|
GRPC_CHTTP2_KEEPALIVE_STATE_DISABLED,
|
241
238
|
} grpc_chttp2_keepalive_state;
|
242
239
|
|
243
|
-
typedef struct {
|
244
|
-
/** initial window change. This is tracked as we parse settings frames from
|
245
|
-
* the remote peer. If there is a positive delta, then we will make all
|
246
|
-
* streams readable since they may have become unstalled */
|
247
|
-
int64_t initial_window_update;
|
248
|
-
|
249
|
-
/** Our bookkeeping for the remote peer's available window */
|
250
|
-
int64_t remote_window;
|
251
|
-
|
252
|
-
/** calculating what we should give for local window:
|
253
|
-
we track the total amount of flow control over initial window size
|
254
|
-
across all streams: this is data that we want to receive right now (it
|
255
|
-
has an outstanding read)
|
256
|
-
and the total amount of flow control under initial window size across all
|
257
|
-
streams: this is data we've read early
|
258
|
-
we want to adjust incoming_window such that:
|
259
|
-
incoming_window = total_over - max(bdp - total_under, 0) */
|
260
|
-
int64_t announced_stream_total_over_incoming_window;
|
261
|
-
int64_t announced_stream_total_under_incoming_window;
|
262
|
-
|
263
|
-
/** This is out window according to what we have sent to our remote peer. The
|
264
|
-
* difference between this and target window is what we use to decide when
|
265
|
-
* to send WINDOW_UPDATE frames. */
|
266
|
-
int64_t announced_window;
|
267
|
-
|
268
|
-
/** should we probe bdp? */
|
269
|
-
bool enable_bdp_probe;
|
270
|
-
|
271
|
-
/* bdp estimation */
|
272
|
-
grpc_bdp_estimator bdp_estimator;
|
273
|
-
|
274
|
-
/* pid controller */
|
275
|
-
grpc_pid_controller pid_controller;
|
276
|
-
gpr_timespec last_pid_update;
|
277
|
-
|
278
|
-
// pointer back to transport for tracing
|
279
|
-
const grpc_chttp2_transport *t;
|
280
|
-
} grpc_chttp2_transport_flowctl;
|
281
|
-
|
282
240
|
struct grpc_chttp2_transport {
|
283
241
|
grpc_transport base; /* must be first */
|
284
242
|
gpr_refcount refs;
|
285
|
-
grpc_endpoint
|
286
|
-
char
|
243
|
+
grpc_endpoint* ep;
|
244
|
+
char* peer_string;
|
287
245
|
|
288
|
-
grpc_combiner
|
246
|
+
grpc_combiner* combiner;
|
289
247
|
|
290
|
-
grpc_closure
|
248
|
+
grpc_closure* notify_on_receive_settings;
|
291
249
|
|
292
250
|
/** write execution state of the transport */
|
293
251
|
grpc_chttp2_write_state write_state;
|
@@ -299,7 +257,7 @@ struct grpc_chttp2_transport {
|
|
299
257
|
/** is the transport destroying itself? */
|
300
258
|
uint8_t destroying;
|
301
259
|
/** has the upper layer closed the transport? */
|
302
|
-
|
260
|
+
grpc_error* closed_with_error;
|
303
261
|
|
304
262
|
/** is there a read request to the endpoint outstanding? */
|
305
263
|
uint8_t endpoint_reading;
|
@@ -324,13 +282,13 @@ struct grpc_chttp2_transport {
|
|
324
282
|
/** address to place a newly accepted stream - set and unset by
|
325
283
|
grpc_chttp2_parsing_accept_stream; used by init_stream to
|
326
284
|
publish the accepted server stream */
|
327
|
-
grpc_chttp2_stream
|
285
|
+
grpc_chttp2_stream** accepting_stream;
|
328
286
|
|
329
287
|
struct {
|
330
288
|
/* accept stream callback */
|
331
|
-
void (*accept_stream)(grpc_exec_ctx
|
332
|
-
grpc_transport
|
333
|
-
void
|
289
|
+
void (*accept_stream)(grpc_exec_ctx* exec_ctx, void* user_data,
|
290
|
+
grpc_transport* transport, const void* server_data);
|
291
|
+
void* accept_stream_user_data;
|
334
292
|
|
335
293
|
/** connectivity tracking */
|
336
294
|
grpc_connectivity_state_tracker state_tracker;
|
@@ -341,7 +299,7 @@ struct grpc_chttp2_transport {
|
|
341
299
|
/** hpack encoding */
|
342
300
|
grpc_chttp2_hpack_compressor hpack_compressor;
|
343
301
|
/** is this a client? */
|
344
|
-
|
302
|
+
bool is_client;
|
345
303
|
|
346
304
|
/** data to write next write */
|
347
305
|
grpc_slice_buffer qbuf;
|
@@ -350,15 +308,16 @@ struct grpc_chttp2_transport {
|
|
350
308
|
*/
|
351
309
|
uint32_t write_buffer_size;
|
352
310
|
|
353
|
-
/**
|
354
|
-
|
355
|
-
|
311
|
+
/** Set to a grpc_error object if a goaway frame is received. By default, set
|
312
|
+
* to GRPC_ERROR_NONE */
|
313
|
+
grpc_error* goaway_error;
|
314
|
+
|
356
315
|
grpc_chttp2_sent_goaway_state sent_goaway_state;
|
357
316
|
|
358
317
|
/** are the local settings dirty and need to be sent? */
|
359
|
-
|
318
|
+
bool dirtied_local_settings;
|
360
319
|
/** have local settings been sent? */
|
361
|
-
|
320
|
+
bool sent_local_settings;
|
362
321
|
/** bitmask of setting indexes to send out */
|
363
322
|
uint32_t force_send_settings;
|
364
323
|
/** settings values */
|
@@ -372,7 +331,7 @@ struct grpc_chttp2_transport {
|
|
372
331
|
uint32_t last_new_stream_id;
|
373
332
|
|
374
333
|
/** ping queues for various ping insertion points */
|
375
|
-
grpc_chttp2_ping_queue
|
334
|
+
grpc_chttp2_ping_queue ping_queue;
|
376
335
|
grpc_chttp2_repeated_ping_policy ping_policy;
|
377
336
|
grpc_chttp2_repeated_ping_state ping_state;
|
378
337
|
uint64_t ping_ctr; /* unique id for pings */
|
@@ -381,7 +340,7 @@ struct grpc_chttp2_transport {
|
|
381
340
|
/** ping acks */
|
382
341
|
size_t ping_ack_count;
|
383
342
|
size_t ping_ack_capacity;
|
384
|
-
uint64_t
|
343
|
+
uint64_t* ping_acks;
|
385
344
|
grpc_chttp2_server_ping_recv_state ping_recv_state;
|
386
345
|
|
387
346
|
/** parser for headers */
|
@@ -396,7 +355,12 @@ struct grpc_chttp2_transport {
|
|
396
355
|
/** parser for goaway frames */
|
397
356
|
grpc_chttp2_goaway_parser goaway_parser;
|
398
357
|
|
399
|
-
|
358
|
+
grpc_core::ManualConstructor<grpc_core::chttp2::TransportFlowControl>
|
359
|
+
flow_control;
|
360
|
+
/** initial window change. This is tracked as we parse settings frames from
|
361
|
+
* the remote peer. If there is a positive delta, then we will make all
|
362
|
+
* streams readable since they may have become unstalled */
|
363
|
+
int64_t initial_window_update = 0;
|
400
364
|
|
401
365
|
/* deframing */
|
402
366
|
grpc_chttp2_deframe_transport_state deframe_state;
|
@@ -409,26 +373,22 @@ struct grpc_chttp2_transport {
|
|
409
373
|
uint32_t incoming_stream_id;
|
410
374
|
|
411
375
|
/* active parser */
|
412
|
-
void
|
413
|
-
grpc_chttp2_stream
|
414
|
-
grpc_error
|
415
|
-
grpc_chttp2_transport
|
376
|
+
void* parser_data;
|
377
|
+
grpc_chttp2_stream* incoming_stream;
|
378
|
+
grpc_error* (*parser)(grpc_exec_ctx* exec_ctx, void* parser_user_data,
|
379
|
+
grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
416
380
|
grpc_slice slice, int is_last);
|
417
381
|
|
418
|
-
|
419
|
-
grpc_status_code goaway_error;
|
420
|
-
uint32_t goaway_last_stream_index;
|
421
|
-
grpc_slice goaway_text;
|
422
|
-
|
423
|
-
grpc_chttp2_write_cb *write_cb_pool;
|
382
|
+
grpc_chttp2_write_cb* write_cb_pool;
|
424
383
|
|
425
384
|
/* bdp estimator */
|
385
|
+
grpc_closure next_bdp_ping_timer_expired_locked;
|
426
386
|
grpc_closure start_bdp_ping_locked;
|
427
387
|
grpc_closure finish_bdp_ping_locked;
|
428
388
|
|
429
389
|
/* if non-NULL, close the transport with this error when writes are finished
|
430
390
|
*/
|
431
|
-
grpc_error
|
391
|
+
grpc_error* close_transport_on_writes_finished;
|
432
392
|
|
433
393
|
/* a list of closures to run after writes are finished */
|
434
394
|
grpc_closure_list run_after_write;
|
@@ -443,6 +403,10 @@ struct grpc_chttp2_transport {
|
|
443
403
|
/** destructive cleanup closure */
|
444
404
|
grpc_closure destructive_reclaimer_locked;
|
445
405
|
|
406
|
+
/* next bdp ping timer */
|
407
|
+
bool have_next_bdp_ping_timer;
|
408
|
+
grpc_timer next_bdp_ping_timer;
|
409
|
+
|
446
410
|
/* keep-alive ping support */
|
447
411
|
/** Closure to initialize a keepalive ping */
|
448
412
|
grpc_closure init_keepalive_ping_locked;
|
@@ -457,9 +421,9 @@ struct grpc_chttp2_transport {
|
|
457
421
|
/** watchdog to kill the transport when waiting for the keepalive ping */
|
458
422
|
grpc_timer keepalive_watchdog_timer;
|
459
423
|
/** time duration in between pings */
|
460
|
-
|
424
|
+
grpc_millis keepalive_time;
|
461
425
|
/** grace period for a ping to complete before watchdog kicks in */
|
462
|
-
|
426
|
+
grpc_millis keepalive_timeout;
|
463
427
|
/** if keepalive pings are allowed when there's no outstanding streams */
|
464
428
|
bool keepalive_permit_without_calls;
|
465
429
|
/** keep-alive state machine state */
|
@@ -473,31 +437,12 @@ typedef enum {
|
|
473
437
|
GPRC_METADATA_PUBLISHED_AT_CLOSE
|
474
438
|
} grpc_published_metadata_method;
|
475
439
|
|
476
|
-
typedef struct {
|
477
|
-
/** window available for us to send to peer, over or under the initial window
|
478
|
-
* size of the transport... ie:
|
479
|
-
* remote_window = remote_window_delta + transport.initial_window_size */
|
480
|
-
int64_t remote_window_delta;
|
481
|
-
|
482
|
-
/** window available for peer to send to us (as a delta on
|
483
|
-
* transport.initial_window_size)
|
484
|
-
* local_window = local_window_delta + transport.initial_window_size */
|
485
|
-
int64_t local_window_delta;
|
486
|
-
|
487
|
-
/** window available for peer to send to us over this stream that we have
|
488
|
-
* announced to the peer */
|
489
|
-
int64_t announced_window_delta;
|
490
|
-
|
491
|
-
// read only pointer back to stream for data
|
492
|
-
const grpc_chttp2_stream *s;
|
493
|
-
} grpc_chttp2_stream_flowctl;
|
494
|
-
|
495
440
|
struct grpc_chttp2_stream {
|
496
|
-
grpc_chttp2_transport
|
497
|
-
grpc_stream_refcount
|
441
|
+
grpc_chttp2_transport* t;
|
442
|
+
grpc_stream_refcount* refcount;
|
498
443
|
|
499
444
|
grpc_closure destroy_stream;
|
500
|
-
grpc_closure
|
445
|
+
grpc_closure* destroy_stream_arg;
|
501
446
|
|
502
447
|
grpc_chttp2_stream_link links[STREAM_LIST_COUNT];
|
503
448
|
uint8_t included[STREAM_LIST_COUNT];
|
@@ -506,29 +451,29 @@ struct grpc_chttp2_stream {
|
|
506
451
|
uint32_t id;
|
507
452
|
|
508
453
|
/** things the upper layers would like to send */
|
509
|
-
grpc_metadata_batch
|
510
|
-
grpc_closure
|
511
|
-
grpc_metadata_batch
|
512
|
-
grpc_closure
|
454
|
+
grpc_metadata_batch* send_initial_metadata;
|
455
|
+
grpc_closure* send_initial_metadata_finished;
|
456
|
+
grpc_metadata_batch* send_trailing_metadata;
|
457
|
+
grpc_closure* send_trailing_metadata_finished;
|
513
458
|
|
514
|
-
grpc_byte_stream
|
459
|
+
grpc_byte_stream* fetching_send_message;
|
515
460
|
uint32_t fetched_send_message_length;
|
516
461
|
grpc_slice fetching_slice;
|
517
462
|
int64_t next_message_end_offset;
|
518
463
|
int64_t flow_controlled_bytes_written;
|
519
464
|
int64_t flow_controlled_bytes_flowed;
|
520
465
|
grpc_closure complete_fetch_locked;
|
521
|
-
grpc_closure
|
466
|
+
grpc_closure* fetching_send_message_finished;
|
522
467
|
|
523
|
-
grpc_metadata_batch
|
524
|
-
grpc_closure
|
525
|
-
bool
|
526
|
-
grpc_byte_stream
|
527
|
-
grpc_closure
|
528
|
-
grpc_metadata_batch
|
529
|
-
grpc_closure
|
468
|
+
grpc_metadata_batch* recv_initial_metadata;
|
469
|
+
grpc_closure* recv_initial_metadata_ready;
|
470
|
+
bool* trailing_metadata_available;
|
471
|
+
grpc_byte_stream** recv_message;
|
472
|
+
grpc_closure* recv_message_ready;
|
473
|
+
grpc_metadata_batch* recv_trailing_metadata;
|
474
|
+
grpc_closure* recv_trailing_metadata_finished;
|
530
475
|
|
531
|
-
grpc_transport_stream_stats
|
476
|
+
grpc_transport_stream_stats* collecting_stats;
|
532
477
|
grpc_transport_stream_stats stats;
|
533
478
|
|
534
479
|
/** Is this stream closed for writing. */
|
@@ -547,9 +492,9 @@ struct grpc_chttp2_stream {
|
|
547
492
|
bool received_trailing_metadata;
|
548
493
|
|
549
494
|
/** the error that resulted in this stream being read-closed */
|
550
|
-
grpc_error
|
495
|
+
grpc_error* read_closed_error;
|
551
496
|
/** the error that resulted in this stream being write-closed */
|
552
|
-
grpc_error
|
497
|
+
grpc_error* write_closed_error;
|
553
498
|
|
554
499
|
grpc_published_metadata_method published_metadata[2];
|
555
500
|
bool final_metadata_requested;
|
@@ -562,16 +507,16 @@ struct grpc_chttp2_stream {
|
|
562
507
|
* Accessed only by application thread when stream->pending_byte_stream ==
|
563
508
|
* true */
|
564
509
|
grpc_slice_buffer unprocessed_incoming_frames_buffer;
|
565
|
-
grpc_closure
|
510
|
+
grpc_closure* on_next; /* protected by t combiner */
|
566
511
|
bool pending_byte_stream; /* protected by t combiner */
|
567
512
|
grpc_closure reset_byte_stream;
|
568
|
-
grpc_error
|
513
|
+
grpc_error* byte_stream_error; /* protected by t combiner */
|
569
514
|
bool received_last_frame; /* protected by t combiner */
|
570
515
|
|
571
|
-
|
516
|
+
grpc_millis deadline;
|
572
517
|
|
573
518
|
/** saw some stream level error */
|
574
|
-
grpc_error
|
519
|
+
grpc_error* forced_close_error;
|
575
520
|
/** how many header frames have we received? */
|
576
521
|
uint8_t header_frames_received;
|
577
522
|
/** parsing state for data frames */
|
@@ -585,13 +530,14 @@ struct grpc_chttp2_stream {
|
|
585
530
|
bool sent_initial_metadata;
|
586
531
|
bool sent_trailing_metadata;
|
587
532
|
|
588
|
-
|
533
|
+
grpc_core::ManualConstructor<grpc_core::chttp2::StreamFlowControl>
|
534
|
+
flow_control;
|
589
535
|
|
590
536
|
grpc_slice_buffer flow_controlled_buffer;
|
591
537
|
|
592
|
-
grpc_chttp2_write_cb
|
593
|
-
grpc_chttp2_write_cb
|
594
|
-
grpc_chttp2_write_cb
|
538
|
+
grpc_chttp2_write_cb* on_flow_controlled_cbs;
|
539
|
+
grpc_chttp2_write_cb* on_write_finished_cbs;
|
540
|
+
grpc_chttp2_write_cb* finish_after_write;
|
595
541
|
size_t sending_bytes;
|
596
542
|
|
597
543
|
/* Stream compression method to be used. */
|
@@ -599,9 +545,9 @@ struct grpc_chttp2_stream {
|
|
599
545
|
/* Stream decompression method to be used. */
|
600
546
|
grpc_stream_compression_method stream_decompression_method;
|
601
547
|
/** Stream compression decompress context */
|
602
|
-
grpc_stream_compression_context
|
548
|
+
grpc_stream_compression_context* stream_decompression_ctx;
|
603
549
|
/** Stream compression compress context */
|
604
|
-
grpc_stream_compression_context
|
550
|
+
grpc_stream_compression_context* stream_compression_ctx;
|
605
551
|
|
606
552
|
/** Buffer storing data that is compressed but not sent */
|
607
553
|
grpc_slice_buffer compressed_data_buffer;
|
@@ -629,8 +575,8 @@ struct grpc_chttp2_stream {
|
|
629
575
|
|
630
576
|
The actual call chain is documented in the implementation of this function.
|
631
577
|
*/
|
632
|
-
void grpc_chttp2_initiate_write(grpc_exec_ctx
|
633
|
-
grpc_chttp2_transport
|
578
|
+
void grpc_chttp2_initiate_write(grpc_exec_ctx* exec_ctx,
|
579
|
+
grpc_chttp2_transport* t,
|
634
580
|
grpc_chttp2_initiate_write_reason reason);
|
635
581
|
|
636
582
|
typedef struct {
|
@@ -643,151 +589,85 @@ typedef struct {
|
|
643
589
|
} grpc_chttp2_begin_write_result;
|
644
590
|
|
645
591
|
grpc_chttp2_begin_write_result grpc_chttp2_begin_write(
|
646
|
-
grpc_exec_ctx
|
647
|
-
void grpc_chttp2_end_write(grpc_exec_ctx
|
648
|
-
grpc_error
|
592
|
+
grpc_exec_ctx* exec_ctx, grpc_chttp2_transport* t);
|
593
|
+
void grpc_chttp2_end_write(grpc_exec_ctx* exec_ctx, grpc_chttp2_transport* t,
|
594
|
+
grpc_error* error);
|
649
595
|
|
650
596
|
/** Process one slice of incoming data; return 1 if the connection is still
|
651
597
|
viable after reading, or 0 if the connection should be torn down */
|
652
|
-
grpc_error
|
653
|
-
grpc_chttp2_transport
|
598
|
+
grpc_error* grpc_chttp2_perform_read(grpc_exec_ctx* exec_ctx,
|
599
|
+
grpc_chttp2_transport* t,
|
654
600
|
grpc_slice slice);
|
655
601
|
|
656
|
-
bool grpc_chttp2_list_add_writable_stream(grpc_chttp2_transport
|
657
|
-
grpc_chttp2_stream
|
602
|
+
bool grpc_chttp2_list_add_writable_stream(grpc_chttp2_transport* t,
|
603
|
+
grpc_chttp2_stream* s);
|
658
604
|
/** Get a writable stream
|
659
605
|
returns non-zero if there was a stream available */
|
660
|
-
bool grpc_chttp2_list_pop_writable_stream(grpc_chttp2_transport
|
661
|
-
grpc_chttp2_stream
|
662
|
-
bool grpc_chttp2_list_remove_writable_stream(
|
663
|
-
|
664
|
-
|
665
|
-
bool grpc_chttp2_list_add_writing_stream(grpc_chttp2_transport
|
666
|
-
grpc_chttp2_stream
|
667
|
-
bool grpc_chttp2_list_have_writing_streams(grpc_chttp2_transport
|
668
|
-
bool grpc_chttp2_list_pop_writing_stream(grpc_chttp2_transport
|
669
|
-
grpc_chttp2_stream
|
670
|
-
|
671
|
-
void grpc_chttp2_list_add_written_stream(grpc_chttp2_transport
|
672
|
-
grpc_chttp2_stream
|
673
|
-
bool grpc_chttp2_list_pop_written_stream(grpc_chttp2_transport
|
674
|
-
grpc_chttp2_stream
|
675
|
-
|
676
|
-
void grpc_chttp2_list_add_waiting_for_concurrency(grpc_chttp2_transport
|
677
|
-
grpc_chttp2_stream
|
678
|
-
bool grpc_chttp2_list_pop_waiting_for_concurrency(grpc_chttp2_transport
|
679
|
-
grpc_chttp2_stream
|
680
|
-
void grpc_chttp2_list_remove_waiting_for_concurrency(grpc_chttp2_transport
|
681
|
-
grpc_chttp2_stream
|
682
|
-
|
683
|
-
void grpc_chttp2_list_add_stalled_by_transport(grpc_chttp2_transport
|
684
|
-
grpc_chttp2_stream
|
685
|
-
bool grpc_chttp2_list_pop_stalled_by_transport(grpc_chttp2_transport
|
686
|
-
grpc_chttp2_stream
|
687
|
-
void grpc_chttp2_list_remove_stalled_by_transport(grpc_chttp2_transport
|
688
|
-
grpc_chttp2_stream
|
689
|
-
|
690
|
-
void grpc_chttp2_list_add_stalled_by_stream(grpc_chttp2_transport
|
691
|
-
grpc_chttp2_stream
|
692
|
-
bool grpc_chttp2_list_pop_stalled_by_stream(grpc_chttp2_transport
|
693
|
-
grpc_chttp2_stream
|
694
|
-
bool grpc_chttp2_list_remove_stalled_by_stream(grpc_chttp2_transport
|
695
|
-
grpc_chttp2_stream
|
606
|
+
bool grpc_chttp2_list_pop_writable_stream(grpc_chttp2_transport* t,
|
607
|
+
grpc_chttp2_stream** s);
|
608
|
+
bool grpc_chttp2_list_remove_writable_stream(grpc_chttp2_transport* t,
|
609
|
+
grpc_chttp2_stream* s);
|
610
|
+
|
611
|
+
bool grpc_chttp2_list_add_writing_stream(grpc_chttp2_transport* t,
|
612
|
+
grpc_chttp2_stream* s);
|
613
|
+
bool grpc_chttp2_list_have_writing_streams(grpc_chttp2_transport* t);
|
614
|
+
bool grpc_chttp2_list_pop_writing_stream(grpc_chttp2_transport* t,
|
615
|
+
grpc_chttp2_stream** s);
|
616
|
+
|
617
|
+
void grpc_chttp2_list_add_written_stream(grpc_chttp2_transport* t,
|
618
|
+
grpc_chttp2_stream* s);
|
619
|
+
bool grpc_chttp2_list_pop_written_stream(grpc_chttp2_transport* t,
|
620
|
+
grpc_chttp2_stream** s);
|
621
|
+
|
622
|
+
void grpc_chttp2_list_add_waiting_for_concurrency(grpc_chttp2_transport* t,
|
623
|
+
grpc_chttp2_stream* s);
|
624
|
+
bool grpc_chttp2_list_pop_waiting_for_concurrency(grpc_chttp2_transport* t,
|
625
|
+
grpc_chttp2_stream** s);
|
626
|
+
void grpc_chttp2_list_remove_waiting_for_concurrency(grpc_chttp2_transport* t,
|
627
|
+
grpc_chttp2_stream* s);
|
628
|
+
|
629
|
+
void grpc_chttp2_list_add_stalled_by_transport(grpc_chttp2_transport* t,
|
630
|
+
grpc_chttp2_stream* s);
|
631
|
+
bool grpc_chttp2_list_pop_stalled_by_transport(grpc_chttp2_transport* t,
|
632
|
+
grpc_chttp2_stream** s);
|
633
|
+
void grpc_chttp2_list_remove_stalled_by_transport(grpc_chttp2_transport* t,
|
634
|
+
grpc_chttp2_stream* s);
|
635
|
+
|
636
|
+
void grpc_chttp2_list_add_stalled_by_stream(grpc_chttp2_transport* t,
|
637
|
+
grpc_chttp2_stream* s);
|
638
|
+
bool grpc_chttp2_list_pop_stalled_by_stream(grpc_chttp2_transport* t,
|
639
|
+
grpc_chttp2_stream** s);
|
640
|
+
bool grpc_chttp2_list_remove_stalled_by_stream(grpc_chttp2_transport* t,
|
641
|
+
grpc_chttp2_stream* s);
|
696
642
|
|
697
643
|
/********* Flow Control ***************/
|
698
644
|
|
699
|
-
// we have sent data on the wire
|
700
|
-
void grpc_chttp2_flowctl_sent_data(grpc_chttp2_transport_flowctl *tfc,
|
701
|
-
grpc_chttp2_stream_flowctl *sfc,
|
702
|
-
int64_t size);
|
703
|
-
|
704
|
-
// we have received data from the wire
|
705
|
-
grpc_error *grpc_chttp2_flowctl_recv_data(grpc_chttp2_transport_flowctl *tfc,
|
706
|
-
grpc_chttp2_stream_flowctl *sfc,
|
707
|
-
int64_t incoming_frame_size);
|
708
|
-
|
709
|
-
// returns an announce if we should send a transport update to our peer,
|
710
|
-
// else returns zero
|
711
|
-
uint32_t grpc_chttp2_flowctl_maybe_send_transport_update(
|
712
|
-
grpc_chttp2_transport_flowctl *tfc);
|
713
|
-
|
714
|
-
// returns an announce if we should send a stream update to our peer, else
|
715
|
-
// returns zero
|
716
|
-
uint32_t grpc_chttp2_flowctl_maybe_send_stream_update(
|
717
|
-
grpc_chttp2_transport_flowctl *tfc, grpc_chttp2_stream_flowctl *sfc);
|
718
|
-
|
719
|
-
// we have received a WINDOW_UPDATE frame for a transport
|
720
|
-
void grpc_chttp2_flowctl_recv_transport_update(
|
721
|
-
grpc_chttp2_transport_flowctl *tfc, uint32_t size);
|
722
|
-
|
723
|
-
// we have received a WINDOW_UPDATE frame for a stream
|
724
|
-
void grpc_chttp2_flowctl_recv_stream_update(grpc_chttp2_transport_flowctl *tfc,
|
725
|
-
grpc_chttp2_stream_flowctl *sfc,
|
726
|
-
uint32_t size);
|
727
|
-
|
728
|
-
// the application is asking for a certain amount of bytes
|
729
|
-
void grpc_chttp2_flowctl_incoming_bs_update(grpc_chttp2_transport_flowctl *tfc,
|
730
|
-
grpc_chttp2_stream_flowctl *sfc,
|
731
|
-
size_t max_size_hint,
|
732
|
-
size_t have_already);
|
733
|
-
|
734
|
-
void grpc_chttp2_flowctl_destroy_stream(grpc_chttp2_transport_flowctl *tfc,
|
735
|
-
grpc_chttp2_stream_flowctl *sfc);
|
736
|
-
|
737
|
-
typedef enum {
|
738
|
-
// Nothing to be done.
|
739
|
-
GRPC_CHTTP2_FLOWCTL_NO_ACTION_NEEDED = 0,
|
740
|
-
// Initiate a write to update the initial window immediately.
|
741
|
-
GRPC_CHTTP2_FLOWCTL_UPDATE_IMMEDIATELY,
|
742
|
-
// Push the flow control update into a send buffer, to be sent
|
743
|
-
// out the next time a write is initiated.
|
744
|
-
GRPC_CHTTP2_FLOWCTL_QUEUE_UPDATE,
|
745
|
-
} grpc_chttp2_flowctl_urgency;
|
746
|
-
|
747
|
-
typedef struct {
|
748
|
-
grpc_chttp2_flowctl_urgency send_stream_update;
|
749
|
-
grpc_chttp2_flowctl_urgency send_transport_update;
|
750
|
-
grpc_chttp2_flowctl_urgency send_setting_update;
|
751
|
-
uint32_t initial_window_size;
|
752
|
-
uint32_t max_frame_size;
|
753
|
-
bool need_ping;
|
754
|
-
} grpc_chttp2_flowctl_action;
|
755
|
-
|
756
|
-
// Reads the flow control data and returns and actionable struct that will tell
|
757
|
-
// chttp2 exactly what it needs to do
|
758
|
-
grpc_chttp2_flowctl_action grpc_chttp2_flowctl_get_action(
|
759
|
-
grpc_chttp2_transport_flowctl *tfc, grpc_chttp2_stream_flowctl *sfc);
|
760
|
-
|
761
|
-
grpc_chttp2_flowctl_action grpc_chttp2_flowctl_get_bdp_action(
|
762
|
-
grpc_chttp2_transport_flowctl *tfc);
|
763
|
-
|
764
645
|
// Takes in a flow control action and performs all the needed operations.
|
765
|
-
void grpc_chttp2_act_on_flowctl_action(
|
766
|
-
|
767
|
-
|
768
|
-
grpc_chttp2_stream *s);
|
646
|
+
void grpc_chttp2_act_on_flowctl_action(
|
647
|
+
grpc_exec_ctx* exec_ctx, const grpc_core::chttp2::FlowControlAction& action,
|
648
|
+
grpc_chttp2_transport* t, grpc_chttp2_stream* s);
|
769
649
|
|
770
650
|
/********* End of Flow Control ***************/
|
771
651
|
|
772
|
-
grpc_chttp2_stream
|
652
|
+
grpc_chttp2_stream* grpc_chttp2_parsing_lookup_stream(grpc_chttp2_transport* t,
|
773
653
|
uint32_t id);
|
774
|
-
grpc_chttp2_stream
|
775
|
-
grpc_chttp2_transport
|
654
|
+
grpc_chttp2_stream* grpc_chttp2_parsing_accept_stream(grpc_exec_ctx* exec_ctx,
|
655
|
+
grpc_chttp2_transport* t,
|
776
656
|
uint32_t id);
|
777
657
|
|
778
|
-
void grpc_chttp2_add_incoming_goaway(grpc_exec_ctx
|
779
|
-
grpc_chttp2_transport
|
658
|
+
void grpc_chttp2_add_incoming_goaway(grpc_exec_ctx* exec_ctx,
|
659
|
+
grpc_chttp2_transport* t,
|
780
660
|
uint32_t goaway_error,
|
781
661
|
grpc_slice goaway_text);
|
782
662
|
|
783
|
-
void grpc_chttp2_parsing_become_skip_parser(grpc_exec_ctx
|
784
|
-
grpc_chttp2_transport
|
663
|
+
void grpc_chttp2_parsing_become_skip_parser(grpc_exec_ctx* exec_ctx,
|
664
|
+
grpc_chttp2_transport* t);
|
785
665
|
|
786
|
-
void grpc_chttp2_complete_closure_step(grpc_exec_ctx
|
787
|
-
grpc_chttp2_transport
|
788
|
-
grpc_chttp2_stream
|
789
|
-
grpc_closure
|
790
|
-
grpc_error
|
666
|
+
void grpc_chttp2_complete_closure_step(grpc_exec_ctx* exec_ctx,
|
667
|
+
grpc_chttp2_transport* t,
|
668
|
+
grpc_chttp2_stream* s,
|
669
|
+
grpc_closure** pclosure,
|
670
|
+
grpc_error* error, const char* desc);
|
791
671
|
|
792
672
|
#define GRPC_HEADER_SIZE_IN_BYTES 5
|
793
673
|
#define MAX_SIZE_T (~(size_t)0)
|
@@ -796,48 +676,38 @@ void grpc_chttp2_complete_closure_step(grpc_exec_ctx *exec_ctx,
|
|
796
676
|
#define GRPC_CHTTP2_CLIENT_CONNECT_STRLEN \
|
797
677
|
(sizeof(GRPC_CHTTP2_CLIENT_CONNECT_STRING) - 1)
|
798
678
|
|
799
|
-
extern
|
800
|
-
extern
|
679
|
+
// extern grpc_core::TraceFlag grpc_http_trace;
|
680
|
+
// extern grpc_core::TraceFlag grpc_flowctl_trace;
|
801
681
|
|
802
|
-
#
|
803
|
-
|
804
|
-
|
805
|
-
|
806
|
-
|
807
|
-
stmt
|
808
|
-
#else
|
809
|
-
#define GRPC_FLOW_CONTROL_IF_TRACING(stmt)
|
810
|
-
#endif
|
682
|
+
#define GRPC_CHTTP2_IF_TRACING(stmt) \
|
683
|
+
if (!(grpc_http_trace.enabled())) \
|
684
|
+
; \
|
685
|
+
else \
|
686
|
+
stmt
|
811
687
|
|
812
|
-
|
813
|
-
|
814
|
-
|
815
|
-
|
816
|
-
|
817
|
-
|
818
|
-
void
|
819
|
-
|
820
|
-
void grpc_chttp2_mark_stream_closed(grpc_exec_ctx *exec_ctx,
|
821
|
-
grpc_chttp2_transport *t,
|
822
|
-
grpc_chttp2_stream *s, int close_reads,
|
823
|
-
int close_writes, grpc_error *error);
|
824
|
-
void grpc_chttp2_start_writing(grpc_exec_ctx *exec_ctx,
|
825
|
-
grpc_chttp2_transport *t);
|
688
|
+
void grpc_chttp2_fake_status(grpc_exec_ctx* exec_ctx, grpc_chttp2_transport* t,
|
689
|
+
grpc_chttp2_stream* stream, grpc_error* error);
|
690
|
+
void grpc_chttp2_mark_stream_closed(grpc_exec_ctx* exec_ctx,
|
691
|
+
grpc_chttp2_transport* t,
|
692
|
+
grpc_chttp2_stream* s, int close_reads,
|
693
|
+
int close_writes, grpc_error* error);
|
694
|
+
void grpc_chttp2_start_writing(grpc_exec_ctx* exec_ctx,
|
695
|
+
grpc_chttp2_transport* t);
|
826
696
|
|
827
697
|
#ifndef NDEBUG
|
828
698
|
#define GRPC_CHTTP2_STREAM_REF(stream, reason) \
|
829
699
|
grpc_chttp2_stream_ref(stream, reason)
|
830
700
|
#define GRPC_CHTTP2_STREAM_UNREF(exec_ctx, stream, reason) \
|
831
701
|
grpc_chttp2_stream_unref(exec_ctx, stream, reason)
|
832
|
-
void grpc_chttp2_stream_ref(grpc_chttp2_stream
|
833
|
-
void grpc_chttp2_stream_unref(grpc_exec_ctx
|
834
|
-
const char
|
702
|
+
void grpc_chttp2_stream_ref(grpc_chttp2_stream* s, const char* reason);
|
703
|
+
void grpc_chttp2_stream_unref(grpc_exec_ctx* exec_ctx, grpc_chttp2_stream* s,
|
704
|
+
const char* reason);
|
835
705
|
#else
|
836
706
|
#define GRPC_CHTTP2_STREAM_REF(stream, reason) grpc_chttp2_stream_ref(stream)
|
837
707
|
#define GRPC_CHTTP2_STREAM_UNREF(exec_ctx, stream, reason) \
|
838
708
|
grpc_chttp2_stream_unref(exec_ctx, stream)
|
839
|
-
void grpc_chttp2_stream_ref(grpc_chttp2_stream
|
840
|
-
void grpc_chttp2_stream_unref(grpc_exec_ctx
|
709
|
+
void grpc_chttp2_stream_ref(grpc_chttp2_stream* s);
|
710
|
+
void grpc_chttp2_stream_unref(grpc_exec_ctx* exec_ctx, grpc_chttp2_stream* s);
|
841
711
|
#endif
|
842
712
|
|
843
713
|
#ifndef NDEBUG
|
@@ -845,69 +715,73 @@ void grpc_chttp2_stream_unref(grpc_exec_ctx *exec_ctx, grpc_chttp2_stream *s);
|
|
845
715
|
grpc_chttp2_ref_transport(t, r, __FILE__, __LINE__)
|
846
716
|
#define GRPC_CHTTP2_UNREF_TRANSPORT(cl, t, r) \
|
847
717
|
grpc_chttp2_unref_transport(cl, t, r, __FILE__, __LINE__)
|
848
|
-
void grpc_chttp2_unref_transport(grpc_exec_ctx
|
849
|
-
grpc_chttp2_transport
|
850
|
-
const char
|
851
|
-
void grpc_chttp2_ref_transport(grpc_chttp2_transport
|
852
|
-
const char
|
718
|
+
void grpc_chttp2_unref_transport(grpc_exec_ctx* exec_ctx,
|
719
|
+
grpc_chttp2_transport* t, const char* reason,
|
720
|
+
const char* file, int line);
|
721
|
+
void grpc_chttp2_ref_transport(grpc_chttp2_transport* t, const char* reason,
|
722
|
+
const char* file, int line);
|
853
723
|
#else
|
854
724
|
#define GRPC_CHTTP2_REF_TRANSPORT(t, r) grpc_chttp2_ref_transport(t)
|
855
725
|
#define GRPC_CHTTP2_UNREF_TRANSPORT(cl, t, r) grpc_chttp2_unref_transport(cl, t)
|
856
|
-
void grpc_chttp2_unref_transport(grpc_exec_ctx
|
857
|
-
grpc_chttp2_transport
|
858
|
-
void grpc_chttp2_ref_transport(grpc_chttp2_transport
|
726
|
+
void grpc_chttp2_unref_transport(grpc_exec_ctx* exec_ctx,
|
727
|
+
grpc_chttp2_transport* t);
|
728
|
+
void grpc_chttp2_ref_transport(grpc_chttp2_transport* t);
|
859
729
|
#endif
|
860
730
|
|
861
|
-
grpc_chttp2_incoming_byte_stream
|
862
|
-
grpc_exec_ctx
|
731
|
+
grpc_chttp2_incoming_byte_stream* grpc_chttp2_incoming_byte_stream_create(
|
732
|
+
grpc_exec_ctx* exec_ctx, grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
863
733
|
uint32_t frame_size, uint32_t flags);
|
864
|
-
grpc_error
|
865
|
-
grpc_exec_ctx
|
866
|
-
grpc_slice slice, grpc_slice
|
867
|
-
grpc_error
|
868
|
-
grpc_exec_ctx
|
869
|
-
grpc_error
|
734
|
+
grpc_error* grpc_chttp2_incoming_byte_stream_push(
|
735
|
+
grpc_exec_ctx* exec_ctx, grpc_chttp2_incoming_byte_stream* bs,
|
736
|
+
grpc_slice slice, grpc_slice* slice_out);
|
737
|
+
grpc_error* grpc_chttp2_incoming_byte_stream_finished(
|
738
|
+
grpc_exec_ctx* exec_ctx, grpc_chttp2_incoming_byte_stream* bs,
|
739
|
+
grpc_error* error, bool reset_on_error);
|
870
740
|
void grpc_chttp2_incoming_byte_stream_notify(
|
871
|
-
grpc_exec_ctx
|
872
|
-
grpc_error
|
741
|
+
grpc_exec_ctx* exec_ctx, grpc_chttp2_incoming_byte_stream* bs,
|
742
|
+
grpc_error* error);
|
873
743
|
|
874
|
-
void grpc_chttp2_ack_ping(grpc_exec_ctx
|
744
|
+
void grpc_chttp2_ack_ping(grpc_exec_ctx* exec_ctx, grpc_chttp2_transport* t,
|
875
745
|
uint64_t id);
|
876
746
|
|
877
747
|
/** Add a new ping strike to ping_recv_state.ping_strikes. If
|
878
748
|
ping_recv_state.ping_strikes > ping_policy.max_ping_strikes, it sends GOAWAY
|
879
749
|
with error code ENHANCE_YOUR_CALM and additional debug data resembling
|
880
750
|
"too_many_pings" followed by immediately closing the connection. */
|
881
|
-
void grpc_chttp2_add_ping_strike(grpc_exec_ctx
|
882
|
-
grpc_chttp2_transport
|
751
|
+
void grpc_chttp2_add_ping_strike(grpc_exec_ctx* exec_ctx,
|
752
|
+
grpc_chttp2_transport* t);
|
883
753
|
|
884
754
|
/** add a ref to the stream and add it to the writable list;
|
885
755
|
ref will be dropped in writing.c */
|
886
|
-
void grpc_chttp2_mark_stream_writable(grpc_exec_ctx
|
887
|
-
grpc_chttp2_transport
|
888
|
-
grpc_chttp2_stream
|
889
|
-
|
890
|
-
void grpc_chttp2_cancel_stream(grpc_exec_ctx
|
891
|
-
grpc_chttp2_transport
|
892
|
-
grpc_error
|
893
|
-
|
894
|
-
void grpc_chttp2_maybe_complete_recv_initial_metadata(grpc_exec_ctx
|
895
|
-
grpc_chttp2_transport
|
896
|
-
grpc_chttp2_stream
|
897
|
-
void grpc_chttp2_maybe_complete_recv_message(grpc_exec_ctx
|
898
|
-
grpc_chttp2_transport
|
899
|
-
grpc_chttp2_stream
|
900
|
-
void grpc_chttp2_maybe_complete_recv_trailing_metadata(grpc_exec_ctx
|
901
|
-
grpc_chttp2_transport
|
902
|
-
grpc_chttp2_stream
|
903
|
-
|
904
|
-
void grpc_chttp2_fail_pending_writes(grpc_exec_ctx
|
905
|
-
grpc_chttp2_transport
|
906
|
-
grpc_chttp2_stream
|
756
|
+
void grpc_chttp2_mark_stream_writable(grpc_exec_ctx* exec_ctx,
|
757
|
+
grpc_chttp2_transport* t,
|
758
|
+
grpc_chttp2_stream* s);
|
759
|
+
|
760
|
+
void grpc_chttp2_cancel_stream(grpc_exec_ctx* exec_ctx,
|
761
|
+
grpc_chttp2_transport* t, grpc_chttp2_stream* s,
|
762
|
+
grpc_error* due_to_error);
|
763
|
+
|
764
|
+
void grpc_chttp2_maybe_complete_recv_initial_metadata(grpc_exec_ctx* exec_ctx,
|
765
|
+
grpc_chttp2_transport* t,
|
766
|
+
grpc_chttp2_stream* s);
|
767
|
+
void grpc_chttp2_maybe_complete_recv_message(grpc_exec_ctx* exec_ctx,
|
768
|
+
grpc_chttp2_transport* t,
|
769
|
+
grpc_chttp2_stream* s);
|
770
|
+
void grpc_chttp2_maybe_complete_recv_trailing_metadata(grpc_exec_ctx* exec_ctx,
|
771
|
+
grpc_chttp2_transport* t,
|
772
|
+
grpc_chttp2_stream* s);
|
773
|
+
|
774
|
+
void grpc_chttp2_fail_pending_writes(grpc_exec_ctx* exec_ctx,
|
775
|
+
grpc_chttp2_transport* t,
|
776
|
+
grpc_chttp2_stream* s, grpc_error* error);
|
907
777
|
|
908
778
|
/** Set the default keepalive configurations, must only be called at
|
909
779
|
initialization */
|
910
|
-
void grpc_chttp2_config_default_keepalive_args(grpc_channel_args
|
780
|
+
void grpc_chttp2_config_default_keepalive_args(grpc_channel_args* args,
|
911
781
|
bool is_client);
|
912
782
|
|
783
|
+
#ifdef __cplusplus
|
784
|
+
}
|
785
|
+
#endif
|
786
|
+
|
913
787
|
#endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_INTERNAL_H */
|