grpc 1.8.7 → 1.9.0.pre1
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 +549 -325
- data/include/grpc/impl/codegen/grpc_types.h +1 -2
- data/include/grpc/impl/codegen/port_platform.h +46 -5
- data/include/grpc/impl/codegen/slice.h +1 -2
- data/include/grpc/module.modulemap +0 -2
- data/include/grpc/slice_buffer.h +1 -2
- data/include/grpc/support/log.h +4 -2
- data/include/grpc/support/thd.h +4 -1
- data/include/grpc/support/tls.h +6 -0
- data/include/grpc/support/tls_gcc.h +5 -40
- data/include/grpc/support/tls_msvc.h +9 -0
- data/include/grpc/support/tls_pthread.h +9 -0
- data/src/core/ext/filters/client_channel/backup_poller.cc +32 -29
- data/src/core/ext/filters/client_channel/backup_poller.h +2 -2
- data/src/core/ext/filters/client_channel/channel_connectivity.cc +26 -32
- data/src/core/ext/filters/client_channel/client_channel.cc +325 -356
- data/src/core/ext/filters/client_channel/client_channel.h +4 -12
- data/src/core/ext/filters/client_channel/client_channel_factory.cc +9 -14
- data/src/core/ext/filters/client_channel/client_channel_factory.h +7 -20
- data/src/core/ext/filters/client_channel/client_channel_plugin.cc +7 -10
- data/src/core/ext/filters/client_channel/connector.cc +6 -7
- data/src/core/ext/filters/client_channel/connector.h +6 -16
- data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +38 -50
- data/src/core/ext/filters/client_channel/http_connect_handshaker.h +0 -8
- data/src/core/ext/filters/client_channel/http_proxy.cc +9 -13
- data/src/core/ext/filters/client_channel/http_proxy.h +0 -8
- data/src/core/ext/filters/client_channel/lb_policy.cc +72 -94
- data/src/core/ext/filters/client_channel/lb_policy.h +83 -92
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +14 -19
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +0 -8
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +474 -591
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +0 -8
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +2 -10
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +6 -6
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +0 -8
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +0 -9
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +0 -9
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c +3 -4
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h +9 -12
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +160 -182
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +182 -221
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.cc +24 -35
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +9 -20
- data/src/core/ext/filters/client_channel/lb_policy_factory.cc +6 -9
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +4 -15
- data/src/core/ext/filters/client_channel/lb_policy_registry.cc +3 -3
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -9
- data/src/core/ext/filters/client_channel/parse_address.cc +1 -1
- data/src/core/ext/filters/client_channel/parse_address.h +0 -8
- data/src/core/ext/filters/client_channel/proxy_mapper.cc +6 -8
- data/src/core/ext/filters/client_channel/proxy_mapper.h +6 -16
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +13 -17
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +2 -12
- data/src/core/ext/filters/client_channel/resolver.cc +11 -13
- data/src/core/ext/filters/client_channel/resolver.h +14 -25
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +57 -70
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +2 -12
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +23 -31
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +27 -45
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +5 -15
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +9 -11
- data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +53 -66
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +25 -33
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +1 -9
- data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +26 -35
- data/src/core/ext/filters/client_channel/resolver_factory.cc +2 -3
- data/src/core/ext/filters/client_channel/resolver_factory.h +2 -12
- data/src/core/ext/filters/client_channel/resolver_registry.cc +12 -15
- data/src/core/ext/filters/client_channel/resolver_registry.h +3 -12
- data/src/core/ext/filters/client_channel/retry_throttle.h +0 -8
- data/src/core/ext/filters/client_channel/subchannel.cc +289 -301
- data/src/core/ext/filters/client_channel/subchannel.h +57 -84
- data/src/core/ext/filters/client_channel/subchannel_index.cc +30 -33
- data/src/core/ext/filters/client_channel/subchannel_index.h +4 -16
- data/src/core/ext/filters/client_channel/uri_parser.cc +13 -17
- data/src/core/ext/filters/client_channel/uri_parser.h +1 -10
- data/src/core/ext/filters/deadline/deadline_filter.cc +49 -67
- data/src/core/ext/filters/deadline/deadline_filter.h +4 -14
- data/src/core/ext/filters/http/client/http_client_filter.cc +60 -77
- data/src/core/ext/filters/http/client/http_client_filter.h +0 -8
- data/src/core/ext/filters/http/http_filters_plugin.cc +4 -6
- data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +63 -79
- data/src/core/ext/filters/http/message_compress/message_compress_filter.h +0 -8
- data/src/core/ext/filters/http/server/http_server_filter.cc +57 -71
- data/src/core/ext/filters/http/server/http_server_filter.h +0 -8
- data/src/core/ext/filters/load_reporting/server_load_reporting_filter.cc +19 -24
- data/src/core/ext/filters/load_reporting/server_load_reporting_filter.h +0 -8
- data/src/core/ext/filters/load_reporting/server_load_reporting_plugin.cc +3 -3
- data/src/core/ext/filters/load_reporting/server_load_reporting_plugin.h +0 -8
- data/src/core/ext/filters/max_age/max_age_filter.cc +49 -62
- data/src/core/ext/filters/max_age/max_age_filter.h +0 -8
- data/src/core/ext/filters/message_size/message_size_filter.cc +23 -29
- data/src/core/ext/filters/message_size/message_size_filter.h +0 -8
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +15 -18
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.h +0 -8
- data/src/core/ext/filters/workarounds/workaround_utils.h +0 -8
- data/src/core/ext/transport/chttp2/alpn/alpn.h +0 -8
- data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +33 -40
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +0 -8
- data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +15 -17
- data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +8 -8
- data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +23 -28
- data/src/core/ext/transport/chttp2/server/chttp2_server.cc +50 -57
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +1 -10
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +3 -3
- data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +7 -10
- data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +5 -6
- data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +7 -9
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +2 -11
- data/src/core/ext/transport/chttp2/transport/bin_encoder.h +1 -9
- data/src/core/ext/transport/chttp2/transport/chttp2_plugin.cc +10 -2
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +516 -636
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +4 -11
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +29 -13
- data/src/core/ext/transport/chttp2/transport/flow_control.h +196 -53
- data/src/core/ext/transport/chttp2/transport/frame.h +0 -8
- data/src/core/ext/transport/chttp2/transport/frame_data.cc +31 -33
- data/src/core/ext/transport/chttp2/transport/frame_data.h +3 -12
- data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +1 -10
- data/src/core/ext/transport/chttp2/transport/frame_ping.cc +5 -6
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +1 -9
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +2 -3
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +1 -10
- data/src/core/ext/transport/chttp2/transport/frame_settings.cc +8 -3
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +1 -10
- data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +8 -8
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +5 -11
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +63 -81
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +2 -12
- data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +230 -318
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +6 -19
- data/src/core/ext/transport/chttp2/transport/hpack_table.cc +14 -20
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +5 -16
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +0 -7
- data/src/core/ext/transport/chttp2/transport/huffsyms.h +0 -8
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +8 -11
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +4 -13
- data/src/core/ext/transport/chttp2/transport/internal.h +51 -75
- data/src/core/ext/transport/chttp2/transport/parsing.cc +83 -109
- data/src/core/ext/transport/chttp2/transport/stream_lists.cc +2 -0
- data/src/core/ext/transport/chttp2/transport/stream_map.h +0 -8
- data/src/core/ext/transport/chttp2/transport/varint.h +0 -8
- data/src/core/ext/transport/chttp2/transport/writing.cc +61 -65
- data/src/core/ext/transport/inproc/inproc_plugin.cc +2 -4
- data/src/core/ext/transport/inproc/inproc_transport.cc +177 -188
- data/src/core/ext/transport/inproc/inproc_transport.h +0 -8
- data/src/core/lib/backoff/backoff.cc +39 -44
- data/src/core/lib/backoff/backoff.h +61 -57
- data/src/core/lib/channel/channel_args.cc +8 -10
- data/src/core/lib/channel/channel_args.h +4 -13
- data/src/core/lib/channel/channel_stack.cc +19 -27
- data/src/core/lib/channel/channel_stack.h +27 -47
- data/src/core/lib/channel/channel_stack_builder.cc +11 -14
- data/src/core/lib/channel/channel_stack_builder.h +4 -15
- data/src/core/lib/channel/connected_channel.cc +23 -36
- data/src/core/lib/channel/connected_channel.h +1 -10
- data/src/core/lib/channel/handshaker.cc +31 -40
- data/src/core/lib/channel/handshaker.h +14 -25
- data/src/core/lib/channel/handshaker_factory.cc +6 -6
- data/src/core/lib/channel/handshaker_factory.h +5 -15
- data/src/core/lib/channel/handshaker_registry.cc +9 -13
- data/src/core/lib/channel/handshaker_registry.h +2 -11
- data/src/core/lib/compression/algorithm_metadata.h +0 -8
- data/src/core/lib/compression/message_compress.cc +19 -23
- data/src/core/lib/compression/message_compress.h +2 -12
- data/src/core/lib/compression/stream_compression.cc +1 -1
- data/src/core/lib/compression/stream_compression.h +0 -8
- data/src/core/lib/compression/stream_compression_gzip.cc +12 -11
- data/src/core/lib/compression/stream_compression_gzip.h +0 -8
- data/src/core/lib/compression/stream_compression_identity.h +0 -8
- data/src/core/lib/debug/stats.cc +4 -4
- data/src/core/lib/debug/stats.h +9 -19
- data/src/core/lib/debug/stats_data.cc +85 -116
- data/src/core/lib/debug/stats_data.h +236 -312
- data/src/core/lib/debug/trace.cc +1 -1
- data/src/core/lib/debug/trace.h +0 -12
- data/src/core/lib/{support → gpr++}/abstract.h +8 -3
- data/src/core/lib/{support → gpr++}/atomic.h +5 -5
- data/src/core/lib/{support → gpr++}/atomic_with_atm.h +3 -3
- data/src/core/lib/{support → gpr++}/atomic_with_std.h +3 -3
- data/src/core/lib/gpr++/debug_location.h +52 -0
- data/src/core/lib/gpr++/inlined_vector.h +112 -0
- data/src/core/lib/{support → gpr++}/manual_constructor.h +2 -2
- data/src/core/lib/{support → gpr++}/memory.h +3 -3
- data/src/core/lib/gpr++/orphanable.h +171 -0
- data/src/core/lib/gpr++/ref_counted.h +133 -0
- data/src/core/lib/gpr++/ref_counted_ptr.h +99 -0
- data/src/core/lib/{support → gpr}/alloc.cc +0 -0
- data/src/core/lib/{support → gpr}/arena.cc +1 -1
- data/src/core/lib/{support → gpr}/arena.h +3 -11
- data/src/core/lib/{support → gpr}/atm.cc +0 -0
- data/src/core/lib/{support → gpr}/avl.cc +0 -0
- data/src/core/lib/{support → gpr}/cmdline.cc +1 -1
- data/src/core/lib/{support → gpr}/cpu_iphone.cc +0 -0
- data/src/core/lib/{support → gpr}/cpu_linux.cc +0 -0
- data/src/core/lib/{support → gpr}/cpu_posix.cc +0 -0
- data/src/core/lib/{support → gpr}/cpu_windows.cc +0 -0
- data/src/core/lib/{support → gpr}/env.h +3 -11
- data/src/core/lib/{support → gpr}/env_linux.cc +2 -2
- data/src/core/lib/{support → gpr}/env_posix.cc +4 -4
- data/src/core/lib/{support → gpr}/env_windows.cc +3 -3
- data/src/core/lib/{support → gpr}/fork.cc +3 -3
- data/src/core/lib/{support → gpr}/fork.h +3 -3
- data/src/core/lib/{support → gpr}/host_port.cc +1 -1
- data/src/core/lib/{support → gpr}/log.cc +3 -3
- data/src/core/lib/{support → gpr}/log_android.cc +3 -3
- data/src/core/lib/{support → gpr}/log_linux.cc +1 -1
- data/src/core/lib/{support → gpr}/log_posix.cc +5 -5
- data/src/core/lib/{support → gpr}/log_windows.cc +3 -3
- data/src/core/lib/{support → gpr}/mpscq.cc +1 -1
- data/src/core/lib/{support → gpr}/mpscq.h +3 -10
- data/src/core/lib/{support → gpr}/murmur_hash.cc +1 -1
- data/src/core/lib/{support → gpr}/murmur_hash.h +3 -11
- data/src/core/lib/{support → gpr}/spinlock.h +3 -3
- data/src/core/lib/{support → gpr}/string.cc +1 -1
- data/src/core/lib/{support → gpr}/string.h +3 -10
- data/src/core/lib/{support → gpr}/string_posix.cc +0 -0
- data/src/core/lib/{support → gpr}/string_util_windows.cc +2 -2
- data/src/core/lib/{support → gpr}/string_windows.cc +1 -1
- data/src/core/lib/{support → gpr}/string_windows.h +3 -11
- data/src/core/lib/{support → gpr}/subprocess_posix.cc +0 -0
- data/src/core/lib/{support → gpr}/subprocess_windows.cc +2 -2
- data/src/core/lib/{support → gpr}/sync.cc +0 -0
- data/src/core/lib/{support → gpr}/sync_posix.cc +10 -1
- data/src/core/lib/{support → gpr}/sync_windows.cc +0 -0
- data/src/core/lib/{support → gpr}/thd.cc +0 -0
- data/src/core/lib/{support → gpr}/thd_internal.h +3 -3
- data/src/core/lib/{support → gpr}/thd_posix.cc +18 -2
- data/src/core/lib/{support → gpr}/thd_windows.cc +2 -1
- data/src/core/lib/{support → gpr}/time.cc +0 -0
- data/src/core/lib/{support → gpr}/time_posix.cc +2 -4
- data/src/core/lib/{support → gpr}/time_precise.cc +1 -1
- data/src/core/lib/{support → gpr}/time_precise.h +3 -11
- data/src/core/lib/{support → gpr}/time_windows.cc +1 -3
- data/src/core/lib/{support → gpr}/tls_pthread.cc +0 -0
- data/src/core/lib/{support → gpr}/tmpfile.h +3 -11
- data/src/core/lib/{support → gpr}/tmpfile_msys.cc +2 -2
- data/src/core/lib/{support → gpr}/tmpfile_posix.cc +2 -2
- data/src/core/lib/{support → gpr}/tmpfile_windows.cc +2 -2
- data/src/core/lib/{support → gpr}/wrap_memcpy.cc +0 -0
- data/src/core/lib/http/format_request.cc +1 -1
- data/src/core/lib/http/format_request.h +0 -8
- data/src/core/lib/http/httpcli.cc +55 -74
- data/src/core/lib/http/httpcli.h +13 -22
- data/src/core/lib/http/httpcli_security_connector.cc +27 -33
- data/src/core/lib/http/parser.h +0 -8
- data/src/core/lib/iomgr/block_annotate.h +10 -17
- data/src/core/lib/iomgr/call_combiner.cc +14 -17
- data/src/core/lib/iomgr/call_combiner.h +16 -34
- data/src/core/lib/iomgr/closure.h +24 -37
- data/src/core/lib/iomgr/combiner.cc +62 -66
- data/src/core/lib/iomgr/combiner.h +6 -16
- data/src/core/lib/iomgr/endpoint.cc +15 -21
- data/src/core/lib/iomgr/endpoint.h +16 -33
- data/src/core/lib/iomgr/endpoint_pair.h +0 -8
- data/src/core/lib/iomgr/endpoint_pair_posix.cc +4 -5
- data/src/core/lib/iomgr/endpoint_pair_windows.cc +4 -6
- data/src/core/lib/iomgr/error.cc +2 -6
- data/src/core/lib/iomgr/error.h +4 -9
- data/src/core/lib/iomgr/error_internal.h +0 -8
- data/src/core/lib/iomgr/ev_epoll1_linux.cc +110 -117
- data/src/core/lib/iomgr/ev_epoll1_linux.h +0 -8
- data/src/core/lib/iomgr/ev_epollex_linux.cc +111 -141
- data/src/core/lib/iomgr/ev_epollex_linux.h +0 -8
- data/src/core/lib/iomgr/ev_epollsig_linux.cc +83 -109
- data/src/core/lib/iomgr/ev_epollsig_linux.h +2 -10
- data/src/core/lib/iomgr/ev_poll_posix.cc +103 -125
- data/src/core/lib/iomgr/ev_poll_posix.h +0 -8
- data/src/core/lib/iomgr/ev_posix.cc +35 -50
- data/src/core/lib/iomgr/ev_posix.h +27 -53
- data/src/core/lib/iomgr/exec_ctx.cc +46 -78
- data/src/core/lib/iomgr/exec_ctx.h +127 -60
- data/src/core/lib/iomgr/executor.cc +34 -38
- data/src/core/lib/iomgr/executor.h +3 -11
- data/src/core/lib/iomgr/fork_posix.cc +13 -12
- data/src/core/lib/iomgr/gethostname.h +0 -8
- data/src/core/lib/iomgr/gethostname_sysconf.cc +1 -1
- data/src/core/lib/iomgr/iocp_windows.cc +14 -16
- data/src/core/lib/iomgr/iocp_windows.h +1 -10
- data/src/core/lib/iomgr/iomgr.cc +60 -59
- data/src/core/lib/iomgr/iomgr.h +3 -12
- data/src/core/lib/iomgr/iomgr_internal.h +0 -8
- data/src/core/lib/iomgr/iomgr_uv.cc +2 -3
- data/src/core/lib/iomgr/iomgr_uv.h +0 -8
- data/src/core/lib/iomgr/is_epollexclusive_available.cc +1 -1
- data/src/core/lib/iomgr/load_file.cc +1 -1
- data/src/core/lib/iomgr/load_file.h +0 -8
- data/src/core/lib/iomgr/lockfree_event.cc +7 -8
- data/src/core/lib/iomgr/lockfree_event.h +3 -3
- data/src/core/lib/iomgr/polling_entity.cc +6 -10
- data/src/core/lib/iomgr/polling_entity.h +2 -11
- data/src/core/lib/iomgr/pollset.h +4 -13
- data/src/core/lib/iomgr/pollset_set.h +5 -18
- data/src/core/lib/iomgr/pollset_set_uv.cc +5 -10
- data/src/core/lib/iomgr/pollset_set_windows.cc +5 -10
- data/src/core/lib/iomgr/pollset_uv.cc +8 -9
- data/src/core/lib/iomgr/pollset_uv.h +0 -8
- data/src/core/lib/iomgr/pollset_windows.cc +14 -15
- data/src/core/lib/iomgr/pollset_windows.h +0 -8
- data/src/core/lib/iomgr/port.h +6 -1
- data/src/core/lib/iomgr/resolve_address.h +1 -10
- data/src/core/lib/iomgr/resolve_address_posix.cc +10 -12
- data/src/core/lib/iomgr/resolve_address_uv.cc +7 -8
- data/src/core/lib/iomgr/resolve_address_windows.cc +8 -9
- data/src/core/lib/iomgr/resource_quota.cc +77 -107
- data/src/core/lib/iomgr/resource_quota.h +8 -25
- data/src/core/lib/iomgr/sockaddr_utils.cc +1 -1
- data/src/core/lib/iomgr/sockaddr_utils.h +0 -8
- data/src/core/lib/iomgr/socket_factory_posix.cc +1 -1
- data/src/core/lib/iomgr/socket_factory_posix.h +0 -8
- data/src/core/lib/iomgr/socket_mutator.cc +1 -1
- data/src/core/lib/iomgr/socket_mutator.h +1 -9
- data/src/core/lib/iomgr/socket_utils.h +0 -8
- data/src/core/lib/iomgr/socket_utils_common_posix.cc +1 -1
- data/src/core/lib/iomgr/socket_utils_posix.h +0 -8
- data/src/core/lib/iomgr/socket_windows.cc +8 -11
- data/src/core/lib/iomgr/socket_windows.h +3 -14
- data/src/core/lib/iomgr/tcp_client.h +1 -10
- data/src/core/lib/iomgr/tcp_client_posix.cc +94 -78
- data/src/core/lib/iomgr/tcp_client_posix.h +36 -8
- data/src/core/lib/iomgr/tcp_client_uv.cc +16 -23
- data/src/core/lib/iomgr/tcp_client_windows.cc +22 -25
- data/src/core/lib/iomgr/tcp_posix.cc +131 -153
- data/src/core/lib/iomgr/tcp_posix.h +3 -12
- data/src/core/lib/iomgr/tcp_server.h +6 -17
- data/src/core/lib/iomgr/tcp_server_posix.cc +31 -35
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +0 -8
- data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +1 -1
- data/src/core/lib/iomgr/tcp_server_uv.cc +23 -34
- data/src/core/lib/iomgr/tcp_server_windows.cc +24 -34
- data/src/core/lib/iomgr/tcp_uv.cc +42 -56
- data/src/core/lib/iomgr/tcp_uv.h +0 -8
- data/src/core/lib/iomgr/tcp_windows.cc +43 -50
- data/src/core/lib/iomgr/tcp_windows.h +1 -9
- data/src/core/lib/iomgr/time_averaged_stats.h +0 -8
- data/src/core/lib/iomgr/timer.h +6 -15
- data/src/core/lib/iomgr/timer_generic.cc +22 -27
- data/src/core/lib/iomgr/timer_heap.h +0 -8
- data/src/core/lib/iomgr/timer_manager.cc +17 -19
- data/src/core/lib/iomgr/timer_manager.h +0 -8
- data/src/core/lib/iomgr/timer_uv.cc +12 -14
- data/src/core/lib/iomgr/udp_server.cc +148 -54
- data/src/core/lib/iomgr/udp_server.h +16 -21
- data/src/core/lib/iomgr/unix_sockets_posix.h +0 -8
- data/src/core/lib/iomgr/wakeup_fd_cv.cc +4 -4
- data/src/core/lib/iomgr/wakeup_fd_cv.h +12 -20
- data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +1 -1
- data/src/core/lib/iomgr/wakeup_fd_pipe.h +0 -8
- data/src/core/lib/iomgr/wakeup_fd_posix.h +0 -8
- data/src/core/lib/json/json.h +0 -8
- data/src/core/lib/json/json_reader.h +0 -8
- data/src/core/lib/json/json_writer.h +0 -8
- data/src/core/lib/profiling/basic_timers.cc +3 -2
- data/src/core/lib/profiling/timers.h +0 -8
- data/src/core/lib/security/context/security_context.cc +9 -10
- data/src/core/lib/security/context/security_context.h +0 -8
- data/src/core/lib/security/credentials/composite/composite_credentials.cc +23 -28
- data/src/core/lib/security/credentials/composite/composite_credentials.h +0 -8
- data/src/core/lib/security/credentials/credentials.cc +33 -42
- data/src/core/lib/security/credentials/credentials.h +24 -43
- data/src/core/lib/security/credentials/credentials_metadata.cc +2 -2
- data/src/core/lib/security/credentials/fake/fake_credentials.cc +16 -22
- data/src/core/lib/security/credentials/fake/fake_credentials.h +0 -8
- data/src/core/lib/security/credentials/google_default/credentials_generic.cc +3 -3
- data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +28 -34
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +0 -8
- data/src/core/lib/security/credentials/iam/iam_credentials.cc +9 -13
- data/src/core/lib/security/credentials/jwt/json_token.cc +1 -1
- data/src/core/lib/security/credentials/jwt/json_token.h +0 -8
- data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +14 -20
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +1 -10
- data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +56 -72
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +5 -17
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +47 -55
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +3 -12
- data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +23 -28
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +8 -13
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +0 -8
- data/src/core/lib/security/transport/auth_filters.h +0 -8
- data/src/core/lib/security/transport/client_auth_filter.cc +45 -54
- data/src/core/lib/security/transport/lb_targets_info.cc +2 -2
- data/src/core/lib/security/transport/lb_targets_info.h +0 -8
- data/src/core/lib/security/transport/secure_endpoint.cc +54 -68
- data/src/core/lib/security/transport/secure_endpoint.h +0 -8
- data/src/core/lib/security/transport/security_connector.cc +62 -86
- data/src/core/lib/security/transport/security_connector.h +22 -39
- data/src/core/lib/security/transport/security_handshaker.cc +83 -106
- data/src/core/lib/security/transport/security_handshaker.h +1 -10
- data/src/core/lib/security/transport/server_auth_filter.cc +31 -38
- data/src/core/lib/security/transport/tsi_error.h +0 -8
- data/src/core/lib/security/util/json_util.h +0 -8
- data/src/core/lib/slice/b64.cc +5 -6
- data/src/core/lib/slice/b64.h +3 -12
- data/src/core/lib/slice/percent_encoding.h +0 -8
- data/src/core/lib/slice/slice.cc +8 -9
- data/src/core/lib/slice/slice_buffer.cc +11 -16
- data/src/core/lib/slice/slice_hash_table.cc +5 -7
- data/src/core/lib/slice/slice_hash_table.h +2 -12
- data/src/core/lib/slice/slice_intern.cc +4 -5
- data/src/core/lib/slice/slice_internal.h +4 -15
- data/src/core/lib/slice/slice_string_helpers.cc +1 -1
- data/src/core/lib/slice/slice_string_helpers.h +1 -9
- data/src/core/lib/surface/alarm.cc +11 -14
- data/src/core/lib/surface/alarm_internal.h +0 -8
- data/src/core/lib/surface/byte_buffer.cc +2 -3
- data/src/core/lib/surface/byte_buffer_reader.cc +7 -9
- data/src/core/lib/surface/call.cc +198 -241
- data/src/core/lib/surface/call.h +9 -23
- data/src/core/lib/surface/call_details.cc +3 -4
- data/src/core/lib/surface/call_log_batch.cc +1 -1
- data/src/core/lib/surface/call_test_only.h +0 -8
- data/src/core/lib/surface/channel.cc +53 -64
- data/src/core/lib/surface/channel.h +12 -23
- data/src/core/lib/surface/channel_init.cc +2 -3
- data/src/core/lib/surface/channel_init.h +2 -12
- data/src/core/lib/surface/channel_ping.cc +7 -9
- data/src/core/lib/surface/channel_stack_type.h +0 -8
- data/src/core/lib/surface/completion_queue.cc +158 -176
- data/src/core/lib/surface/completion_queue.h +9 -20
- data/src/core/lib/surface/completion_queue_factory.h +0 -8
- data/src/core/lib/surface/event_string.cc +1 -1
- data/src/core/lib/surface/event_string.h +0 -8
- data/src/core/lib/surface/init.cc +27 -25
- data/src/core/lib/surface/init.h +0 -8
- data/src/core/lib/surface/init_secure.cc +2 -2
- data/src/core/lib/surface/lame_client.cc +30 -33
- data/src/core/lib/surface/lame_client.h +0 -8
- data/src/core/lib/surface/server.cc +151 -203
- data/src/core/lib/surface/server.h +7 -16
- data/src/core/lib/surface/validate_metadata.h +0 -8
- data/src/core/lib/surface/version.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +2 -2
- data/src/core/lib/transport/bdp_estimator.h +1 -1
- data/src/core/lib/transport/byte_stream.cc +24 -38
- data/src/core/lib/transport/byte_stream.h +10 -25
- data/src/core/lib/transport/connectivity_state.cc +9 -13
- data/src/core/lib/transport/connectivity_state.h +4 -14
- data/src/core/lib/transport/error_utils.cc +6 -6
- data/src/core/lib/transport/error_utils.h +2 -11
- data/src/core/lib/transport/metadata.cc +21 -23
- data/src/core/lib/transport/metadata.h +8 -20
- data/src/core/lib/transport/metadata_batch.cc +34 -45
- data/src/core/lib/transport/metadata_batch.h +18 -32
- data/src/core/lib/transport/service_config.cc +11 -15
- data/src/core/lib/transport/service_config.h +3 -13
- data/src/core/lib/transport/static_metadata.cc +1 -1
- data/src/core/lib/transport/static_metadata.h +1 -7
- data/src/core/lib/transport/status_conversion.cc +2 -3
- data/src/core/lib/transport/status_conversion.h +1 -10
- data/src/core/lib/transport/timeout_encoding.cc +1 -1
- data/src/core/lib/transport/timeout_encoding.h +1 -9
- data/src/core/lib/transport/transport.cc +36 -50
- data/src/core/lib/transport/transport.h +28 -30
- data/src/core/lib/transport/transport_impl.h +12 -23
- data/src/core/lib/transport/transport_op_string.cc +2 -2
- data/src/core/plugin_registry/grpc_plugin_registry.cc +34 -34
- data/src/core/tsi/fake_transport_security.cc +7 -10
- data/src/core/tsi/fake_transport_security.h +0 -8
- data/src/core/tsi/gts_transport_security.cc +2 -2
- data/src/core/tsi/gts_transport_security.h +0 -8
- data/src/core/tsi/ssl_transport_security.cc +3 -0
- data/src/core/tsi/ssl_transport_security.h +0 -8
- data/src/core/tsi/ssl_types.h +0 -8
- data/src/core/tsi/transport_security.h +1 -9
- data/src/core/tsi/transport_security_adapter.h +0 -8
- data/src/core/tsi/transport_security_grpc.cc +11 -18
- data/src/core/tsi/transport_security_grpc.h +9 -21
- data/src/core/tsi/transport_security_interface.h +0 -8
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +0 -30
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +2 -48
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/spec/channel_connection_spec.rb +2 -1
- data/src/ruby/spec/client_auth_spec.rb +1 -1
- data/src/ruby/spec/client_server_spec.rb +2 -2
- data/src/ruby/spec/generic/active_call_spec.rb +1 -1
- data/src/ruby/spec/generic/client_stub_spec.rb +4 -4
- data/src/ruby/spec/generic/interceptor_registry_spec.rb +1 -1
- data/src/ruby/spec/generic/rpc_server_spec.rb +12 -12
- data/src/ruby/spec/google_rpc_status_utils_spec.rb +3 -2
- data/src/ruby/spec/pb/health/checker_spec.rb +1 -1
- data/src/ruby/spec/server_spec.rb +9 -9
- data/src/ruby/spec/support/helpers.rb +35 -1
- metadata +68 -66
- data/include/grpc/impl/codegen/exec_ctx_fwd.h +0 -26
- data/include/grpc/support/histogram.h +0 -64
- data/src/core/lib/support/histogram.cc +0 -227
@@ -28,8 +28,7 @@
|
|
28
28
|
#include "src/core/lib/iomgr/sockaddr_utils.h"
|
29
29
|
#include "src/core/lib/transport/connectivity_state.h"
|
30
30
|
|
31
|
-
void grpc_lb_subchannel_data_unref_subchannel(
|
32
|
-
grpc_lb_subchannel_data* sd,
|
31
|
+
void grpc_lb_subchannel_data_unref_subchannel(grpc_lb_subchannel_data* sd,
|
33
32
|
const char* reason) {
|
34
33
|
if (sd->subchannel != nullptr) {
|
35
34
|
if (sd->subchannel_list->tracer->enabled()) {
|
@@ -41,23 +40,19 @@ void grpc_lb_subchannel_data_unref_subchannel(grpc_exec_ctx* exec_ctx,
|
|
41
40
|
(size_t)(sd - sd->subchannel_list->subchannels),
|
42
41
|
sd->subchannel_list->num_subchannels, sd->subchannel);
|
43
42
|
}
|
44
|
-
GRPC_SUBCHANNEL_UNREF(
|
43
|
+
GRPC_SUBCHANNEL_UNREF(sd->subchannel, reason);
|
45
44
|
sd->subchannel = nullptr;
|
46
|
-
|
47
|
-
GRPC_CONNECTED_SUBCHANNEL_UNREF(exec_ctx, sd->connected_subchannel,
|
48
|
-
reason);
|
49
|
-
sd->connected_subchannel = nullptr;
|
50
|
-
}
|
45
|
+
sd->connected_subchannel.reset();
|
51
46
|
if (sd->user_data != nullptr) {
|
52
47
|
GPR_ASSERT(sd->user_data_vtable != nullptr);
|
53
|
-
sd->user_data_vtable->destroy(
|
48
|
+
sd->user_data_vtable->destroy(sd->user_data);
|
54
49
|
sd->user_data = nullptr;
|
55
50
|
}
|
56
51
|
}
|
57
52
|
}
|
58
53
|
|
59
54
|
void grpc_lb_subchannel_data_start_connectivity_watch(
|
60
|
-
|
55
|
+
grpc_lb_subchannel_data* sd) {
|
61
56
|
if (sd->subchannel_list->tracer->enabled()) {
|
62
57
|
gpr_log(GPR_DEBUG,
|
63
58
|
"[%s %p] subchannel list %p index %" PRIuPTR " of %" PRIuPTR
|
@@ -69,13 +64,13 @@ void grpc_lb_subchannel_data_start_connectivity_watch(
|
|
69
64
|
}
|
70
65
|
sd->connectivity_notification_pending = true;
|
71
66
|
grpc_subchannel_notify_on_state_change(
|
72
|
-
|
67
|
+
sd->subchannel, sd->subchannel_list->policy->interested_parties,
|
73
68
|
&sd->pending_connectivity_state_unsafe,
|
74
69
|
&sd->connectivity_changed_closure);
|
75
70
|
}
|
76
71
|
|
77
72
|
void grpc_lb_subchannel_data_stop_connectivity_watch(
|
78
|
-
|
73
|
+
grpc_lb_subchannel_data* sd) {
|
79
74
|
if (sd->subchannel_list->tracer->enabled()) {
|
80
75
|
gpr_log(GPR_DEBUG,
|
81
76
|
"[%s %p] subchannel list %p index %" PRIuPTR " of %" PRIuPTR
|
@@ -90,7 +85,7 @@ void grpc_lb_subchannel_data_stop_connectivity_watch(
|
|
90
85
|
}
|
91
86
|
|
92
87
|
grpc_lb_subchannel_list* grpc_lb_subchannel_list_create(
|
93
|
-
|
88
|
+
grpc_lb_policy* p, grpc_core::TraceFlag* tracer,
|
94
89
|
const grpc_lb_addresses* addresses, const grpc_lb_policy_args* args,
|
95
90
|
grpc_iomgr_cb_func connectivity_changed_cb) {
|
96
91
|
grpc_lb_subchannel_list* subchannel_list =
|
@@ -124,8 +119,8 @@ grpc_lb_subchannel_list* grpc_lb_subchannel_list_create(
|
|
124
119
|
gpr_free(addr_arg.value.string);
|
125
120
|
sc_args.args = new_args;
|
126
121
|
grpc_subchannel* subchannel = grpc_client_channel_factory_create_subchannel(
|
127
|
-
|
128
|
-
grpc_channel_args_destroy(
|
122
|
+
args->client_channel_factory, &sc_args);
|
123
|
+
grpc_channel_args_destroy(new_args);
|
129
124
|
if (subchannel == nullptr) {
|
130
125
|
// Subchannel could not be created.
|
131
126
|
if (tracer->enabled()) {
|
@@ -172,8 +167,7 @@ grpc_lb_subchannel_list* grpc_lb_subchannel_list_create(
|
|
172
167
|
return subchannel_list;
|
173
168
|
}
|
174
169
|
|
175
|
-
static void subchannel_list_destroy(
|
176
|
-
grpc_lb_subchannel_list* subchannel_list) {
|
170
|
+
static void subchannel_list_destroy(grpc_lb_subchannel_list* subchannel_list) {
|
177
171
|
if (subchannel_list->tracer->enabled()) {
|
178
172
|
gpr_log(GPR_DEBUG, "[%s %p] Destroying subchannel_list %p",
|
179
173
|
subchannel_list->tracer->name(), subchannel_list->policy,
|
@@ -181,8 +175,7 @@ static void subchannel_list_destroy(grpc_exec_ctx* exec_ctx,
|
|
181
175
|
}
|
182
176
|
for (size_t i = 0; i < subchannel_list->num_subchannels; i++) {
|
183
177
|
grpc_lb_subchannel_data* sd = &subchannel_list->subchannels[i];
|
184
|
-
grpc_lb_subchannel_data_unref_subchannel(
|
185
|
-
"subchannel_list_destroy");
|
178
|
+
grpc_lb_subchannel_data_unref_subchannel(sd, "subchannel_list_destroy");
|
186
179
|
}
|
187
180
|
gpr_free(subchannel_list->subchannels);
|
188
181
|
gpr_free(subchannel_list);
|
@@ -200,8 +193,7 @@ void grpc_lb_subchannel_list_ref(grpc_lb_subchannel_list* subchannel_list,
|
|
200
193
|
}
|
201
194
|
}
|
202
195
|
|
203
|
-
void grpc_lb_subchannel_list_unref(
|
204
|
-
grpc_lb_subchannel_list* subchannel_list,
|
196
|
+
void grpc_lb_subchannel_list_unref(grpc_lb_subchannel_list* subchannel_list,
|
205
197
|
const char* reason) {
|
206
198
|
const bool done = gpr_unref(&subchannel_list->refcount);
|
207
199
|
if (subchannel_list->tracer->enabled()) {
|
@@ -212,25 +204,24 @@ void grpc_lb_subchannel_list_unref(grpc_exec_ctx* exec_ctx,
|
|
212
204
|
reason);
|
213
205
|
}
|
214
206
|
if (done) {
|
215
|
-
subchannel_list_destroy(
|
207
|
+
subchannel_list_destroy(subchannel_list);
|
216
208
|
}
|
217
209
|
}
|
218
210
|
|
219
211
|
void grpc_lb_subchannel_list_ref_for_connectivity_watch(
|
220
212
|
grpc_lb_subchannel_list* subchannel_list, const char* reason) {
|
221
|
-
|
213
|
+
GRPC_LB_POLICY_REF(subchannel_list->policy, reason);
|
222
214
|
grpc_lb_subchannel_list_ref(subchannel_list, reason);
|
223
215
|
}
|
224
216
|
|
225
217
|
void grpc_lb_subchannel_list_unref_for_connectivity_watch(
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
grpc_lb_subchannel_list_unref(exec_ctx, subchannel_list, reason);
|
218
|
+
grpc_lb_subchannel_list* subchannel_list, const char* reason) {
|
219
|
+
GRPC_LB_POLICY_UNREF(subchannel_list->policy, reason);
|
220
|
+
grpc_lb_subchannel_list_unref(subchannel_list, reason);
|
230
221
|
}
|
231
222
|
|
232
223
|
static void subchannel_data_cancel_connectivity_watch(
|
233
|
-
|
224
|
+
grpc_lb_subchannel_data* sd, const char* reason) {
|
234
225
|
if (sd->subchannel_list->tracer->enabled()) {
|
235
226
|
gpr_log(GPR_DEBUG,
|
236
227
|
"[%s %p] subchannel list %p index %" PRIuPTR " of %" PRIuPTR
|
@@ -240,14 +231,12 @@ static void subchannel_data_cancel_connectivity_watch(
|
|
240
231
|
(size_t)(sd - sd->subchannel_list->subchannels),
|
241
232
|
sd->subchannel_list->num_subchannels, sd->subchannel, reason);
|
242
233
|
}
|
243
|
-
grpc_subchannel_notify_on_state_change(
|
244
|
-
nullptr,
|
234
|
+
grpc_subchannel_notify_on_state_change(sd->subchannel, nullptr, nullptr,
|
245
235
|
&sd->connectivity_changed_closure);
|
246
236
|
}
|
247
237
|
|
248
238
|
void grpc_lb_subchannel_list_shutdown_and_unref(
|
249
|
-
|
250
|
-
const char* reason) {
|
239
|
+
grpc_lb_subchannel_list* subchannel_list, const char* reason) {
|
251
240
|
if (subchannel_list->tracer->enabled()) {
|
252
241
|
gpr_log(GPR_DEBUG, "[%s %p] Shutting down subchannel_list %p (%s)",
|
253
242
|
subchannel_list->tracer->name(), subchannel_list->policy,
|
@@ -261,10 +250,10 @@ void grpc_lb_subchannel_list_shutdown_and_unref(
|
|
261
250
|
// the callback is responsible for unreffing the subchannel.
|
262
251
|
// Otherwise, unref the subchannel directly.
|
263
252
|
if (sd->connectivity_notification_pending) {
|
264
|
-
subchannel_data_cancel_connectivity_watch(
|
253
|
+
subchannel_data_cancel_connectivity_watch(sd, reason);
|
265
254
|
} else if (sd->subchannel != nullptr) {
|
266
|
-
grpc_lb_subchannel_data_unref_subchannel(
|
255
|
+
grpc_lb_subchannel_data_unref_subchannel(sd, reason);
|
267
256
|
}
|
268
257
|
}
|
269
|
-
grpc_lb_subchannel_list_unref(
|
258
|
+
grpc_lb_subchannel_list_unref(subchannel_list, reason);
|
270
259
|
}
|
@@ -22,6 +22,7 @@
|
|
22
22
|
#include "src/core/ext/filters/client_channel/lb_policy_registry.h"
|
23
23
|
#include "src/core/ext/filters/client_channel/subchannel.h"
|
24
24
|
#include "src/core/lib/debug/trace.h"
|
25
|
+
#include "src/core/lib/gpr++/ref_counted_ptr.h"
|
25
26
|
#include "src/core/lib/transport/connectivity_state.h"
|
26
27
|
|
27
28
|
// TODO(roth): This code is intended to be shared between pick_first and
|
@@ -36,10 +37,6 @@
|
|
36
37
|
// round_robin that could be refactored and moved here. In a future PR,
|
37
38
|
// need to clean this up.
|
38
39
|
|
39
|
-
#ifdef __cplusplus
|
40
|
-
extern "C" {
|
41
|
-
#endif
|
42
|
-
|
43
40
|
typedef struct grpc_lb_subchannel_list grpc_lb_subchannel_list;
|
44
41
|
|
45
42
|
typedef struct {
|
@@ -47,7 +44,7 @@ typedef struct {
|
|
47
44
|
grpc_lb_subchannel_list* subchannel_list;
|
48
45
|
/** subchannel itself */
|
49
46
|
grpc_subchannel* subchannel;
|
50
|
-
|
47
|
+
grpc_core::RefCountedPtr<grpc_core::ConnectedSubchannel> connected_subchannel;
|
51
48
|
/** Is a connectivity notification pending? */
|
52
49
|
bool connectivity_notification_pending;
|
53
50
|
/** notification that connectivity has changed on subchannel */
|
@@ -69,8 +66,7 @@ typedef struct {
|
|
69
66
|
} grpc_lb_subchannel_data;
|
70
67
|
|
71
68
|
/// Unrefs the subchannel contained in sd.
|
72
|
-
void grpc_lb_subchannel_data_unref_subchannel(
|
73
|
-
grpc_lb_subchannel_data* sd,
|
69
|
+
void grpc_lb_subchannel_data_unref_subchannel(grpc_lb_subchannel_data* sd,
|
74
70
|
const char* reason);
|
75
71
|
|
76
72
|
/// Starts watching the connectivity state of the subchannel.
|
@@ -78,11 +74,11 @@ void grpc_lb_subchannel_data_unref_subchannel(grpc_exec_ctx* exec_ctx,
|
|
78
74
|
/// grpc_lb_subchannel_data_stop_connectivity_watch() or again call
|
79
75
|
/// grpc_lb_subchannel_data_start_connectivity_watch().
|
80
76
|
void grpc_lb_subchannel_data_start_connectivity_watch(
|
81
|
-
|
77
|
+
grpc_lb_subchannel_data* sd);
|
82
78
|
|
83
79
|
/// Stops watching the connectivity state of the subchannel.
|
84
80
|
void grpc_lb_subchannel_data_stop_connectivity_watch(
|
85
|
-
|
81
|
+
grpc_lb_subchannel_data* sd);
|
86
82
|
|
87
83
|
struct grpc_lb_subchannel_list {
|
88
84
|
/** backpointer to owning policy */
|
@@ -121,15 +117,14 @@ struct grpc_lb_subchannel_list {
|
|
121
117
|
};
|
122
118
|
|
123
119
|
grpc_lb_subchannel_list* grpc_lb_subchannel_list_create(
|
124
|
-
|
120
|
+
grpc_lb_policy* p, grpc_core::TraceFlag* tracer,
|
125
121
|
const grpc_lb_addresses* addresses, const grpc_lb_policy_args* args,
|
126
122
|
grpc_iomgr_cb_func connectivity_changed_cb);
|
127
123
|
|
128
124
|
void grpc_lb_subchannel_list_ref(grpc_lb_subchannel_list* subchannel_list,
|
129
125
|
const char* reason);
|
130
126
|
|
131
|
-
void grpc_lb_subchannel_list_unref(
|
132
|
-
grpc_lb_subchannel_list* subchannel_list,
|
127
|
+
void grpc_lb_subchannel_list_unref(grpc_lb_subchannel_list* subchannel_list,
|
133
128
|
const char* reason);
|
134
129
|
|
135
130
|
/// Takes and releases refs needed for a connectivity notification.
|
@@ -137,17 +132,11 @@ void grpc_lb_subchannel_list_unref(grpc_exec_ctx* exec_ctx,
|
|
137
132
|
void grpc_lb_subchannel_list_ref_for_connectivity_watch(
|
138
133
|
grpc_lb_subchannel_list* subchannel_list, const char* reason);
|
139
134
|
void grpc_lb_subchannel_list_unref_for_connectivity_watch(
|
140
|
-
|
141
|
-
const char* reason);
|
135
|
+
grpc_lb_subchannel_list* subchannel_list, const char* reason);
|
142
136
|
|
143
137
|
/// Mark subchannel_list as discarded. Unsubscribes all its subchannels. The
|
144
138
|
/// connectivity state notification callback will ultimately unref it.
|
145
139
|
void grpc_lb_subchannel_list_shutdown_and_unref(
|
146
|
-
|
147
|
-
const char* reason);
|
148
|
-
|
149
|
-
#ifdef __cplusplus
|
150
|
-
}
|
151
|
-
#endif
|
140
|
+
grpc_lb_subchannel_list* subchannel_list, const char* reason);
|
152
141
|
|
153
142
|
#endif /* GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_LB_POLICY_SUBCHANNEL_LIST_H */
|
@@ -112,13 +112,11 @@ int grpc_lb_addresses_cmp(const grpc_lb_addresses* addresses1,
|
|
112
112
|
return 0;
|
113
113
|
}
|
114
114
|
|
115
|
-
void grpc_lb_addresses_destroy(
|
116
|
-
grpc_lb_addresses* addresses) {
|
115
|
+
void grpc_lb_addresses_destroy(grpc_lb_addresses* addresses) {
|
117
116
|
for (size_t i = 0; i < addresses->num_addresses; ++i) {
|
118
117
|
gpr_free(addresses->addresses[i].balancer_name);
|
119
118
|
if (addresses->addresses[i].user_data != nullptr) {
|
120
|
-
addresses->user_data_vtable->destroy(
|
121
|
-
addresses->addresses[i].user_data);
|
119
|
+
addresses->user_data_vtable->destroy(addresses->addresses[i].user_data);
|
122
120
|
}
|
123
121
|
}
|
124
122
|
gpr_free(addresses->addresses);
|
@@ -128,8 +126,8 @@ void grpc_lb_addresses_destroy(grpc_exec_ctx* exec_ctx,
|
|
128
126
|
static void* lb_addresses_copy(void* addresses) {
|
129
127
|
return grpc_lb_addresses_copy((grpc_lb_addresses*)addresses);
|
130
128
|
}
|
131
|
-
static void lb_addresses_destroy(
|
132
|
-
grpc_lb_addresses_destroy(
|
129
|
+
static void lb_addresses_destroy(void* addresses) {
|
130
|
+
grpc_lb_addresses_destroy((grpc_lb_addresses*)addresses);
|
133
131
|
}
|
134
132
|
static int lb_addresses_cmp(void* addresses1, void* addresses2) {
|
135
133
|
return grpc_lb_addresses_cmp((grpc_lb_addresses*)addresses1,
|
@@ -162,8 +160,7 @@ void grpc_lb_policy_factory_unref(grpc_lb_policy_factory* factory) {
|
|
162
160
|
}
|
163
161
|
|
164
162
|
grpc_lb_policy* grpc_lb_policy_factory_create_lb_policy(
|
165
|
-
|
166
|
-
grpc_lb_policy_args* args) {
|
163
|
+
grpc_lb_policy_factory* factory, grpc_lb_policy_args* args) {
|
167
164
|
if (factory == nullptr) return nullptr;
|
168
|
-
return factory->vtable->create_lb_policy(
|
165
|
+
return factory->vtable->create_lb_policy(factory, args);
|
169
166
|
}
|
@@ -29,10 +29,6 @@
|
|
29
29
|
// Channel arg key for grpc_lb_addresses.
|
30
30
|
#define GRPC_ARG_LB_ADDRESSES "grpc.lb_addresses"
|
31
31
|
|
32
|
-
#ifdef __cplusplus
|
33
|
-
extern "C" {
|
34
|
-
#endif
|
35
|
-
|
36
32
|
typedef struct grpc_lb_policy_factory grpc_lb_policy_factory;
|
37
33
|
typedef struct grpc_lb_policy_factory_vtable grpc_lb_policy_factory_vtable;
|
38
34
|
|
@@ -54,7 +50,7 @@ typedef struct grpc_lb_address {
|
|
54
50
|
|
55
51
|
typedef struct grpc_lb_user_data_vtable {
|
56
52
|
void* (*copy)(void*);
|
57
|
-
void (*destroy)(
|
53
|
+
void (*destroy)(void*);
|
58
54
|
int (*cmp)(void*, void*);
|
59
55
|
} grpc_lb_user_data_vtable;
|
60
56
|
|
@@ -95,8 +91,7 @@ int grpc_lb_addresses_cmp(const grpc_lb_addresses* addresses1,
|
|
95
91
|
const grpc_lb_addresses* addresses2);
|
96
92
|
|
97
93
|
/** Destroys \a addresses. */
|
98
|
-
void grpc_lb_addresses_destroy(
|
99
|
-
grpc_lb_addresses* addresses);
|
94
|
+
void grpc_lb_addresses_destroy(grpc_lb_addresses* addresses);
|
100
95
|
|
101
96
|
/** Returns a channel arg containing \a addresses. */
|
102
97
|
grpc_arg grpc_lb_addresses_create_channel_arg(
|
@@ -118,8 +113,7 @@ struct grpc_lb_policy_factory_vtable {
|
|
118
113
|
void (*unref)(grpc_lb_policy_factory* factory);
|
119
114
|
|
120
115
|
/** Implementation of grpc_lb_policy_factory_create_lb_policy */
|
121
|
-
grpc_lb_policy* (*create_lb_policy)(
|
122
|
-
grpc_lb_policy_factory* factory,
|
116
|
+
grpc_lb_policy* (*create_lb_policy)(grpc_lb_policy_factory* factory,
|
123
117
|
grpc_lb_policy_args* args);
|
124
118
|
|
125
119
|
/** Name for the LB policy this factory implements */
|
@@ -131,11 +125,6 @@ void grpc_lb_policy_factory_unref(grpc_lb_policy_factory* factory);
|
|
131
125
|
|
132
126
|
/** Create a lb_policy instance. */
|
133
127
|
grpc_lb_policy* grpc_lb_policy_factory_create_lb_policy(
|
134
|
-
|
135
|
-
grpc_lb_policy_args* args);
|
136
|
-
|
137
|
-
#ifdef __cplusplus
|
138
|
-
}
|
139
|
-
#endif
|
128
|
+
grpc_lb_policy_factory* factory, grpc_lb_policy_args* args);
|
140
129
|
|
141
130
|
#endif /* GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_LB_POLICY_FACTORY_H */
|
@@ -20,7 +20,7 @@
|
|
20
20
|
|
21
21
|
#include <string.h>
|
22
22
|
|
23
|
-
#include "src/core/lib/
|
23
|
+
#include "src/core/lib/gpr/string.h"
|
24
24
|
|
25
25
|
#define MAX_POLICIES 10
|
26
26
|
|
@@ -61,10 +61,10 @@ static grpc_lb_policy_factory* lookup_factory(const char* name) {
|
|
61
61
|
return nullptr;
|
62
62
|
}
|
63
63
|
|
64
|
-
grpc_lb_policy* grpc_lb_policy_create(
|
64
|
+
grpc_lb_policy* grpc_lb_policy_create(const char* name,
|
65
65
|
grpc_lb_policy_args* args) {
|
66
66
|
grpc_lb_policy_factory* factory = lookup_factory(name);
|
67
67
|
grpc_lb_policy* lb_policy =
|
68
|
-
grpc_lb_policy_factory_create_lb_policy(
|
68
|
+
grpc_lb_policy_factory_create_lb_policy(factory, args);
|
69
69
|
return lb_policy;
|
70
70
|
}
|
@@ -22,10 +22,6 @@
|
|
22
22
|
#include "src/core/ext/filters/client_channel/lb_policy_factory.h"
|
23
23
|
#include "src/core/lib/iomgr/exec_ctx.h"
|
24
24
|
|
25
|
-
#ifdef __cplusplus
|
26
|
-
extern "C" {
|
27
|
-
#endif
|
28
|
-
|
29
25
|
/** Initialize the registry and set \a default_factory as the factory to be
|
30
26
|
* returned when no name is provided in a lookup */
|
31
27
|
void grpc_lb_policy_registry_init(void);
|
@@ -38,11 +34,7 @@ void grpc_register_lb_policy(grpc_lb_policy_factory* factory);
|
|
38
34
|
*
|
39
35
|
* If \a name is NULL, the default factory from \a grpc_lb_policy_registry_init
|
40
36
|
* will be returned. */
|
41
|
-
grpc_lb_policy* grpc_lb_policy_create(
|
37
|
+
grpc_lb_policy* grpc_lb_policy_create(const char* name,
|
42
38
|
grpc_lb_policy_args* args);
|
43
39
|
|
44
|
-
#ifdef __cplusplus
|
45
|
-
}
|
46
|
-
#endif
|
47
|
-
|
48
40
|
#endif /* GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_LB_POLICY_REGISTRY_H */
|
@@ -24,10 +24,6 @@
|
|
24
24
|
#include "src/core/ext/filters/client_channel/uri_parser.h"
|
25
25
|
#include "src/core/lib/iomgr/resolve_address.h"
|
26
26
|
|
27
|
-
#ifdef __cplusplus
|
28
|
-
extern "C" {
|
29
|
-
#endif
|
30
|
-
|
31
27
|
/** Populate \a resolved_addr from \a uri, whose path is expected to contain a
|
32
28
|
* unix socket path. Returns true upon success. */
|
33
29
|
bool grpc_parse_unix(const grpc_uri* uri, grpc_resolved_address* resolved_addr);
|
@@ -49,8 +45,4 @@ bool grpc_parse_ipv4_hostport(const char* hostport, grpc_resolved_address* addr,
|
|
49
45
|
bool grpc_parse_ipv6_hostport(const char* hostport, grpc_resolved_address* addr,
|
50
46
|
bool log_errors);
|
51
47
|
|
52
|
-
#ifdef __cplusplus
|
53
|
-
}
|
54
|
-
#endif
|
55
|
-
|
56
48
|
#endif /* GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_PARSE_ADDRESS_H */
|
@@ -23,24 +23,22 @@ void grpc_proxy_mapper_init(const grpc_proxy_mapper_vtable* vtable,
|
|
23
23
|
mapper->vtable = vtable;
|
24
24
|
}
|
25
25
|
|
26
|
-
bool grpc_proxy_mapper_map_name(
|
27
|
-
grpc_proxy_mapper* mapper,
|
26
|
+
bool grpc_proxy_mapper_map_name(grpc_proxy_mapper* mapper,
|
28
27
|
const char* server_uri,
|
29
28
|
const grpc_channel_args* args,
|
30
29
|
char** name_to_resolve,
|
31
30
|
grpc_channel_args** new_args) {
|
32
|
-
return mapper->vtable->map_name(
|
33
|
-
|
31
|
+
return mapper->vtable->map_name(mapper, server_uri, args, name_to_resolve,
|
32
|
+
new_args);
|
34
33
|
}
|
35
34
|
|
36
|
-
bool grpc_proxy_mapper_map_address(
|
37
|
-
grpc_proxy_mapper* mapper,
|
35
|
+
bool grpc_proxy_mapper_map_address(grpc_proxy_mapper* mapper,
|
38
36
|
const grpc_resolved_address* address,
|
39
37
|
const grpc_channel_args* args,
|
40
38
|
grpc_resolved_address** new_address,
|
41
39
|
grpc_channel_args** new_args) {
|
42
|
-
return mapper->vtable->map_address(
|
43
|
-
|
40
|
+
return mapper->vtable->map_address(mapper, address, args, new_address,
|
41
|
+
new_args);
|
44
42
|
}
|
45
43
|
|
46
44
|
void grpc_proxy_mapper_destroy(grpc_proxy_mapper* mapper) {
|
@@ -25,10 +25,6 @@
|
|
25
25
|
|
26
26
|
#include "src/core/lib/iomgr/resolve_address.h"
|
27
27
|
|
28
|
-
#ifdef __cplusplus
|
29
|
-
extern "C" {
|
30
|
-
#endif
|
31
|
-
|
32
28
|
typedef struct grpc_proxy_mapper grpc_proxy_mapper;
|
33
29
|
|
34
30
|
typedef struct {
|
@@ -36,14 +32,14 @@ typedef struct {
|
|
36
32
|
/// If no proxy is needed, returns false.
|
37
33
|
/// Otherwise, sets \a name_to_resolve, optionally sets \a new_args,
|
38
34
|
/// and returns true.
|
39
|
-
bool (*map_name)(
|
40
|
-
const
|
41
|
-
|
35
|
+
bool (*map_name)(grpc_proxy_mapper* mapper, const char* server_uri,
|
36
|
+
const grpc_channel_args* args, char** name_to_resolve,
|
37
|
+
grpc_channel_args** new_args);
|
42
38
|
/// Determines the proxy address to use to contact \a address.
|
43
39
|
/// If no proxy is needed, returns false.
|
44
40
|
/// Otherwise, sets \a new_address, optionally sets \a new_args, and
|
45
41
|
/// returns true.
|
46
|
-
bool (*map_address)(
|
42
|
+
bool (*map_address)(grpc_proxy_mapper* mapper,
|
47
43
|
const grpc_resolved_address* address,
|
48
44
|
const grpc_channel_args* args,
|
49
45
|
grpc_resolved_address** new_address,
|
@@ -59,15 +55,13 @@ struct grpc_proxy_mapper {
|
|
59
55
|
void grpc_proxy_mapper_init(const grpc_proxy_mapper_vtable* vtable,
|
60
56
|
grpc_proxy_mapper* mapper);
|
61
57
|
|
62
|
-
bool grpc_proxy_mapper_map_name(
|
63
|
-
grpc_proxy_mapper* mapper,
|
58
|
+
bool grpc_proxy_mapper_map_name(grpc_proxy_mapper* mapper,
|
64
59
|
const char* server_uri,
|
65
60
|
const grpc_channel_args* args,
|
66
61
|
char** name_to_resolve,
|
67
62
|
grpc_channel_args** new_args);
|
68
63
|
|
69
|
-
bool grpc_proxy_mapper_map_address(
|
70
|
-
grpc_proxy_mapper* mapper,
|
64
|
+
bool grpc_proxy_mapper_map_address(grpc_proxy_mapper* mapper,
|
71
65
|
const grpc_resolved_address* address,
|
72
66
|
const grpc_channel_args* args,
|
73
67
|
grpc_resolved_address** new_address,
|
@@ -75,8 +69,4 @@ bool grpc_proxy_mapper_map_address(grpc_exec_ctx* exec_ctx,
|
|
75
69
|
|
76
70
|
void grpc_proxy_mapper_destroy(grpc_proxy_mapper* mapper);
|
77
71
|
|
78
|
-
#ifdef __cplusplus
|
79
|
-
}
|
80
|
-
#endif
|
81
|
-
|
82
72
|
#endif /* GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_PROXY_MAPPER_H */
|