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
@@ -26,6 +26,10 @@
|
|
26
26
|
#include "src/core/lib/transport/connectivity_state.h"
|
27
27
|
#include "src/core/lib/transport/metadata.h"
|
28
28
|
|
29
|
+
#ifdef __cplusplus
|
30
|
+
extern "C" {
|
31
|
+
#endif
|
32
|
+
|
29
33
|
// Channel arg containing a grpc_resolved_address to connect to.
|
30
34
|
#define GRPC_ARG_SUBCHANNEL_ADDRESS "grpc.subchannel_address"
|
31
35
|
|
@@ -75,117 +79,121 @@ typedef struct grpc_subchannel_key grpc_subchannel_key;
|
|
75
79
|
#define GRPC_SUBCHANNEL_REF_EXTRA_ARGS
|
76
80
|
#endif
|
77
81
|
|
78
|
-
grpc_subchannel
|
79
|
-
grpc_subchannel
|
80
|
-
grpc_subchannel
|
81
|
-
grpc_subchannel
|
82
|
-
void grpc_subchannel_unref(grpc_exec_ctx
|
83
|
-
grpc_subchannel
|
82
|
+
grpc_subchannel* grpc_subchannel_ref(
|
83
|
+
grpc_subchannel* channel GRPC_SUBCHANNEL_REF_EXTRA_ARGS);
|
84
|
+
grpc_subchannel* grpc_subchannel_ref_from_weak_ref(
|
85
|
+
grpc_subchannel* channel GRPC_SUBCHANNEL_REF_EXTRA_ARGS);
|
86
|
+
void grpc_subchannel_unref(grpc_exec_ctx* exec_ctx,
|
87
|
+
grpc_subchannel* channel
|
84
88
|
GRPC_SUBCHANNEL_REF_EXTRA_ARGS);
|
85
|
-
grpc_subchannel
|
86
|
-
grpc_subchannel
|
87
|
-
void grpc_subchannel_weak_unref(grpc_exec_ctx
|
88
|
-
grpc_subchannel
|
89
|
+
grpc_subchannel* grpc_subchannel_weak_ref(
|
90
|
+
grpc_subchannel* channel GRPC_SUBCHANNEL_REF_EXTRA_ARGS);
|
91
|
+
void grpc_subchannel_weak_unref(grpc_exec_ctx* exec_ctx,
|
92
|
+
grpc_subchannel* channel
|
89
93
|
GRPC_SUBCHANNEL_REF_EXTRA_ARGS);
|
90
|
-
grpc_connected_subchannel
|
91
|
-
grpc_connected_subchannel
|
92
|
-
void grpc_connected_subchannel_unref(grpc_exec_ctx
|
93
|
-
grpc_connected_subchannel
|
94
|
+
grpc_connected_subchannel* grpc_connected_subchannel_ref(
|
95
|
+
grpc_connected_subchannel* channel GRPC_SUBCHANNEL_REF_EXTRA_ARGS);
|
96
|
+
void grpc_connected_subchannel_unref(grpc_exec_ctx* exec_ctx,
|
97
|
+
grpc_connected_subchannel* channel
|
94
98
|
GRPC_SUBCHANNEL_REF_EXTRA_ARGS);
|
95
99
|
void grpc_subchannel_call_ref(
|
96
|
-
grpc_subchannel_call
|
97
|
-
void grpc_subchannel_call_unref(grpc_exec_ctx
|
98
|
-
grpc_subchannel_call
|
100
|
+
grpc_subchannel_call* call GRPC_SUBCHANNEL_REF_EXTRA_ARGS);
|
101
|
+
void grpc_subchannel_call_unref(grpc_exec_ctx* exec_ctx,
|
102
|
+
grpc_subchannel_call* call
|
99
103
|
GRPC_SUBCHANNEL_REF_EXTRA_ARGS);
|
100
104
|
|
101
105
|
/** construct a subchannel call */
|
102
106
|
typedef struct {
|
103
|
-
grpc_polling_entity
|
107
|
+
grpc_polling_entity* pollent;
|
104
108
|
grpc_slice path;
|
105
109
|
gpr_timespec start_time;
|
106
|
-
|
107
|
-
gpr_arena
|
108
|
-
grpc_call_context_element
|
109
|
-
grpc_call_combiner
|
110
|
+
grpc_millis deadline;
|
111
|
+
gpr_arena* arena;
|
112
|
+
grpc_call_context_element* context;
|
113
|
+
grpc_call_combiner* call_combiner;
|
110
114
|
} grpc_connected_subchannel_call_args;
|
111
115
|
|
112
|
-
grpc_error
|
113
|
-
grpc_exec_ctx
|
114
|
-
const grpc_connected_subchannel_call_args
|
115
|
-
grpc_subchannel_call
|
116
|
+
grpc_error* grpc_connected_subchannel_create_call(
|
117
|
+
grpc_exec_ctx* exec_ctx, grpc_connected_subchannel* connected_subchannel,
|
118
|
+
const grpc_connected_subchannel_call_args* args,
|
119
|
+
grpc_subchannel_call** subchannel_call);
|
116
120
|
|
117
121
|
/** process a transport level op */
|
118
122
|
void grpc_connected_subchannel_process_transport_op(
|
119
|
-
grpc_exec_ctx
|
120
|
-
grpc_transport_op
|
123
|
+
grpc_exec_ctx* exec_ctx, grpc_connected_subchannel* subchannel,
|
124
|
+
grpc_transport_op* op);
|
121
125
|
|
122
126
|
/** poll the current connectivity state of a channel */
|
123
127
|
grpc_connectivity_state grpc_subchannel_check_connectivity(
|
124
|
-
grpc_subchannel
|
128
|
+
grpc_subchannel* channel, grpc_error** error);
|
125
129
|
|
126
|
-
/**
|
127
|
-
Updates *state with the new state of the channel */
|
130
|
+
/** Calls notify when the connectivity state of a channel becomes different
|
131
|
+
from *state. Updates *state with the new state of the channel. */
|
128
132
|
void grpc_subchannel_notify_on_state_change(
|
129
|
-
grpc_exec_ctx
|
130
|
-
grpc_pollset_set
|
131
|
-
grpc_closure
|
133
|
+
grpc_exec_ctx* exec_ctx, grpc_subchannel* channel,
|
134
|
+
grpc_pollset_set* interested_parties, grpc_connectivity_state* state,
|
135
|
+
grpc_closure* notify);
|
132
136
|
void grpc_connected_subchannel_notify_on_state_change(
|
133
|
-
grpc_exec_ctx
|
134
|
-
grpc_pollset_set
|
135
|
-
grpc_closure
|
136
|
-
void grpc_connected_subchannel_ping(grpc_exec_ctx
|
137
|
-
grpc_connected_subchannel
|
138
|
-
grpc_closure
|
137
|
+
grpc_exec_ctx* exec_ctx, grpc_connected_subchannel* channel,
|
138
|
+
grpc_pollset_set* interested_parties, grpc_connectivity_state* state,
|
139
|
+
grpc_closure* notify);
|
140
|
+
void grpc_connected_subchannel_ping(grpc_exec_ctx* exec_ctx,
|
141
|
+
grpc_connected_subchannel* channel,
|
142
|
+
grpc_closure* notify);
|
139
143
|
|
140
144
|
/** retrieve the grpc_connected_subchannel - or NULL if called before
|
141
145
|
the subchannel becomes connected */
|
142
|
-
grpc_connected_subchannel
|
143
|
-
grpc_subchannel
|
146
|
+
grpc_connected_subchannel* grpc_subchannel_get_connected_subchannel(
|
147
|
+
grpc_subchannel* subchannel);
|
144
148
|
|
145
149
|
/** return the subchannel index key for \a subchannel */
|
146
|
-
const grpc_subchannel_key
|
147
|
-
const grpc_subchannel
|
150
|
+
const grpc_subchannel_key* grpc_subchannel_get_key(
|
151
|
+
const grpc_subchannel* subchannel);
|
148
152
|
|
149
153
|
/** continue processing a transport op */
|
150
|
-
void grpc_subchannel_call_process_op(grpc_exec_ctx
|
151
|
-
grpc_subchannel_call
|
152
|
-
grpc_transport_stream_op_batch
|
154
|
+
void grpc_subchannel_call_process_op(grpc_exec_ctx* exec_ctx,
|
155
|
+
grpc_subchannel_call* subchannel_call,
|
156
|
+
grpc_transport_stream_op_batch* op);
|
153
157
|
|
154
158
|
/** Must be called once per call. Sets the 'then_schedule_closure' argument for
|
155
159
|
call stack destruction. */
|
156
160
|
void grpc_subchannel_call_set_cleanup_closure(
|
157
|
-
grpc_subchannel_call
|
161
|
+
grpc_subchannel_call* subchannel_call, grpc_closure* closure);
|
158
162
|
|
159
|
-
grpc_call_stack
|
160
|
-
grpc_subchannel_call
|
163
|
+
grpc_call_stack* grpc_subchannel_call_get_call_stack(
|
164
|
+
grpc_subchannel_call* subchannel_call);
|
161
165
|
|
162
166
|
struct grpc_subchannel_args {
|
163
167
|
/* When updating this struct, also update subchannel_index.c */
|
164
168
|
|
165
169
|
/** Channel filters for this channel - wrapped factories will likely
|
166
170
|
want to mutate this */
|
167
|
-
const grpc_channel_filter
|
171
|
+
const grpc_channel_filter** filters;
|
168
172
|
/** The number of filters in the above array */
|
169
173
|
size_t filter_count;
|
170
174
|
/** Channel arguments to be supplied to the newly created channel */
|
171
|
-
const grpc_channel_args
|
175
|
+
const grpc_channel_args* args;
|
172
176
|
};
|
173
177
|
|
174
178
|
/** create a subchannel given a connector */
|
175
|
-
grpc_subchannel
|
176
|
-
grpc_connector
|
177
|
-
const grpc_subchannel_args
|
179
|
+
grpc_subchannel* grpc_subchannel_create(grpc_exec_ctx* exec_ctx,
|
180
|
+
grpc_connector* connector,
|
181
|
+
const grpc_subchannel_args* args);
|
178
182
|
|
179
183
|
/// Sets \a addr from \a args.
|
180
|
-
void grpc_get_subchannel_address_arg(grpc_exec_ctx
|
181
|
-
const grpc_channel_args
|
182
|
-
grpc_resolved_address
|
184
|
+
void grpc_get_subchannel_address_arg(grpc_exec_ctx* exec_ctx,
|
185
|
+
const grpc_channel_args* args,
|
186
|
+
grpc_resolved_address* addr);
|
183
187
|
|
184
188
|
/// Returns the URI string for the address to connect to.
|
185
|
-
const char
|
189
|
+
const char* grpc_get_subchannel_address_uri_arg(const grpc_channel_args* args);
|
186
190
|
|
187
191
|
/// Returns a new channel arg encoding the subchannel address as a string.
|
188
192
|
/// Caller is responsible for freeing the string.
|
189
|
-
grpc_arg grpc_create_subchannel_address_arg(const grpc_resolved_address
|
193
|
+
grpc_arg grpc_create_subchannel_address_arg(const grpc_resolved_address* addr);
|
194
|
+
|
195
|
+
#ifdef __cplusplus
|
196
|
+
}
|
197
|
+
#endif
|
190
198
|
|
191
199
|
#endif /* GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_SUBCHANNEL_H */
|
@@ -42,34 +42,34 @@ struct grpc_subchannel_key {
|
|
42
42
|
|
43
43
|
static bool g_force_creation = false;
|
44
44
|
|
45
|
-
static grpc_subchannel_key
|
46
|
-
const grpc_subchannel_args
|
47
|
-
grpc_channel_args
|
48
|
-
grpc_subchannel_key
|
45
|
+
static grpc_subchannel_key* create_key(
|
46
|
+
const grpc_subchannel_args* args,
|
47
|
+
grpc_channel_args* (*copy_channel_args)(const grpc_channel_args* args)) {
|
48
|
+
grpc_subchannel_key* k = (grpc_subchannel_key*)gpr_malloc(sizeof(*k));
|
49
49
|
k->args.filter_count = args->filter_count;
|
50
50
|
if (k->args.filter_count > 0) {
|
51
|
-
k->args.filters = (const grpc_channel_filter
|
51
|
+
k->args.filters = (const grpc_channel_filter**)gpr_malloc(
|
52
52
|
sizeof(*k->args.filters) * k->args.filter_count);
|
53
|
-
memcpy((grpc_channel_filter
|
53
|
+
memcpy((grpc_channel_filter*)k->args.filters, args->filters,
|
54
54
|
sizeof(*k->args.filters) * k->args.filter_count);
|
55
55
|
} else {
|
56
|
-
k->args.filters =
|
56
|
+
k->args.filters = nullptr;
|
57
57
|
}
|
58
58
|
k->args.args = copy_channel_args(args->args);
|
59
59
|
return k;
|
60
60
|
}
|
61
61
|
|
62
|
-
grpc_subchannel_key
|
63
|
-
const grpc_subchannel_args
|
62
|
+
grpc_subchannel_key* grpc_subchannel_key_create(
|
63
|
+
const grpc_subchannel_args* args) {
|
64
64
|
return create_key(args, grpc_channel_args_normalize);
|
65
65
|
}
|
66
66
|
|
67
|
-
static grpc_subchannel_key
|
67
|
+
static grpc_subchannel_key* subchannel_key_copy(grpc_subchannel_key* k) {
|
68
68
|
return create_key(&k->args, grpc_channel_args_copy);
|
69
69
|
}
|
70
70
|
|
71
|
-
int grpc_subchannel_key_compare(const grpc_subchannel_key
|
72
|
-
const grpc_subchannel_key
|
71
|
+
int grpc_subchannel_key_compare(const grpc_subchannel_key* a,
|
72
|
+
const grpc_subchannel_key* b) {
|
73
73
|
if (g_force_creation) return false;
|
74
74
|
int c = GPR_ICMP(a->args.filter_count, b->args.filter_count);
|
75
75
|
if (c != 0) return c;
|
@@ -81,44 +81,44 @@ int grpc_subchannel_key_compare(const grpc_subchannel_key *a,
|
|
81
81
|
return grpc_channel_args_compare(a->args.args, b->args.args);
|
82
82
|
}
|
83
83
|
|
84
|
-
void grpc_subchannel_key_destroy(grpc_exec_ctx
|
85
|
-
grpc_subchannel_key
|
86
|
-
gpr_free((grpc_channel_args
|
87
|
-
grpc_channel_args_destroy(exec_ctx, (grpc_channel_args
|
84
|
+
void grpc_subchannel_key_destroy(grpc_exec_ctx* exec_ctx,
|
85
|
+
grpc_subchannel_key* k) {
|
86
|
+
gpr_free((grpc_channel_args*)k->args.filters);
|
87
|
+
grpc_channel_args_destroy(exec_ctx, (grpc_channel_args*)k->args.args);
|
88
88
|
gpr_free(k);
|
89
89
|
}
|
90
90
|
|
91
|
-
static void sck_avl_destroy(void
|
92
|
-
grpc_exec_ctx
|
93
|
-
grpc_subchannel_key_destroy(exec_ctx, (grpc_subchannel_key
|
91
|
+
static void sck_avl_destroy(void* p, void* user_data) {
|
92
|
+
grpc_exec_ctx* exec_ctx = (grpc_exec_ctx*)user_data;
|
93
|
+
grpc_subchannel_key_destroy(exec_ctx, (grpc_subchannel_key*)p);
|
94
94
|
}
|
95
95
|
|
96
|
-
static void
|
97
|
-
return subchannel_key_copy((grpc_subchannel_key
|
96
|
+
static void* sck_avl_copy(void* p, void* unused) {
|
97
|
+
return subchannel_key_copy((grpc_subchannel_key*)p);
|
98
98
|
}
|
99
99
|
|
100
|
-
static long sck_avl_compare(void
|
101
|
-
return grpc_subchannel_key_compare((grpc_subchannel_key
|
102
|
-
(grpc_subchannel_key
|
100
|
+
static long sck_avl_compare(void* a, void* b, void* unused) {
|
101
|
+
return grpc_subchannel_key_compare((grpc_subchannel_key*)a,
|
102
|
+
(grpc_subchannel_key*)b);
|
103
103
|
}
|
104
104
|
|
105
|
-
static void scv_avl_destroy(void
|
106
|
-
grpc_exec_ctx
|
107
|
-
GRPC_SUBCHANNEL_WEAK_UNREF(exec_ctx, (grpc_subchannel
|
108
|
-
"subchannel_index");
|
105
|
+
static void scv_avl_destroy(void* p, void* user_data) {
|
106
|
+
grpc_exec_ctx* exec_ctx = (grpc_exec_ctx*)user_data;
|
107
|
+
GRPC_SUBCHANNEL_WEAK_UNREF(exec_ctx, (grpc_subchannel*)p, "subchannel_index");
|
109
108
|
}
|
110
109
|
|
111
|
-
static void
|
112
|
-
GRPC_SUBCHANNEL_WEAK_REF((grpc_subchannel
|
110
|
+
static void* scv_avl_copy(void* p, void* unused) {
|
111
|
+
GRPC_SUBCHANNEL_WEAK_REF((grpc_subchannel*)p, "subchannel_index");
|
113
112
|
return p;
|
114
113
|
}
|
115
114
|
|
116
115
|
static const gpr_avl_vtable subchannel_avl_vtable = {
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
116
|
+
sck_avl_destroy, // destroy_key
|
117
|
+
sck_avl_copy, // copy_key
|
118
|
+
sck_avl_compare, // compare_keys
|
119
|
+
scv_avl_destroy, // destroy_value
|
120
|
+
scv_avl_copy // copy_value
|
121
|
+
};
|
122
122
|
|
123
123
|
void grpc_subchannel_index_init(void) {
|
124
124
|
g_subchannel_index = gpr_avl_create(&subchannel_avl_vtable);
|
@@ -144,28 +144,28 @@ void grpc_subchannel_index_unref(void) {
|
|
144
144
|
|
145
145
|
void grpc_subchannel_index_ref(void) { gpr_ref_non_zero(&g_refcount); }
|
146
146
|
|
147
|
-
grpc_subchannel
|
148
|
-
grpc_subchannel_key
|
147
|
+
grpc_subchannel* grpc_subchannel_index_find(grpc_exec_ctx* exec_ctx,
|
148
|
+
grpc_subchannel_key* key) {
|
149
149
|
// Lock, and take a reference to the subchannel index.
|
150
150
|
// We don't need to do the search under a lock as avl's are immutable.
|
151
151
|
gpr_mu_lock(&g_mu);
|
152
152
|
gpr_avl index = gpr_avl_ref(g_subchannel_index, exec_ctx);
|
153
153
|
gpr_mu_unlock(&g_mu);
|
154
154
|
|
155
|
-
grpc_subchannel
|
156
|
-
(grpc_subchannel
|
155
|
+
grpc_subchannel* c = GRPC_SUBCHANNEL_REF_FROM_WEAK_REF(
|
156
|
+
(grpc_subchannel*)gpr_avl_get(index, key, exec_ctx), "index_find");
|
157
157
|
gpr_avl_unref(index, exec_ctx);
|
158
158
|
|
159
159
|
return c;
|
160
160
|
}
|
161
161
|
|
162
|
-
grpc_subchannel
|
163
|
-
grpc_subchannel_key
|
164
|
-
grpc_subchannel
|
165
|
-
grpc_subchannel
|
166
|
-
bool need_to_unref_constructed;
|
162
|
+
grpc_subchannel* grpc_subchannel_index_register(grpc_exec_ctx* exec_ctx,
|
163
|
+
grpc_subchannel_key* key,
|
164
|
+
grpc_subchannel* constructed) {
|
165
|
+
grpc_subchannel* c = nullptr;
|
166
|
+
bool need_to_unref_constructed = false;
|
167
167
|
|
168
|
-
while (c ==
|
168
|
+
while (c == nullptr) {
|
169
169
|
need_to_unref_constructed = false;
|
170
170
|
|
171
171
|
// Compare and swap loop:
|
@@ -175,11 +175,11 @@ grpc_subchannel *grpc_subchannel_index_register(grpc_exec_ctx *exec_ctx,
|
|
175
175
|
gpr_mu_unlock(&g_mu);
|
176
176
|
|
177
177
|
// - Check to see if a subchannel already exists
|
178
|
-
c = (grpc_subchannel
|
179
|
-
if (c !=
|
178
|
+
c = (grpc_subchannel*)gpr_avl_get(index, key, exec_ctx);
|
179
|
+
if (c != nullptr) {
|
180
180
|
c = GRPC_SUBCHANNEL_REF_FROM_WEAK_REF(c, "index_register");
|
181
181
|
}
|
182
|
-
if (c !=
|
182
|
+
if (c != nullptr) {
|
183
183
|
// yes -> we're done
|
184
184
|
need_to_unref_constructed = true;
|
185
185
|
} else {
|
@@ -210,9 +210,9 @@ grpc_subchannel *grpc_subchannel_index_register(grpc_exec_ctx *exec_ctx,
|
|
210
210
|
return c;
|
211
211
|
}
|
212
212
|
|
213
|
-
void grpc_subchannel_index_unregister(grpc_exec_ctx
|
214
|
-
grpc_subchannel_key
|
215
|
-
grpc_subchannel
|
213
|
+
void grpc_subchannel_index_unregister(grpc_exec_ctx* exec_ctx,
|
214
|
+
grpc_subchannel_key* key,
|
215
|
+
grpc_subchannel* constructed) {
|
216
216
|
bool done = false;
|
217
217
|
while (!done) {
|
218
218
|
// Compare and swap loop:
|
@@ -223,7 +223,7 @@ void grpc_subchannel_index_unregister(grpc_exec_ctx *exec_ctx,
|
|
223
223
|
|
224
224
|
// Check to see if this key still refers to the previously
|
225
225
|
// registered subchannel
|
226
|
-
grpc_subchannel
|
226
|
+
grpc_subchannel* c = (grpc_subchannel*)gpr_avl_get(index, key, exec_ctx);
|
227
227
|
if (c != constructed) {
|
228
228
|
gpr_avl_unref(index, exec_ctx);
|
229
229
|
break;
|
@@ -21,38 +21,42 @@
|
|
21
21
|
|
22
22
|
#include "src/core/ext/filters/client_channel/subchannel.h"
|
23
23
|
|
24
|
+
#ifdef __cplusplus
|
25
|
+
extern "C" {
|
26
|
+
#endif
|
27
|
+
|
24
28
|
/** \file Provides an index of active subchannels so that they can be
|
25
29
|
shared amongst channels */
|
26
30
|
|
27
31
|
/** Create a key that can be used to uniquely identify a subchannel */
|
28
|
-
grpc_subchannel_key
|
29
|
-
const grpc_subchannel_args
|
32
|
+
grpc_subchannel_key* grpc_subchannel_key_create(
|
33
|
+
const grpc_subchannel_args* args);
|
30
34
|
|
31
35
|
/** Destroy a subchannel key */
|
32
|
-
void grpc_subchannel_key_destroy(grpc_exec_ctx
|
33
|
-
grpc_subchannel_key
|
36
|
+
void grpc_subchannel_key_destroy(grpc_exec_ctx* exec_ctx,
|
37
|
+
grpc_subchannel_key* key);
|
34
38
|
|
35
39
|
/** Given a subchannel key, find the subchannel registered for it.
|
36
40
|
Returns NULL if no such channel exists.
|
37
41
|
Thread-safe. */
|
38
|
-
grpc_subchannel
|
39
|
-
grpc_subchannel_key
|
42
|
+
grpc_subchannel* grpc_subchannel_index_find(grpc_exec_ctx* exec_ctx,
|
43
|
+
grpc_subchannel_key* key);
|
40
44
|
|
41
45
|
/** Register a subchannel against a key.
|
42
46
|
Takes ownership of \a constructed.
|
43
47
|
Returns the registered subchannel. This may be different from
|
44
48
|
\a constructed in the case of a registration race. */
|
45
|
-
grpc_subchannel
|
46
|
-
grpc_subchannel_key
|
47
|
-
grpc_subchannel
|
49
|
+
grpc_subchannel* grpc_subchannel_index_register(grpc_exec_ctx* exec_ctx,
|
50
|
+
grpc_subchannel_key* key,
|
51
|
+
grpc_subchannel* constructed);
|
48
52
|
|
49
53
|
/** Remove \a constructed as the registered subchannel for \a key. */
|
50
|
-
void grpc_subchannel_index_unregister(grpc_exec_ctx
|
51
|
-
grpc_subchannel_key
|
52
|
-
grpc_subchannel
|
54
|
+
void grpc_subchannel_index_unregister(grpc_exec_ctx* exec_ctx,
|
55
|
+
grpc_subchannel_key* key,
|
56
|
+
grpc_subchannel* constructed);
|
53
57
|
|
54
|
-
int grpc_subchannel_key_compare(const grpc_subchannel_key
|
55
|
-
const grpc_subchannel_key
|
58
|
+
int grpc_subchannel_key_compare(const grpc_subchannel_key* a,
|
59
|
+
const grpc_subchannel_key* b);
|
56
60
|
|
57
61
|
/** Initialize the subchannel index (global) */
|
58
62
|
void grpc_subchannel_index_init(void);
|
@@ -78,4 +82,8 @@ void grpc_subchannel_index_unref(void);
|
|
78
82
|
* force_creation set. */
|
79
83
|
void grpc_subchannel_index_test_only_set_force_creation(bool force_creation);
|
80
84
|
|
85
|
+
#ifdef __cplusplus
|
86
|
+
}
|
87
|
+
#endif
|
88
|
+
|
81
89
|
#endif /* GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_SUBCHANNEL_INDEX_H */
|
@@ -34,9 +34,9 @@
|
|
34
34
|
/** a size_t default value... maps to all 1's */
|
35
35
|
#define NOT_SET (~(size_t)0)
|
36
36
|
|
37
|
-
static grpc_uri
|
37
|
+
static grpc_uri* bad_uri(const char* uri_text, size_t pos, const char* section,
|
38
38
|
bool suppress_errors) {
|
39
|
-
char
|
39
|
+
char* line_prefix;
|
40
40
|
size_t pfx_len;
|
41
41
|
|
42
42
|
if (!suppress_errors) {
|
@@ -45,24 +45,26 @@ static grpc_uri *bad_uri(const char *uri_text, size_t pos, const char *section,
|
|
45
45
|
gpr_log(GPR_ERROR, "%s%s'", line_prefix, uri_text);
|
46
46
|
gpr_free(line_prefix);
|
47
47
|
|
48
|
-
line_prefix = (char
|
48
|
+
line_prefix = (char*)gpr_malloc(pfx_len + 1);
|
49
49
|
memset(line_prefix, ' ', pfx_len);
|
50
50
|
line_prefix[pfx_len] = 0;
|
51
51
|
gpr_log(GPR_ERROR, "%s^ here", line_prefix);
|
52
52
|
gpr_free(line_prefix);
|
53
53
|
}
|
54
54
|
|
55
|
-
return
|
55
|
+
return nullptr;
|
56
56
|
}
|
57
57
|
|
58
58
|
/** Returns a copy of percent decoded \a src[begin, end) */
|
59
|
-
static char
|
59
|
+
static char* decode_and_copy_component(grpc_exec_ctx* exec_ctx, const char* src,
|
60
60
|
size_t begin, size_t end) {
|
61
61
|
grpc_slice component =
|
62
|
-
|
62
|
+
(begin == NOT_SET || end == NOT_SET)
|
63
|
+
? grpc_empty_slice()
|
64
|
+
: grpc_slice_from_copied_buffer(src + begin, end - begin);
|
63
65
|
grpc_slice decoded_component =
|
64
66
|
grpc_permissive_percent_decode_slice(component);
|
65
|
-
char
|
67
|
+
char* out = grpc_dump_slice(decoded_component, GPR_DUMP_ASCII);
|
66
68
|
grpc_slice_unref_internal(exec_ctx, component);
|
67
69
|
grpc_slice_unref_internal(exec_ctx, decoded_component);
|
68
70
|
return out;
|
@@ -76,7 +78,7 @@ static bool valid_hex(char c) {
|
|
76
78
|
/** Returns how many chars to advance if \a uri_text[i] begins a valid \a pchar
|
77
79
|
* production. If \a uri_text[i] introduces an invalid \a pchar (such as percent
|
78
80
|
* sign not followed by two hex digits), NOT_SET is returned. */
|
79
|
-
static size_t parse_pchar(const char
|
81
|
+
static size_t parse_pchar(const char* uri_text, size_t i) {
|
80
82
|
/* pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
|
81
83
|
* unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
|
82
84
|
* pct-encoded = "%" HEXDIG HEXDIG
|
@@ -118,7 +120,7 @@ static size_t parse_pchar(const char *uri_text, size_t i) {
|
|
118
120
|
}
|
119
121
|
|
120
122
|
/* *( pchar / "?" / "/" ) */
|
121
|
-
static int parse_fragment_or_query(const char
|
123
|
+
static int parse_fragment_or_query(const char* uri_text, size_t* i) {
|
122
124
|
char c;
|
123
125
|
while ((c = uri_text[*i]) != 0) {
|
124
126
|
const size_t advance = parse_pchar(uri_text, *i); /* pchar */
|
@@ -143,13 +145,13 @@ static int parse_fragment_or_query(const char *uri_text, size_t *i) {
|
|
143
145
|
return 1;
|
144
146
|
}
|
145
147
|
|
146
|
-
static void parse_query_parts(grpc_uri
|
147
|
-
static const char
|
148
|
-
static const char
|
149
|
-
GPR_ASSERT(uri->query !=
|
148
|
+
static void parse_query_parts(grpc_uri* uri) {
|
149
|
+
static const char* QUERY_PARTS_SEPARATOR = "&";
|
150
|
+
static const char* QUERY_PARTS_VALUE_SEPARATOR = "=";
|
151
|
+
GPR_ASSERT(uri->query != nullptr);
|
150
152
|
if (uri->query[0] == '\0') {
|
151
|
-
uri->query_parts =
|
152
|
-
uri->query_parts_values =
|
153
|
+
uri->query_parts = nullptr;
|
154
|
+
uri->query_parts_values = nullptr;
|
153
155
|
uri->num_query_parts = 0;
|
154
156
|
return;
|
155
157
|
}
|
@@ -157,11 +159,11 @@ static void parse_query_parts(grpc_uri *uri) {
|
|
157
159
|
gpr_string_split(uri->query, QUERY_PARTS_SEPARATOR, &uri->query_parts,
|
158
160
|
&uri->num_query_parts);
|
159
161
|
uri->query_parts_values =
|
160
|
-
(char
|
162
|
+
(char**)gpr_malloc(uri->num_query_parts * sizeof(char**));
|
161
163
|
for (size_t i = 0; i < uri->num_query_parts; i++) {
|
162
|
-
char
|
164
|
+
char** query_param_parts;
|
163
165
|
size_t num_query_param_parts;
|
164
|
-
char
|
166
|
+
char* full = uri->query_parts[i];
|
165
167
|
gpr_string_split(full, QUERY_PARTS_VALUE_SEPARATOR, &query_param_parts,
|
166
168
|
&num_query_param_parts);
|
167
169
|
GPR_ASSERT(num_query_param_parts > 0);
|
@@ -172,7 +174,7 @@ static void parse_query_parts(grpc_uri *uri) {
|
|
172
174
|
* be included, even if they include the separator. */
|
173
175
|
uri->query_parts_values[i] = query_param_parts[1];
|
174
176
|
} else {
|
175
|
-
uri->query_parts_values[i] =
|
177
|
+
uri->query_parts_values[i] = nullptr;
|
176
178
|
}
|
177
179
|
for (size_t j = 2; j < num_query_param_parts; j++) {
|
178
180
|
gpr_free(query_param_parts[j]);
|
@@ -182,9 +184,9 @@ static void parse_query_parts(grpc_uri *uri) {
|
|
182
184
|
}
|
183
185
|
}
|
184
186
|
|
185
|
-
grpc_uri
|
187
|
+
grpc_uri* grpc_uri_parse(grpc_exec_ctx* exec_ctx, const char* uri_text,
|
186
188
|
bool suppress_errors) {
|
187
|
-
grpc_uri
|
189
|
+
grpc_uri* uri;
|
188
190
|
size_t scheme_begin = 0;
|
189
191
|
size_t scheme_end = NOT_SET;
|
190
192
|
size_t authority_begin = NOT_SET;
|
@@ -270,7 +272,7 @@ grpc_uri *grpc_uri_parse(grpc_exec_ctx *exec_ctx, const char *uri_text,
|
|
270
272
|
fragment_end = i;
|
271
273
|
}
|
272
274
|
|
273
|
-
uri = (grpc_uri
|
275
|
+
uri = (grpc_uri*)gpr_zalloc(sizeof(*uri));
|
274
276
|
uri->scheme =
|
275
277
|
decode_and_copy_component(exec_ctx, uri_text, scheme_begin, scheme_end);
|
276
278
|
uri->authority = decode_and_copy_component(exec_ctx, uri_text,
|
@@ -286,19 +288,19 @@ grpc_uri *grpc_uri_parse(grpc_exec_ctx *exec_ctx, const char *uri_text,
|
|
286
288
|
return uri;
|
287
289
|
}
|
288
290
|
|
289
|
-
const char
|
290
|
-
GPR_ASSERT(key !=
|
291
|
-
if (key[0] == '\0') return
|
291
|
+
const char* grpc_uri_get_query_arg(const grpc_uri* uri, const char* key) {
|
292
|
+
GPR_ASSERT(key != nullptr);
|
293
|
+
if (key[0] == '\0') return nullptr;
|
292
294
|
|
293
295
|
for (size_t i = 0; i < uri->num_query_parts; ++i) {
|
294
296
|
if (0 == strcmp(key, uri->query_parts[i])) {
|
295
297
|
return uri->query_parts_values[i];
|
296
298
|
}
|
297
299
|
}
|
298
|
-
return
|
300
|
+
return nullptr;
|
299
301
|
}
|
300
302
|
|
301
|
-
void grpc_uri_destroy(grpc_uri
|
303
|
+
void grpc_uri_destroy(grpc_uri* uri) {
|
302
304
|
if (!uri) return;
|
303
305
|
gpr_free(uri->scheme);
|
304
306
|
gpr_free(uri->authority);
|