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
@@ -24,34 +24,42 @@
|
|
24
24
|
#include "src/core/lib/debug/trace.h"
|
25
25
|
#include "src/core/lib/transport/transport.h"
|
26
26
|
|
27
|
+
#ifdef __cplusplus
|
28
|
+
extern "C" {
|
29
|
+
#endif
|
30
|
+
|
27
31
|
extern const grpc_channel_filter grpc_server_top_filter;
|
28
32
|
|
29
33
|
/** Lightweight tracing of server channel state */
|
30
|
-
extern
|
34
|
+
extern grpc_core::TraceFlag grpc_server_channel_trace;
|
31
35
|
|
32
36
|
/* Add a listener to the server: when the server starts, it will call start,
|
33
37
|
and when it shuts down, it will call destroy */
|
34
38
|
void grpc_server_add_listener(
|
35
|
-
grpc_exec_ctx
|
36
|
-
void (*start)(grpc_exec_ctx
|
37
|
-
grpc_pollset
|
38
|
-
void (*destroy)(grpc_exec_ctx
|
39
|
-
grpc_closure
|
39
|
+
grpc_exec_ctx* exec_ctx, grpc_server* server, void* listener,
|
40
|
+
void (*start)(grpc_exec_ctx* exec_ctx, grpc_server* server, void* arg,
|
41
|
+
grpc_pollset** pollsets, size_t npollsets),
|
42
|
+
void (*destroy)(grpc_exec_ctx* exec_ctx, grpc_server* server, void* arg,
|
43
|
+
grpc_closure* on_done));
|
40
44
|
|
41
45
|
/* Setup a transport - creates a channel stack, binds the transport to the
|
42
46
|
server */
|
43
|
-
void grpc_server_setup_transport(grpc_exec_ctx
|
44
|
-
grpc_transport
|
45
|
-
grpc_pollset
|
46
|
-
const grpc_channel_args
|
47
|
+
void grpc_server_setup_transport(grpc_exec_ctx* exec_ctx, grpc_server* server,
|
48
|
+
grpc_transport* transport,
|
49
|
+
grpc_pollset* accepting_pollset,
|
50
|
+
const grpc_channel_args* args);
|
47
51
|
|
48
|
-
const grpc_channel_args
|
52
|
+
const grpc_channel_args* grpc_server_get_channel_args(grpc_server* server);
|
49
53
|
|
50
|
-
int grpc_server_has_open_connections(grpc_server
|
54
|
+
int grpc_server_has_open_connections(grpc_server* server);
|
51
55
|
|
52
56
|
/* Do not call this before grpc_server_start. Returns the pollsets and the
|
53
57
|
* number of pollsets via 'pollsets' and 'pollset_count'. */
|
54
|
-
void grpc_server_get_pollsets(grpc_server
|
55
|
-
size_t
|
58
|
+
void grpc_server_get_pollsets(grpc_server* server, grpc_pollset*** pollsets,
|
59
|
+
size_t* pollset_count);
|
60
|
+
|
61
|
+
#ifdef __cplusplus
|
62
|
+
}
|
63
|
+
#endif
|
56
64
|
|
57
65
|
#endif /* GRPC_CORE_LIB_SURFACE_SERVER_H */
|
@@ -26,18 +26,19 @@
|
|
26
26
|
#include "src/core/lib/iomgr/error.h"
|
27
27
|
#include "src/core/lib/slice/slice_internal.h"
|
28
28
|
#include "src/core/lib/slice/slice_string_helpers.h"
|
29
|
+
#include "src/core/lib/surface/validate_metadata.h"
|
29
30
|
|
30
|
-
static grpc_error
|
31
|
-
const char
|
32
|
-
const uint8_t
|
33
|
-
const uint8_t
|
31
|
+
static grpc_error* conforms_to(grpc_slice slice, const uint8_t* legal_bits,
|
32
|
+
const char* err_desc) {
|
33
|
+
const uint8_t* p = GRPC_SLICE_START_PTR(slice);
|
34
|
+
const uint8_t* e = GRPC_SLICE_END_PTR(slice);
|
34
35
|
for (; p != e; p++) {
|
35
36
|
int idx = *p;
|
36
37
|
int byte = idx / 8;
|
37
38
|
int bit = idx % 8;
|
38
39
|
if ((legal_bits[byte] & (1 << bit)) == 0) {
|
39
|
-
char
|
40
|
-
grpc_error
|
40
|
+
char* dump = grpc_dump_slice(slice, GPR_DUMP_HEX | GPR_DUMP_ASCII);
|
41
|
+
grpc_error* error = grpc_error_set_str(
|
41
42
|
grpc_error_set_int(GRPC_ERROR_CREATE_FROM_COPIED_STRING(err_desc),
|
42
43
|
GRPC_ERROR_INT_OFFSET,
|
43
44
|
p - GRPC_SLICE_START_PTR(slice)),
|
@@ -49,13 +50,13 @@ static grpc_error *conforms_to(grpc_slice slice, const uint8_t *legal_bits,
|
|
49
50
|
return GRPC_ERROR_NONE;
|
50
51
|
}
|
51
52
|
|
52
|
-
static int error2int(grpc_error
|
53
|
+
static int error2int(grpc_error* error) {
|
53
54
|
int r = (error == GRPC_ERROR_NONE);
|
54
55
|
GRPC_ERROR_UNREF(error);
|
55
56
|
return r;
|
56
57
|
}
|
57
58
|
|
58
|
-
grpc_error
|
59
|
+
grpc_error* grpc_validate_header_key_is_legal(grpc_slice slice) {
|
59
60
|
static const uint8_t legal_header_bits[256 / 8] = {
|
60
61
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xff, 0x03, 0x00, 0x00, 0x00,
|
61
62
|
0x80, 0xfe, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
@@ -75,7 +76,7 @@ int grpc_header_key_is_legal(grpc_slice slice) {
|
|
75
76
|
return error2int(grpc_validate_header_key_is_legal(slice));
|
76
77
|
}
|
77
78
|
|
78
|
-
grpc_error
|
79
|
+
grpc_error* grpc_validate_header_nonbin_value_is_legal(grpc_slice slice) {
|
79
80
|
static const uint8_t legal_header_bits[256 / 8] = {
|
80
81
|
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
81
82
|
0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
@@ -22,7 +22,15 @@
|
|
22
22
|
#include <grpc/slice.h>
|
23
23
|
#include "src/core/lib/iomgr/error.h"
|
24
24
|
|
25
|
-
|
26
|
-
|
25
|
+
#ifdef __cplusplus
|
26
|
+
extern "C" {
|
27
|
+
#endif
|
28
|
+
|
29
|
+
grpc_error* grpc_validate_header_key_is_legal(grpc_slice slice);
|
30
|
+
grpc_error* grpc_validate_header_nonbin_value_is_legal(grpc_slice slice);
|
31
|
+
|
32
|
+
#ifdef __cplusplus
|
33
|
+
}
|
34
|
+
#endif
|
27
35
|
|
28
36
|
#endif /* GRPC_CORE_LIB_SURFACE_VALIDATE_METADATA_H */
|
@@ -21,6 +21,6 @@
|
|
21
21
|
|
22
22
|
#include <grpc/grpc.h>
|
23
23
|
|
24
|
-
const char
|
24
|
+
const char* grpc_version_string(void) { return "5.0.0"; }
|
25
25
|
|
26
|
-
const char
|
26
|
+
const char* grpc_g_stands_for(void) { return "generous"; }
|
@@ -0,0 +1,84 @@
|
|
1
|
+
/*
|
2
|
+
*
|
3
|
+
* Copyright 2016 gRPC authors.
|
4
|
+
*
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
* you may not use this file except in compliance with the License.
|
7
|
+
* You may obtain a copy of the License at
|
8
|
+
*
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
*
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
* See the License for the specific language governing permissions and
|
15
|
+
* limitations under the License.
|
16
|
+
*
|
17
|
+
*/
|
18
|
+
|
19
|
+
#include "src/core/lib/transport/bdp_estimator.h"
|
20
|
+
|
21
|
+
#include <inttypes.h>
|
22
|
+
#include <stdlib.h>
|
23
|
+
|
24
|
+
#include <grpc/support/useful.h>
|
25
|
+
|
26
|
+
grpc_core::TraceFlag grpc_bdp_estimator_trace(false, "bdp_estimator");
|
27
|
+
|
28
|
+
namespace grpc_core {
|
29
|
+
|
30
|
+
BdpEstimator::BdpEstimator(const char* name)
|
31
|
+
: ping_state_(PingState::UNSCHEDULED),
|
32
|
+
accumulator_(0),
|
33
|
+
estimate_(65536),
|
34
|
+
ping_start_time_(gpr_time_0(GPR_CLOCK_MONOTONIC)),
|
35
|
+
inter_ping_delay_(100.0), // start at 100ms
|
36
|
+
stable_estimate_count_(0),
|
37
|
+
bw_est_(0),
|
38
|
+
name_(name) {}
|
39
|
+
|
40
|
+
grpc_millis BdpEstimator::CompletePing(grpc_exec_ctx* exec_ctx) {
|
41
|
+
gpr_timespec now = gpr_now(GPR_CLOCK_MONOTONIC);
|
42
|
+
gpr_timespec dt_ts = gpr_time_sub(now, ping_start_time_);
|
43
|
+
double dt = (double)dt_ts.tv_sec + 1e-9 * (double)dt_ts.tv_nsec;
|
44
|
+
double bw = dt > 0 ? ((double)accumulator_ / dt) : 0;
|
45
|
+
int start_inter_ping_delay = inter_ping_delay_;
|
46
|
+
if (grpc_bdp_estimator_trace.enabled()) {
|
47
|
+
gpr_log(GPR_DEBUG,
|
48
|
+
"bdp[%s]:complete acc=%" PRId64 " est=%" PRId64
|
49
|
+
" dt=%lf bw=%lfMbs bw_est=%lfMbs",
|
50
|
+
name_, accumulator_, estimate_, dt, bw / 125000.0,
|
51
|
+
bw_est_ / 125000.0);
|
52
|
+
}
|
53
|
+
GPR_ASSERT(ping_state_ == PingState::STARTED);
|
54
|
+
if (accumulator_ > 2 * estimate_ / 3 && bw > bw_est_) {
|
55
|
+
estimate_ = GPR_MAX(accumulator_, estimate_ * 2);
|
56
|
+
bw_est_ = bw;
|
57
|
+
if (grpc_bdp_estimator_trace.enabled()) {
|
58
|
+
gpr_log(GPR_DEBUG, "bdp[%s]: estimate increased to %" PRId64, name_,
|
59
|
+
estimate_);
|
60
|
+
}
|
61
|
+
inter_ping_delay_ /= 2; // if the ping estimate changes,
|
62
|
+
// exponentially get faster at probing
|
63
|
+
} else if (inter_ping_delay_ < 10000) {
|
64
|
+
stable_estimate_count_++;
|
65
|
+
if (stable_estimate_count_ >= 2) {
|
66
|
+
inter_ping_delay_ +=
|
67
|
+
100 +
|
68
|
+
(int)(rand() * 100.0 / RAND_MAX); // if the ping estimate is steady,
|
69
|
+
// slowly ramp down the probe time
|
70
|
+
}
|
71
|
+
}
|
72
|
+
if (start_inter_ping_delay != inter_ping_delay_) {
|
73
|
+
stable_estimate_count_ = 0;
|
74
|
+
if (grpc_bdp_estimator_trace.enabled()) {
|
75
|
+
gpr_log(GPR_DEBUG, "bdp[%s]:update_inter_time to %dms", name_,
|
76
|
+
inter_ping_delay_);
|
77
|
+
}
|
78
|
+
}
|
79
|
+
ping_state_ = PingState::UNSCHEDULED;
|
80
|
+
accumulator_ = 0;
|
81
|
+
return grpc_exec_ctx_now(exec_ctx) + inter_ping_delay_;
|
82
|
+
}
|
83
|
+
|
84
|
+
} // namespace grpc_core
|
@@ -19,51 +19,76 @@
|
|
19
19
|
#ifndef GRPC_CORE_LIB_TRANSPORT_BDP_ESTIMATOR_H
|
20
20
|
#define GRPC_CORE_LIB_TRANSPORT_BDP_ESTIMATOR_H
|
21
21
|
|
22
|
-
#include <grpc/support/
|
22
|
+
#include <grpc/support/port_platform.h>
|
23
|
+
|
24
|
+
#include <inttypes.h>
|
23
25
|
#include <stdbool.h>
|
24
26
|
#include <stdint.h>
|
27
|
+
|
28
|
+
#include <grpc/support/log.h>
|
29
|
+
#include <grpc/support/time.h>
|
30
|
+
|
25
31
|
#include "src/core/lib/debug/trace.h"
|
32
|
+
#include "src/core/lib/iomgr/exec_ctx.h"
|
33
|
+
|
34
|
+
extern grpc_core::TraceFlag grpc_bdp_estimator_trace;
|
35
|
+
|
36
|
+
namespace grpc_core {
|
37
|
+
|
38
|
+
class BdpEstimator {
|
39
|
+
public:
|
40
|
+
explicit BdpEstimator(const char* name);
|
41
|
+
~BdpEstimator() {}
|
42
|
+
|
43
|
+
int64_t EstimateBdp() const { return estimate_; }
|
44
|
+
double EstimateBandwidth() const { return bw_est_; }
|
45
|
+
|
46
|
+
void AddIncomingBytes(int64_t num_bytes) { accumulator_ += num_bytes; }
|
47
|
+
|
48
|
+
// Schedule a ping: call in response to receiving a true from
|
49
|
+
// grpc_bdp_estimator_add_incoming_bytes once a ping has been scheduled by a
|
50
|
+
// transport (but not necessarily started)
|
51
|
+
void SchedulePing() {
|
52
|
+
if (grpc_bdp_estimator_trace.enabled()) {
|
53
|
+
gpr_log(GPR_DEBUG, "bdp[%s]:sched acc=%" PRId64 " est=%" PRId64, name_,
|
54
|
+
accumulator_, estimate_);
|
55
|
+
}
|
56
|
+
GPR_ASSERT(ping_state_ == PingState::UNSCHEDULED);
|
57
|
+
ping_state_ = PingState::SCHEDULED;
|
58
|
+
accumulator_ = 0;
|
59
|
+
}
|
60
|
+
|
61
|
+
// Start a ping: call after calling grpc_bdp_estimator_schedule_ping and
|
62
|
+
// once
|
63
|
+
// the ping is on the wire
|
64
|
+
void StartPing() {
|
65
|
+
if (grpc_bdp_estimator_trace.enabled()) {
|
66
|
+
gpr_log(GPR_DEBUG, "bdp[%s]:start acc=%" PRId64 " est=%" PRId64, name_,
|
67
|
+
accumulator_, estimate_);
|
68
|
+
}
|
69
|
+
GPR_ASSERT(ping_state_ == PingState::SCHEDULED);
|
70
|
+
ping_state_ = PingState::STARTED;
|
71
|
+
accumulator_ = 0;
|
72
|
+
ping_start_time_ = gpr_now(GPR_CLOCK_MONOTONIC);
|
73
|
+
}
|
74
|
+
|
75
|
+
// Completes a previously started ping, returns when to schedule the next one
|
76
|
+
grpc_millis CompletePing(grpc_exec_ctx* exec_ctx);
|
77
|
+
|
78
|
+
private:
|
79
|
+
enum class PingState { UNSCHEDULED, SCHEDULED, STARTED };
|
80
|
+
|
81
|
+
PingState ping_state_;
|
82
|
+
int64_t accumulator_;
|
83
|
+
int64_t estimate_;
|
84
|
+
// when was the current ping started?
|
85
|
+
gpr_timespec ping_start_time_;
|
86
|
+
int inter_ping_delay_;
|
87
|
+
int stable_estimate_count_;
|
88
|
+
double bw_est_;
|
89
|
+
const char* name_;
|
90
|
+
};
|
26
91
|
|
27
|
-
|
28
|
-
#define GRPC_BDP_MIN_SAMPLES_FOR_ESTIMATE 3
|
29
|
-
|
30
|
-
extern grpc_tracer_flag grpc_bdp_estimator_trace;
|
31
|
-
|
32
|
-
typedef enum {
|
33
|
-
GRPC_BDP_PING_UNSCHEDULED,
|
34
|
-
GRPC_BDP_PING_SCHEDULED,
|
35
|
-
GRPC_BDP_PING_STARTED
|
36
|
-
} grpc_bdp_estimator_ping_state;
|
37
|
-
|
38
|
-
typedef struct grpc_bdp_estimator {
|
39
|
-
grpc_bdp_estimator_ping_state ping_state;
|
40
|
-
int64_t accumulator;
|
41
|
-
int64_t estimate;
|
42
|
-
gpr_timespec ping_start_time;
|
43
|
-
double bw_est;
|
44
|
-
const char *name;
|
45
|
-
} grpc_bdp_estimator;
|
46
|
-
|
47
|
-
void grpc_bdp_estimator_init(grpc_bdp_estimator *estimator, const char *name);
|
48
|
-
|
49
|
-
// Returns true if a reasonable estimate could be obtained
|
50
|
-
bool grpc_bdp_estimator_get_estimate(const grpc_bdp_estimator *estimator,
|
51
|
-
int64_t *estimate);
|
52
|
-
// Tracks new bytes read.
|
53
|
-
bool grpc_bdp_estimator_get_bw(const grpc_bdp_estimator *estimator, double *bw);
|
54
|
-
// Returns true if the user should schedule a ping
|
55
|
-
void grpc_bdp_estimator_add_incoming_bytes(grpc_bdp_estimator *estimator,
|
56
|
-
int64_t num_bytes);
|
57
|
-
// Returns true if the user should schedule a ping
|
58
|
-
bool grpc_bdp_estimator_need_ping(const grpc_bdp_estimator *estimator);
|
59
|
-
// Schedule a ping: call in response to receiving a true from
|
60
|
-
// grpc_bdp_estimator_add_incoming_bytes once a ping has been scheduled by a
|
61
|
-
// transport (but not necessarily started)
|
62
|
-
void grpc_bdp_estimator_schedule_ping(grpc_bdp_estimator *estimator);
|
63
|
-
// Start a ping: call after calling grpc_bdp_estimator_schedule_ping and once
|
64
|
-
// the ping is on the wire
|
65
|
-
void grpc_bdp_estimator_start_ping(grpc_bdp_estimator *estimator);
|
66
|
-
// Completes a previously started ping
|
67
|
-
void grpc_bdp_estimator_complete_ping(grpc_bdp_estimator *estimator);
|
92
|
+
} // namespace grpc_core
|
68
93
|
|
69
94
|
#endif /* GRPC_CORE_LIB_TRANSPORT_BDP_ESTIMATOR_H */
|
@@ -25,45 +25,45 @@
|
|
25
25
|
|
26
26
|
#include "src/core/lib/slice/slice_internal.h"
|
27
27
|
|
28
|
-
bool grpc_byte_stream_next(grpc_exec_ctx
|
29
|
-
grpc_byte_stream
|
30
|
-
grpc_closure
|
28
|
+
bool grpc_byte_stream_next(grpc_exec_ctx* exec_ctx,
|
29
|
+
grpc_byte_stream* byte_stream, size_t max_size_hint,
|
30
|
+
grpc_closure* on_complete) {
|
31
31
|
return byte_stream->vtable->next(exec_ctx, byte_stream, max_size_hint,
|
32
32
|
on_complete);
|
33
33
|
}
|
34
34
|
|
35
|
-
grpc_error
|
36
|
-
grpc_byte_stream
|
37
|
-
grpc_slice
|
35
|
+
grpc_error* grpc_byte_stream_pull(grpc_exec_ctx* exec_ctx,
|
36
|
+
grpc_byte_stream* byte_stream,
|
37
|
+
grpc_slice* slice) {
|
38
38
|
return byte_stream->vtable->pull(exec_ctx, byte_stream, slice);
|
39
39
|
}
|
40
40
|
|
41
|
-
void grpc_byte_stream_shutdown(grpc_exec_ctx
|
42
|
-
grpc_byte_stream
|
43
|
-
grpc_error
|
41
|
+
void grpc_byte_stream_shutdown(grpc_exec_ctx* exec_ctx,
|
42
|
+
grpc_byte_stream* byte_stream,
|
43
|
+
grpc_error* error) {
|
44
44
|
byte_stream->vtable->shutdown(exec_ctx, byte_stream, error);
|
45
45
|
}
|
46
46
|
|
47
|
-
void grpc_byte_stream_destroy(grpc_exec_ctx
|
48
|
-
grpc_byte_stream
|
47
|
+
void grpc_byte_stream_destroy(grpc_exec_ctx* exec_ctx,
|
48
|
+
grpc_byte_stream* byte_stream) {
|
49
49
|
byte_stream->vtable->destroy(exec_ctx, byte_stream);
|
50
50
|
}
|
51
51
|
|
52
52
|
// grpc_slice_buffer_stream
|
53
53
|
|
54
|
-
static bool slice_buffer_stream_next(grpc_exec_ctx
|
55
|
-
grpc_byte_stream
|
54
|
+
static bool slice_buffer_stream_next(grpc_exec_ctx* exec_ctx,
|
55
|
+
grpc_byte_stream* byte_stream,
|
56
56
|
size_t max_size_hint,
|
57
|
-
grpc_closure
|
58
|
-
grpc_slice_buffer_stream
|
57
|
+
grpc_closure* on_complete) {
|
58
|
+
grpc_slice_buffer_stream* stream = (grpc_slice_buffer_stream*)byte_stream;
|
59
59
|
GPR_ASSERT(stream->cursor < stream->backing_buffer->count);
|
60
60
|
return true;
|
61
61
|
}
|
62
62
|
|
63
|
-
static grpc_error
|
64
|
-
grpc_byte_stream
|
65
|
-
grpc_slice
|
66
|
-
grpc_slice_buffer_stream
|
63
|
+
static grpc_error* slice_buffer_stream_pull(grpc_exec_ctx* exec_ctx,
|
64
|
+
grpc_byte_stream* byte_stream,
|
65
|
+
grpc_slice* slice) {
|
66
|
+
grpc_slice_buffer_stream* stream = (grpc_slice_buffer_stream*)byte_stream;
|
67
67
|
if (stream->shutdown_error != GRPC_ERROR_NONE) {
|
68
68
|
return GRPC_ERROR_REF(stream->shutdown_error);
|
69
69
|
}
|
@@ -74,17 +74,17 @@ static grpc_error *slice_buffer_stream_pull(grpc_exec_ctx *exec_ctx,
|
|
74
74
|
return GRPC_ERROR_NONE;
|
75
75
|
}
|
76
76
|
|
77
|
-
static void slice_buffer_stream_shutdown(grpc_exec_ctx
|
78
|
-
grpc_byte_stream
|
79
|
-
grpc_error
|
80
|
-
grpc_slice_buffer_stream
|
77
|
+
static void slice_buffer_stream_shutdown(grpc_exec_ctx* exec_ctx,
|
78
|
+
grpc_byte_stream* byte_stream,
|
79
|
+
grpc_error* error) {
|
80
|
+
grpc_slice_buffer_stream* stream = (grpc_slice_buffer_stream*)byte_stream;
|
81
81
|
GRPC_ERROR_UNREF(stream->shutdown_error);
|
82
82
|
stream->shutdown_error = error;
|
83
83
|
}
|
84
84
|
|
85
|
-
static void slice_buffer_stream_destroy(grpc_exec_ctx
|
86
|
-
grpc_byte_stream
|
87
|
-
grpc_slice_buffer_stream
|
85
|
+
static void slice_buffer_stream_destroy(grpc_exec_ctx* exec_ctx,
|
86
|
+
grpc_byte_stream* byte_stream) {
|
87
|
+
grpc_slice_buffer_stream* stream = (grpc_slice_buffer_stream*)byte_stream;
|
88
88
|
grpc_slice_buffer_reset_and_unref_internal(exec_ctx, stream->backing_buffer);
|
89
89
|
GRPC_ERROR_UNREF(stream->shutdown_error);
|
90
90
|
}
|
@@ -93,8 +93,8 @@ static const grpc_byte_stream_vtable slice_buffer_stream_vtable = {
|
|
93
93
|
slice_buffer_stream_next, slice_buffer_stream_pull,
|
94
94
|
slice_buffer_stream_shutdown, slice_buffer_stream_destroy};
|
95
95
|
|
96
|
-
void grpc_slice_buffer_stream_init(grpc_slice_buffer_stream
|
97
|
-
grpc_slice_buffer
|
96
|
+
void grpc_slice_buffer_stream_init(grpc_slice_buffer_stream* stream,
|
97
|
+
grpc_slice_buffer* slice_buffer,
|
98
98
|
uint32_t flags) {
|
99
99
|
GPR_ASSERT(slice_buffer->length <= UINT32_MAX);
|
100
100
|
stream->base.length = (uint32_t)slice_buffer->length;
|
@@ -107,33 +107,33 @@ void grpc_slice_buffer_stream_init(grpc_slice_buffer_stream *stream,
|
|
107
107
|
|
108
108
|
// grpc_caching_byte_stream
|
109
109
|
|
110
|
-
void grpc_byte_stream_cache_init(grpc_byte_stream_cache
|
111
|
-
grpc_byte_stream
|
110
|
+
void grpc_byte_stream_cache_init(grpc_byte_stream_cache* cache,
|
111
|
+
grpc_byte_stream* underlying_stream) {
|
112
112
|
cache->underlying_stream = underlying_stream;
|
113
113
|
grpc_slice_buffer_init(&cache->cache_buffer);
|
114
114
|
}
|
115
115
|
|
116
|
-
void grpc_byte_stream_cache_destroy(grpc_exec_ctx
|
117
|
-
grpc_byte_stream_cache
|
116
|
+
void grpc_byte_stream_cache_destroy(grpc_exec_ctx* exec_ctx,
|
117
|
+
grpc_byte_stream_cache* cache) {
|
118
118
|
grpc_byte_stream_destroy(exec_ctx, cache->underlying_stream);
|
119
119
|
grpc_slice_buffer_destroy_internal(exec_ctx, &cache->cache_buffer);
|
120
120
|
}
|
121
121
|
|
122
|
-
static bool caching_byte_stream_next(grpc_exec_ctx
|
123
|
-
grpc_byte_stream
|
122
|
+
static bool caching_byte_stream_next(grpc_exec_ctx* exec_ctx,
|
123
|
+
grpc_byte_stream* byte_stream,
|
124
124
|
size_t max_size_hint,
|
125
|
-
grpc_closure
|
126
|
-
grpc_caching_byte_stream
|
125
|
+
grpc_closure* on_complete) {
|
126
|
+
grpc_caching_byte_stream* stream = (grpc_caching_byte_stream*)byte_stream;
|
127
127
|
if (stream->shutdown_error != GRPC_ERROR_NONE) return true;
|
128
128
|
if (stream->cursor < stream->cache->cache_buffer.count) return true;
|
129
129
|
return grpc_byte_stream_next(exec_ctx, stream->cache->underlying_stream,
|
130
130
|
max_size_hint, on_complete);
|
131
131
|
}
|
132
132
|
|
133
|
-
static grpc_error
|
134
|
-
grpc_byte_stream
|
135
|
-
grpc_slice
|
136
|
-
grpc_caching_byte_stream
|
133
|
+
static grpc_error* caching_byte_stream_pull(grpc_exec_ctx* exec_ctx,
|
134
|
+
grpc_byte_stream* byte_stream,
|
135
|
+
grpc_slice* slice) {
|
136
|
+
grpc_caching_byte_stream* stream = (grpc_caching_byte_stream*)byte_stream;
|
137
137
|
if (stream->shutdown_error != GRPC_ERROR_NONE) {
|
138
138
|
return GRPC_ERROR_REF(stream->shutdown_error);
|
139
139
|
}
|
@@ -143,7 +143,7 @@ static grpc_error *caching_byte_stream_pull(grpc_exec_ctx *exec_ctx,
|
|
143
143
|
++stream->cursor;
|
144
144
|
return GRPC_ERROR_NONE;
|
145
145
|
}
|
146
|
-
grpc_error
|
146
|
+
grpc_error* error =
|
147
147
|
grpc_byte_stream_pull(exec_ctx, stream->cache->underlying_stream, slice);
|
148
148
|
if (error == GRPC_ERROR_NONE) {
|
149
149
|
++stream->cursor;
|
@@ -153,18 +153,18 @@ static grpc_error *caching_byte_stream_pull(grpc_exec_ctx *exec_ctx,
|
|
153
153
|
return error;
|
154
154
|
}
|
155
155
|
|
156
|
-
static void caching_byte_stream_shutdown(grpc_exec_ctx
|
157
|
-
grpc_byte_stream
|
158
|
-
grpc_error
|
159
|
-
grpc_caching_byte_stream
|
156
|
+
static void caching_byte_stream_shutdown(grpc_exec_ctx* exec_ctx,
|
157
|
+
grpc_byte_stream* byte_stream,
|
158
|
+
grpc_error* error) {
|
159
|
+
grpc_caching_byte_stream* stream = (grpc_caching_byte_stream*)byte_stream;
|
160
160
|
GRPC_ERROR_UNREF(stream->shutdown_error);
|
161
161
|
stream->shutdown_error = GRPC_ERROR_REF(error);
|
162
162
|
grpc_byte_stream_shutdown(exec_ctx, stream->cache->underlying_stream, error);
|
163
163
|
}
|
164
164
|
|
165
|
-
static void caching_byte_stream_destroy(grpc_exec_ctx
|
166
|
-
grpc_byte_stream
|
167
|
-
grpc_caching_byte_stream
|
165
|
+
static void caching_byte_stream_destroy(grpc_exec_ctx* exec_ctx,
|
166
|
+
grpc_byte_stream* byte_stream) {
|
167
|
+
grpc_caching_byte_stream* stream = (grpc_caching_byte_stream*)byte_stream;
|
168
168
|
GRPC_ERROR_UNREF(stream->shutdown_error);
|
169
169
|
}
|
170
170
|
|
@@ -172,8 +172,8 @@ static const grpc_byte_stream_vtable caching_byte_stream_vtable = {
|
|
172
172
|
caching_byte_stream_next, caching_byte_stream_pull,
|
173
173
|
caching_byte_stream_shutdown, caching_byte_stream_destroy};
|
174
174
|
|
175
|
-
void grpc_caching_byte_stream_init(grpc_caching_byte_stream
|
176
|
-
grpc_byte_stream_cache
|
175
|
+
void grpc_caching_byte_stream_init(grpc_caching_byte_stream* stream,
|
176
|
+
grpc_byte_stream_cache* cache) {
|
177
177
|
memset(stream, 0, sizeof(*stream));
|
178
178
|
stream->base.length = cache->underlying_stream->length;
|
179
179
|
stream->base.flags = cache->underlying_stream->flags;
|
@@ -182,6 +182,6 @@ void grpc_caching_byte_stream_init(grpc_caching_byte_stream *stream,
|
|
182
182
|
stream->shutdown_error = GRPC_ERROR_NONE;
|
183
183
|
}
|
184
184
|
|
185
|
-
void grpc_caching_byte_stream_reset(grpc_caching_byte_stream
|
185
|
+
void grpc_caching_byte_stream_reset(grpc_caching_byte_stream* stream) {
|
186
186
|
stream->cursor = 0;
|
187
187
|
}
|