grpc 1.7.3 → 1.8.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Makefile +2106 -2116
- data/include/grpc/census.h +1 -432
- data/include/grpc/compression.h +9 -9
- data/include/grpc/grpc.h +115 -98
- data/include/grpc/grpc_cronet.h +3 -3
- data/include/grpc/grpc_posix.h +4 -4
- data/include/grpc/grpc_security.h +160 -88
- data/include/grpc/grpc_security_constants.h +7 -0
- data/include/grpc/impl/codegen/atm.h +9 -1
- data/include/grpc/impl/codegen/atm_gcc_atomic.h +13 -4
- data/include/grpc/impl/codegen/atm_gcc_sync.h +6 -5
- data/include/grpc/impl/codegen/atm_windows.h +23 -22
- data/include/grpc/impl/codegen/byte_buffer.h +14 -14
- data/include/grpc/impl/codegen/byte_buffer_reader.h +2 -2
- data/include/grpc/impl/codegen/connectivity_state.h +0 -2
- data/include/grpc/impl/codegen/grpc_types.h +32 -28
- data/include/grpc/impl/codegen/port_platform.h +48 -0
- data/include/grpc/impl/codegen/slice.h +10 -10
- data/include/grpc/impl/codegen/sync_generic.h +9 -3
- data/include/grpc/slice.h +16 -17
- data/include/grpc/slice_buffer.h +22 -22
- data/include/grpc/support/alloc.h +11 -11
- data/include/grpc/support/avl.h +28 -20
- data/include/grpc/support/cmdline.h +13 -13
- data/include/grpc/support/histogram.h +17 -17
- data/include/grpc/support/host_port.h +2 -2
- data/include/grpc/support/log.h +9 -9
- data/include/grpc/support/log_windows.h +1 -1
- data/include/grpc/support/string_util.h +2 -2
- data/include/grpc/support/subprocess.h +5 -5
- data/include/grpc/support/sync.h +43 -27
- data/include/grpc/support/thd.h +6 -6
- data/include/grpc/support/tls_gcc.h +1 -1
- data/include/grpc/support/tls_pthread.h +1 -1
- data/src/core/ext/census/{grpc_context.c → grpc_context.cc} +5 -8
- data/src/core/ext/filters/client_channel/backup_poller.cc +165 -0
- data/src/core/ext/{census/grpc_filter.h → filters/client_channel/backup_poller.h} +12 -7
- data/src/core/ext/filters/client_channel/{channel_connectivity.c → channel_connectivity.cc} +45 -42
- data/src/core/ext/filters/client_channel/{client_channel.c → client_channel.cc} +452 -417
- data/src/core/ext/filters/client_channel/client_channel.h +16 -8
- data/src/core/ext/filters/client_channel/{client_channel_factory.c → client_channel_factory.cc} +0 -0
- data/src/core/ext/filters/client_channel/client_channel_factory.h +29 -21
- data/src/core/ext/filters/client_channel/{client_channel_plugin.c → client_channel_plugin.cc} +15 -19
- data/src/core/ext/filters/client_channel/{connector.c → connector.cc} +0 -0
- data/src/core/ext/filters/client_channel/connector.h +29 -21
- data/src/core/ext/filters/client_channel/{http_connect_handshaker.c → http_connect_handshaker.cc} +10 -10
- data/src/core/ext/filters/client_channel/http_connect_handshaker.h +8 -0
- data/src/core/ext/filters/client_channel/{http_proxy.c → http_proxy.cc} +14 -14
- data/src/core/ext/filters/client_channel/http_proxy.h +8 -0
- data/src/core/ext/filters/client_channel/{lb_policy.c → lb_policy.cc} +47 -48
- data/src/core/ext/filters/client_channel/lb_policy.h +76 -70
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/{client_load_reporting_filter.c → client_load_reporting_filter.cc} +28 -29
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +9 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/{grpclb.c → grpclb.cc} +554 -563
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +9 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +17 -9
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/{grpclb_channel_secure.c → grpclb_channel_secure.cc} +17 -17
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/{grpclb_client_stats.c → grpclb_client_stats.cc} +3 -3
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +9 -1
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/{load_balancer_api.c → load_balancer_api.cc} +64 -67
- data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +20 -21
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +599 -0
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +695 -0
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.cc +270 -0
- data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +153 -0
- data/src/core/ext/filters/client_channel/{lb_policy_factory.c → lb_policy_factory.cc} +10 -10
- data/src/core/ext/filters/client_channel/lb_policy_factory.h +48 -40
- data/src/core/ext/filters/client_channel/{lb_policy_registry.c → lb_policy_registry.cc} +9 -9
- data/src/core/ext/filters/client_channel/lb_policy_registry.h +11 -3
- data/src/core/ext/filters/client_channel/{parse_address.c → parse_address.cc} +24 -24
- data/src/core/ext/filters/client_channel/parse_address.h +14 -6
- data/src/core/ext/filters/client_channel/{proxy_mapper.c → proxy_mapper.cc} +0 -0
- data/src/core/ext/filters/client_channel/proxy_mapper.h +8 -0
- data/src/core/ext/filters/client_channel/{proxy_mapper_registry.c → proxy_mapper_registry.cc} +0 -0
- data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +8 -0
- data/src/core/ext/filters/client_channel/{resolver.c → resolver.cc} +21 -23
- data/src/core/ext/filters/client_channel/resolver.h +33 -27
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/{dns_resolver_ares.c → dns_resolver_ares.cc} +133 -133
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +18 -9
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/{grpc_ares_ev_driver_posix.c → grpc_ares_ev_driver_posix.cc} +58 -56
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/{grpc_ares_wrapper.c → grpc_ares_wrapper.cc} +118 -115
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +23 -15
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +60 -0
- data/src/core/ext/filters/client_channel/resolver/dns/native/{dns_resolver.c → dns_resolver.cc} +100 -94
- data/src/core/ext/filters/client_channel/resolver/fake/{fake_resolver.c → fake_resolver.cc} +14 -14
- data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +9 -1
- data/src/core/ext/filters/client_channel/resolver/sockaddr/{sockaddr_resolver.c → sockaddr_resolver.cc} +60 -60
- data/src/core/ext/filters/client_channel/{resolver_factory.c → resolver_factory.cc} +2 -2
- data/src/core/ext/filters/client_channel/resolver_factory.h +27 -19
- data/src/core/ext/filters/client_channel/{resolver_registry.c → resolver_registry.cc} +35 -35
- data/src/core/ext/filters/client_channel/resolver_registry.h +18 -10
- data/src/core/ext/filters/client_channel/{retry_throttle.c → retry_throttle.cc} +10 -10
- data/src/core/ext/filters/client_channel/retry_throttle.h +8 -0
- data/src/core/ext/filters/client_channel/{subchannel.c → subchannel.cc} +210 -213
- data/src/core/ext/filters/client_channel/subchannel.h +68 -60
- data/src/core/ext/filters/client_channel/{subchannel_index.c → subchannel_index.cc} +52 -52
- data/src/core/ext/filters/client_channel/subchannel_index.h +22 -14
- data/src/core/ext/filters/client_channel/{uri_parser.c → uri_parser.cc} +29 -27
- data/src/core/ext/filters/client_channel/uri_parser.h +18 -10
- data/src/core/ext/filters/deadline/{deadline_filter.c → deadline_filter.cc} +12 -15
- data/src/core/ext/filters/deadline/deadline_filter.h +11 -2
- data/src/core/ext/filters/http/client/{http_client_filter.c → http_client_filter.cc} +83 -83
- data/src/core/ext/filters/http/client/http_client_filter.h +8 -0
- data/src/core/ext/filters/http/{http_filters_plugin.c → http_filters_plugin.cc} +20 -21
- data/src/core/ext/filters/http/message_compress/{message_compress_filter.c → message_compress_filter.cc} +84 -83
- data/src/core/ext/filters/http/message_compress/message_compress_filter.h +9 -1
- data/src/core/ext/filters/http/server/{http_server_filter.c → http_server_filter.cc} +80 -78
- data/src/core/ext/filters/http/server/http_server_filter.h +8 -0
- data/src/core/ext/filters/load_reporting/{server_load_reporting_filter.c → server_load_reporting_filter.cc} +29 -29
- data/src/core/ext/filters/load_reporting/server_load_reporting_filter.h +9 -1
- data/src/core/ext/filters/load_reporting/{server_load_reporting_plugin.c → server_load_reporting_plugin.cc} +11 -11
- data/src/core/ext/filters/load_reporting/server_load_reporting_plugin.h +13 -5
- data/src/core/ext/filters/max_age/{max_age_filter.c → max_age_filter.cc} +46 -56
- data/src/core/ext/filters/max_age/max_age_filter.h +8 -0
- data/src/core/ext/filters/message_size/{message_size_filter.c → message_size_filter.cc} +62 -40
- data/src/core/ext/filters/message_size/message_size_filter.h +8 -0
- data/src/core/ext/filters/workarounds/{workaround_cronet_compression_filter.c → workaround_cronet_compression_filter.cc} +11 -11
- data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.h +8 -0
- data/src/core/ext/filters/workarounds/{workaround_utils.c → workaround_utils.cc} +7 -7
- data/src/core/ext/filters/workarounds/workaround_utils.h +9 -1
- data/src/core/ext/transport/chttp2/alpn/{alpn.c → alpn.cc} +3 -3
- data/src/core/ext/transport/chttp2/alpn/alpn.h +10 -2
- data/src/core/ext/transport/chttp2/client/{chttp2_connector.c → chttp2_connector.cc} +49 -45
- data/src/core/ext/transport/chttp2/client/chttp2_connector.h +8 -0
- data/src/core/ext/transport/chttp2/client/insecure/{channel_create.c → channel_create.cc} +28 -27
- data/src/core/ext/transport/chttp2/client/insecure/{channel_create_posix.c → channel_create_posix.cc} +14 -13
- data/src/core/ext/transport/chttp2/client/secure/{secure_channel_create.c → secure_channel_create.cc} +68 -66
- data/src/core/ext/transport/chttp2/server/{chttp2_server.c → chttp2_server.cc} +76 -77
- data/src/core/ext/transport/chttp2/server/chttp2_server.h +11 -3
- data/src/core/ext/transport/chttp2/server/insecure/{server_chttp2.c → server_chttp2.cc} +3 -3
- data/src/core/ext/transport/chttp2/server/insecure/{server_chttp2_posix.c → server_chttp2_posix.cc} +13 -12
- data/src/core/ext/transport/chttp2/server/secure/{server_secure_chttp2.c → server_secure_chttp2.cc} +12 -10
- data/src/core/ext/transport/chttp2/transport/{bin_decoder.c → bin_decoder.cc} +7 -7
- data/src/core/ext/transport/chttp2/transport/bin_decoder.h +15 -7
- data/src/core/ext/transport/chttp2/transport/{bin_encoder.c → bin_encoder.cc} +11 -11
- data/src/core/ext/transport/chttp2/transport/bin_encoder.h +8 -0
- data/src/core/ext/transport/chttp2/transport/{chttp2_plugin.c → chttp2_plugin.cc} +2 -9
- data/src/core/ext/transport/chttp2/transport/{chttp2_transport.c → chttp2_transport.cc} +778 -778
- data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +14 -10
- data/src/core/ext/transport/chttp2/transport/flow_control.cc +385 -0
- data/src/core/ext/transport/chttp2/transport/flow_control.h +337 -0
- data/src/core/ext/transport/chttp2/transport/frame.h +8 -0
- data/src/core/ext/transport/chttp2/transport/{frame_data.c → frame_data.cc} +34 -34
- data/src/core/ext/transport/chttp2/transport/frame_data.h +25 -17
- data/src/core/ext/transport/chttp2/transport/{frame_goaway.c → frame_goaway.cc} +18 -18
- data/src/core/ext/transport/chttp2/transport/frame_goaway.h +18 -10
- data/src/core/ext/transport/chttp2/transport/{frame_ping.c → frame_ping.cc} +18 -19
- data/src/core/ext/transport/chttp2/transport/frame_ping.h +12 -4
- data/src/core/ext/transport/chttp2/transport/{frame_rst_stream.c → frame_rst_stream.cc} +16 -16
- data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +16 -8
- data/src/core/ext/transport/chttp2/transport/{frame_settings.c → frame_settings.cc} +23 -24
- data/src/core/ext/transport/chttp2/transport/frame_settings.h +17 -9
- data/src/core/ext/transport/chttp2/transport/{frame_window_update.c → frame_window_update.cc} +22 -24
- data/src/core/ext/transport/chttp2/transport/frame_window_update.h +14 -6
- data/src/core/ext/transport/chttp2/transport/{hpack_encoder.c → hpack_encoder.cc} +206 -161
- data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +23 -13
- data/src/core/ext/transport/chttp2/transport/{hpack_parser.c → hpack_parser.cc} +340 -334
- data/src/core/ext/transport/chttp2/transport/hpack_parser.h +30 -22
- data/src/core/ext/transport/chttp2/transport/{hpack_table.c → hpack_table.cc} +25 -25
- data/src/core/ext/transport/chttp2/transport/hpack_table.h +19 -11
- data/src/core/ext/transport/chttp2/transport/{http2_settings.c → http2_settings.cc} +1 -1
- data/src/core/ext/transport/chttp2/transport/http2_settings.h +10 -2
- data/src/core/ext/transport/chttp2/transport/{huffsyms.c → huffsyms.cc} +0 -0
- data/src/core/ext/transport/chttp2/transport/huffsyms.h +8 -0
- data/src/core/ext/transport/chttp2/transport/{incoming_metadata.c → incoming_metadata.cc} +14 -13
- data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +18 -10
- data/src/core/ext/transport/chttp2/transport/internal.h +214 -340
- data/src/core/ext/transport/chttp2/transport/{parsing.c → parsing.cc} +152 -141
- data/src/core/ext/transport/chttp2/transport/{stream_lists.c → stream_lists.cc} +53 -53
- data/src/core/ext/transport/chttp2/transport/{stream_map.c → stream_map.cc} +35 -34
- data/src/core/ext/transport/chttp2/transport/stream_map.h +22 -14
- data/src/core/ext/transport/chttp2/transport/{varint.c → varint.cc} +0 -0
- data/src/core/ext/transport/chttp2/transport/varint.h +8 -0
- data/src/core/ext/transport/chttp2/transport/writing.cc +636 -0
- data/src/core/ext/transport/inproc/{inproc_plugin.c → inproc_plugin.cc} +5 -6
- data/src/core/ext/transport/inproc/{inproc_transport.c → inproc_transport.cc} +479 -544
- data/src/core/ext/transport/inproc/inproc_transport.h +4 -4
- data/src/core/lib/backoff/backoff.cc +80 -0
- data/src/core/lib/backoff/backoff.h +83 -0
- data/src/core/lib/channel/{channel_args.c → channel_args.cc} +92 -92
- data/src/core/lib/channel/channel_args.h +45 -37
- data/src/core/lib/channel/{channel_stack.c → channel_stack.cc} +67 -68
- data/src/core/lib/channel/channel_stack.h +76 -75
- data/src/core/lib/channel/{channel_stack_builder.c → channel_stack_builder.cc} +91 -91
- data/src/core/lib/channel/channel_stack_builder.h +45 -45
- data/src/core/lib/channel/{connected_channel.c → connected_channel.cc} +70 -70
- data/src/core/lib/channel/connected_channel.h +12 -4
- data/src/core/lib/channel/context.h +2 -2
- data/src/core/lib/channel/{handshaker.c → handshaker.cc} +7 -9
- data/src/core/lib/channel/handshaker.h +9 -1
- data/src/core/lib/channel/{handshaker_factory.c → handshaker_factory.cc} +7 -7
- data/src/core/lib/channel/handshaker_factory.h +18 -10
- data/src/core/lib/channel/{handshaker_registry.c → handshaker_registry.cc} +0 -0
- data/src/core/lib/channel/handshaker_registry.h +8 -0
- data/src/core/lib/compression/algorithm_metadata.h +8 -0
- data/src/core/lib/compression/{compression.c → compression.cc} +9 -9
- data/src/core/lib/compression/{message_compress.c → message_compress.cc} +0 -0
- data/src/core/lib/compression/message_compress.h +8 -0
- data/src/core/lib/compression/{stream_compression.c → stream_compression.cc} +12 -12
- data/src/core/lib/compression/stream_compression.h +27 -19
- data/src/core/lib/compression/{stream_compression_gzip.c → stream_compression_gzip.cc} +35 -36
- data/src/core/lib/compression/stream_compression_gzip.h +8 -0
- data/src/core/lib/compression/{stream_compression_identity.c → stream_compression_identity.cc} +19 -20
- data/src/core/lib/compression/stream_compression_identity.h +8 -0
- data/src/core/lib/debug/{stats.c → stats.cc} +19 -19
- data/src/core/lib/debug/stats.h +17 -9
- data/src/core/lib/debug/{stats_data.c → stats_data.cc} +45 -22
- data/src/core/lib/debug/stats_data.h +58 -19
- data/src/core/lib/debug/trace.cc +142 -0
- data/src/core/lib/debug/trace.h +74 -14
- data/src/core/lib/http/{format_request.c → format_request.cc} +10 -10
- data/src/core/lib/http/format_request.h +12 -4
- data/src/core/lib/http/{httpcli.c → httpcli.cc} +80 -80
- data/src/core/lib/http/httpcli.h +41 -33
- data/src/core/lib/http/{httpcli_security_connector.c → httpcli_security_connector.cc} +69 -55
- data/src/core/lib/http/{parser.c → parser.cc} +42 -42
- data/src/core/lib/http/parser.h +28 -20
- data/src/core/lib/{support → iomgr}/block_annotate.h +17 -8
- data/src/core/lib/iomgr/{call_combiner.c → call_combiner.cc} +29 -17
- data/src/core/lib/iomgr/call_combiner.h +9 -1
- data/src/core/lib/iomgr/closure.h +220 -62
- data/src/core/lib/iomgr/{combiner.c → combiner.cc} +63 -62
- data/src/core/lib/iomgr/combiner.h +16 -8
- data/src/core/lib/iomgr/{endpoint.c → endpoint.cc} +6 -0
- data/src/core/lib/iomgr/endpoint.h +47 -32
- data/src/core/lib/iomgr/endpoint_pair.h +12 -4
- data/src/core/lib/iomgr/{endpoint_pair_posix.c → endpoint_pair_posix.cc} +3 -3
- data/src/core/lib/iomgr/{endpoint_pair_uv.c → endpoint_pair_uv.cc} +2 -2
- data/src/core/lib/iomgr/{endpoint_pair_windows.c → endpoint_pair_windows.cc} +6 -6
- data/src/core/lib/iomgr/{error.c → error.cc} +125 -124
- data/src/core/lib/iomgr/error.h +32 -27
- data/src/core/lib/iomgr/error_internal.h +11 -2
- data/src/core/lib/iomgr/{ev_epoll1_linux.c → ev_epoll1_linux.cc} +214 -215
- data/src/core/lib/iomgr/ev_epoll1_linux.h +9 -1
- data/src/core/lib/iomgr/ev_epollex_linux.cc +1488 -0
- data/src/core/lib/iomgr/ev_epollex_linux.h +9 -1
- data/src/core/lib/iomgr/{ev_epollsig_linux.c → ev_epollsig_linux.cc} +304 -305
- data/src/core/lib/iomgr/ev_epollsig_linux.h +12 -4
- data/src/core/lib/iomgr/{ev_poll_posix.c → ev_poll_posix.cc} +272 -283
- data/src/core/lib/iomgr/ev_poll_posix.h +10 -2
- data/src/core/lib/iomgr/ev_posix.cc +288 -0
- data/src/core/lib/iomgr/ev_posix.h +75 -67
- data/src/core/lib/iomgr/{ev_windows.c → ev_windows.cc} +2 -2
- data/src/core/lib/iomgr/exec_ctx.cc +177 -0
- data/src/core/lib/iomgr/exec_ctx.h +35 -13
- data/src/core/lib/iomgr/{executor.c → executor.cc} +34 -35
- data/src/core/lib/iomgr/executor.h +12 -4
- data/src/core/lib/iomgr/{fork_posix.c → fork_posix.cc} +0 -0
- data/src/core/lib/iomgr/{fork_windows.c → fork_windows.cc} +0 -0
- data/src/core/lib/iomgr/gethostname.h +9 -1
- data/src/core/lib/iomgr/{gethostname_fallback.c → gethostname_fallback.cc} +2 -1
- data/src/core/lib/iomgr/{gethostname_host_name_max.c → gethostname_host_name_max.cc} +4 -3
- data/src/core/lib/iomgr/{gethostname_sysconf.c → gethostname_sysconf.cc} +3 -2
- data/src/core/lib/iomgr/{iocp_windows.c → iocp_windows.cc} +23 -25
- data/src/core/lib/iomgr/iocp_windows.h +17 -3
- data/src/core/lib/iomgr/{iomgr.c → iomgr.cc} +25 -19
- data/src/core/lib/iomgr/iomgr.h +11 -3
- data/src/core/lib/iomgr/iomgr_internal.h +13 -5
- data/src/core/lib/iomgr/{iomgr_posix.c → iomgr_posix.cc} +0 -1
- data/src/core/lib/iomgr/{iomgr_uv.c → iomgr_uv.cc} +1 -1
- data/src/core/lib/iomgr/iomgr_uv.h +8 -0
- data/src/core/lib/iomgr/{iomgr_windows.c → iomgr_windows.cc} +0 -0
- data/src/core/lib/iomgr/{is_epollexclusive_available.c → is_epollexclusive_available.cc} +1 -1
- data/src/core/lib/iomgr/is_epollexclusive_available.h +8 -0
- data/src/core/lib/iomgr/{load_file.c → load_file.cc} +12 -12
- data/src/core/lib/iomgr/load_file.h +2 -2
- data/src/core/lib/iomgr/{lockfree_event.c → lockfree_event.cc} +76 -68
- data/src/core/lib/iomgr/lockfree_event.h +30 -11
- data/src/core/lib/iomgr/{network_status_tracker.c → network_status_tracker.cc} +3 -2
- data/src/core/lib/iomgr/network_status_tracker.h +2 -2
- data/src/core/lib/iomgr/{polling_entity.c → polling_entity.cc} +18 -18
- data/src/core/lib/iomgr/polling_entity.h +21 -13
- data/src/core/lib/iomgr/pollset.h +17 -11
- data/src/core/lib/iomgr/pollset_set.h +23 -15
- data/src/core/lib/iomgr/{pollset_set_uv.c → pollset_set_uv.cc} +0 -0
- data/src/core/lib/iomgr/{pollset_set_windows.c → pollset_set_windows.cc} +0 -0
- data/src/core/lib/iomgr/{pollset_uv.c → pollset_uv.cc} +31 -29
- data/src/core/lib/iomgr/pollset_uv.h +8 -0
- data/src/core/lib/iomgr/{pollset_windows.c → pollset_windows.cc} +24 -24
- data/src/core/lib/iomgr/pollset_windows.h +17 -4
- data/src/core/lib/iomgr/port.h +10 -0
- data/src/core/lib/iomgr/resolve_address.h +18 -10
- data/src/core/lib/iomgr/{resolve_address_posix.c → resolve_address_posix.cc} +40 -40
- data/src/core/lib/iomgr/{resolve_address_uv.c → resolve_address_uv.cc} +61 -56
- data/src/core/lib/iomgr/{resolve_address_windows.c → resolve_address_windows.cc} +36 -34
- data/src/core/lib/iomgr/{resource_quota.c → resource_quota.cc} +209 -180
- data/src/core/lib/iomgr/resource_quota.h +45 -37
- data/src/core/lib/iomgr/{sockaddr_utils.c → sockaddr_utils.cc} +61 -61
- data/src/core/lib/iomgr/sockaddr_utils.h +23 -15
- data/src/core/lib/iomgr/sockaddr_windows.h +6 -0
- data/src/core/lib/iomgr/{socket_factory_posix.c → socket_factory_posix.cc} +20 -20
- data/src/core/lib/iomgr/socket_factory_posix.h +15 -15
- data/src/core/lib/iomgr/{socket_mutator.c → socket_mutator.cc} +18 -18
- data/src/core/lib/iomgr/socket_mutator.h +11 -11
- data/src/core/lib/iomgr/socket_utils.h +9 -1
- data/src/core/lib/iomgr/{socket_utils_common_posix.c → socket_utils_common_posix.cc} +28 -28
- data/src/core/lib/iomgr/{socket_utils_linux.c → socket_utils_linux.cc} +3 -3
- data/src/core/lib/iomgr/{socket_utils_posix.c → socket_utils_posix.cc} +3 -3
- data/src/core/lib/iomgr/socket_utils_posix.h +26 -18
- data/src/core/lib/iomgr/{socket_utils_uv.c → socket_utils_uv.cc} +1 -1
- data/src/core/lib/iomgr/{socket_utils_windows.c → socket_utils_windows.cc} +2 -2
- data/src/core/lib/iomgr/{socket_windows.c → socket_windows.cc} +18 -18
- data/src/core/lib/iomgr/socket_windows.h +26 -13
- data/src/core/lib/iomgr/tcp_client.h +14 -6
- data/src/core/lib/iomgr/{tcp_client_posix.c → tcp_client_posix.cc} +69 -70
- data/src/core/lib/iomgr/tcp_client_posix.h +11 -3
- data/src/core/lib/iomgr/{tcp_client_uv.c → tcp_client_uv.cc} +47 -48
- data/src/core/lib/iomgr/{tcp_client_windows.c → tcp_client_windows.cc} +46 -44
- data/src/core/lib/iomgr/{tcp_posix.c → tcp_posix.cc} +198 -175
- data/src/core/lib/iomgr/tcp_posix.h +15 -7
- data/src/core/lib/iomgr/tcp_server.h +31 -23
- data/src/core/lib/iomgr/{tcp_server_posix.c → tcp_server_posix.cc} +78 -77
- data/src/core/lib/iomgr/tcp_server_utils_posix.h +27 -19
- data/src/core/lib/iomgr/{tcp_server_utils_posix_common.c → tcp_server_utils_posix_common.cc} +27 -27
- data/src/core/lib/iomgr/{tcp_server_utils_posix_ifaddrs.c → tcp_server_utils_posix_ifaddrs.cc} +25 -25
- data/src/core/lib/iomgr/{tcp_server_utils_posix_noifaddrs.c → tcp_server_utils_posix_noifaddrs.cc} +2 -2
- data/src/core/lib/iomgr/{tcp_server_uv.c → tcp_server_uv.cc} +133 -105
- data/src/core/lib/iomgr/{tcp_server_windows.c → tcp_server_windows.cc} +81 -77
- data/src/core/lib/iomgr/tcp_uv.cc +420 -0
- data/src/core/lib/iomgr/tcp_uv.h +18 -4
- data/src/core/lib/iomgr/{tcp_windows.c → tcp_windows.cc} +90 -79
- data/src/core/lib/iomgr/tcp_windows.h +17 -4
- data/src/core/lib/iomgr/{time_averaged_stats.c → time_averaged_stats.cc} +0 -0
- data/src/core/lib/iomgr/time_averaged_stats.h +8 -0
- data/src/core/lib/iomgr/timer.h +16 -9
- data/src/core/lib/iomgr/{timer_generic.c → timer_generic.cc} +130 -171
- data/src/core/lib/iomgr/timer_generic.h +4 -4
- data/src/core/lib/iomgr/{timer_heap.c → timer_heap.cc} +20 -21
- data/src/core/lib/iomgr/timer_heap.h +16 -8
- data/src/core/lib/iomgr/{timer_manager.c → timer_manager.cc} +54 -52
- data/src/core/lib/iomgr/timer_manager.h +8 -0
- data/src/core/lib/iomgr/{timer_uv.c → timer_uv.cc} +22 -24
- data/src/core/lib/iomgr/timer_uv.h +2 -2
- data/src/core/lib/iomgr/{udp_server.c → udp_server.cc} +75 -75
- data/src/core/lib/iomgr/udp_server.h +25 -17
- data/src/core/lib/iomgr/{unix_sockets_posix.c → unix_sockets_posix.cc} +22 -21
- data/src/core/lib/iomgr/unix_sockets_posix.h +14 -6
- data/src/core/lib/iomgr/{unix_sockets_posix_noop.c → unix_sockets_posix_noop.cc} +5 -5
- data/src/core/lib/iomgr/{wakeup_fd_cv.c → wakeup_fd_cv.cc} +2 -2
- data/src/core/lib/iomgr/wakeup_fd_cv.h +10 -0
- data/src/core/lib/iomgr/{wakeup_fd_eventfd.c → wakeup_fd_eventfd.cc} +0 -0
- data/src/core/lib/iomgr/{wakeup_fd_nospecial.c → wakeup_fd_nospecial.cc} +0 -0
- data/src/core/lib/iomgr/{wakeup_fd_pipe.c → wakeup_fd_pipe.cc} +1 -0
- data/src/core/lib/iomgr/wakeup_fd_pipe.h +9 -1
- data/src/core/lib/iomgr/{wakeup_fd_posix.c → wakeup_fd_posix.cc} +6 -7
- data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -0
- data/src/core/lib/json/{json.c → json.cc} +0 -0
- data/src/core/lib/json/json.h +8 -0
- data/src/core/lib/json/{json_reader.c → json_reader.cc} +18 -18
- data/src/core/lib/json/json_reader.h +26 -18
- data/src/core/lib/json/{json_string.c → json_string.cc} +57 -57
- data/src/core/lib/json/{json_writer.c → json_writer.cc} +20 -20
- data/src/core/lib/json/json_writer.h +23 -15
- data/src/core/lib/profiling/{basic_timers.c → basic_timers.cc} +34 -34
- data/src/core/lib/profiling/{stap_timers.c → stap_timers.cc} +5 -5
- data/src/core/lib/profiling/timers.h +6 -6
- data/src/core/lib/security/context/{security_context.c → security_context.cc} +98 -95
- data/src/core/lib/security/context/security_context.h +27 -29
- data/src/core/lib/security/credentials/composite/{composite_credentials.c → composite_credentials.cc} +79 -73
- data/src/core/lib/security/credentials/composite/composite_credentials.h +17 -9
- data/src/core/lib/security/credentials/{credentials.c → credentials.cc} +97 -92
- data/src/core/lib/security/credentials/credentials.h +83 -75
- data/src/core/lib/security/credentials/{credentials_metadata.c → credentials_metadata.cc} +7 -6
- data/src/core/lib/security/credentials/fake/{fake_credentials.c → fake_credentials.cc} +39 -36
- data/src/core/lib/security/credentials/fake/fake_credentials.h +13 -5
- data/src/core/lib/security/credentials/google_default/{credentials_generic.c → credentials_generic.cc} +5 -5
- data/src/core/lib/security/credentials/google_default/{google_default_credentials.c → google_default_credentials.cc} +55 -55
- data/src/core/lib/security/credentials/google_default/google_default_credentials.h +9 -1
- data/src/core/lib/security/credentials/iam/{iam_credentials.c → iam_credentials.cc} +19 -18
- data/src/core/lib/security/credentials/jwt/{json_token.c → json_token.cc} +80 -75
- data/src/core/lib/security/credentials/jwt/json_token.h +23 -15
- data/src/core/lib/security/credentials/jwt/{jwt_credentials.c → jwt_credentials.cc} +45 -41
- data/src/core/lib/security/credentials/jwt/jwt_credentials.h +11 -3
- data/src/core/lib/security/credentials/jwt/{jwt_verifier.c → jwt_verifier.cc} +262 -252
- data/src/core/lib/security/credentials/jwt/jwt_verifier.h +38 -30
- data/src/core/lib/security/credentials/oauth2/{oauth2_credentials.c → oauth2_credentials.cc} +138 -141
- data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +30 -22
- data/src/core/lib/security/credentials/plugin/{plugin_credentials.c → plugin_credentials.cc} +52 -53
- data/src/core/lib/security/credentials/plugin/plugin_credentials.h +7 -7
- data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +344 -0
- data/src/core/lib/security/credentials/ssl/ssl_credentials.h +27 -0
- data/src/core/lib/security/transport/auth_filters.h +16 -0
- data/src/core/lib/security/transport/{client_auth_filter.c → client_auth_filter.cc} +127 -115
- data/src/core/lib/security/transport/{lb_targets_info.c → lb_targets_info.cc} +16 -13
- data/src/core/lib/security/transport/lb_targets_info.h +11 -3
- data/src/core/lib/security/transport/{secure_endpoint.c → secure_endpoint.cc} +84 -76
- data/src/core/lib/security/transport/secure_endpoint.h +13 -5
- data/src/core/lib/security/transport/security_connector.cc +1121 -0
- data/src/core/lib/security/transport/security_connector.h +97 -79
- data/src/core/lib/security/transport/{security_handshaker.c → security_handshaker.cc} +139 -132
- data/src/core/lib/security/transport/security_handshaker.h +11 -3
- data/src/core/lib/security/transport/{server_auth_filter.c → server_auth_filter.cc} +68 -68
- data/src/core/lib/security/transport/{tsi_error.c → tsi_error.cc} +1 -1
- data/src/core/lib/security/transport/tsi_error.h +9 -1
- data/src/core/lib/security/util/{json_util.c → json_util.cc} +11 -11
- data/src/core/lib/security/util/json_util.h +12 -4
- data/src/core/lib/slice/{b64.c → b64.cc} +15 -15
- data/src/core/lib/slice/b64.h +12 -4
- data/src/core/lib/slice/{percent_encoding.c → percent_encoding.cc} +15 -15
- data/src/core/lib/slice/percent_encoding.h +11 -3
- data/src/core/lib/slice/{slice.c → slice.cc} +64 -64
- data/src/core/lib/slice/{slice_buffer.c → slice_buffer.cc} +38 -38
- data/src/core/lib/slice/{slice_hash_table.c → slice_hash_table.cc} +7 -7
- data/src/core/lib/slice/slice_hash_table.h +19 -11
- data/src/core/lib/slice/{slice_intern.c → slice_intern.cc} +35 -34
- data/src/core/lib/slice/slice_internal.h +17 -6
- data/src/core/lib/slice/{slice_string_helpers.c → slice_string_helpers.cc} +9 -9
- data/src/core/lib/slice/slice_string_helpers.h +3 -3
- data/src/core/lib/support/abstract.h +29 -0
- data/src/core/lib/support/{alloc.c → alloc.cc} +22 -22
- data/src/core/lib/support/{arena.c → arena.cc} +12 -12
- data/src/core/lib/support/arena.h +11 -3
- data/src/core/lib/support/{atm.c → atm.cc} +1 -1
- data/src/core/lib/support/{avl.c → avl.cc} +71 -70
- data/src/core/lib/support/{cmdline.c → cmdline.cc} +62 -62
- data/src/core/lib/support/{cpu_iphone.c → cpu_iphone.cc} +2 -0
- data/src/core/lib/support/{cpu_linux.c → cpu_linux.cc} +10 -0
- data/src/core/lib/support/{cpu_posix.c → cpu_posix.cc} +27 -4
- data/src/core/lib/support/{cpu_windows.c → cpu_windows.cc} +1 -0
- data/src/core/lib/support/env.h +3 -3
- data/src/core/lib/support/{env_linux.c → env_linux.cc} +11 -11
- data/src/core/lib/support/{env_posix.c → env_posix.cc} +4 -4
- data/src/core/lib/support/{env_windows.c → env_windows.cc} +5 -5
- data/src/core/lib/support/{fork.c → fork.cc} +2 -2
- data/src/core/lib/support/{histogram.c → histogram.cc} +25 -26
- data/src/core/lib/support/{host_port.c → host_port.cc} +16 -16
- data/src/core/lib/support/{log.c → log.cc} +8 -8
- data/src/core/lib/support/{log_android.c → log_android.cc} +7 -7
- data/src/core/lib/support/{log_linux.c → log_linux.cc} +8 -8
- data/src/core/lib/support/{log_posix.c → log_posix.cc} +9 -10
- data/src/core/lib/support/{log_windows.c → log_windows.cc} +7 -7
- data/src/core/lib/support/manual_constructor.h +211 -0
- data/src/core/lib/support/memory.h +41 -0
- data/src/core/lib/support/mpscq.cc +114 -0
- data/src/core/lib/support/mpscq.h +45 -7
- data/src/core/lib/support/{murmur_hash.c → murmur_hash.cc} +9 -12
- data/src/core/lib/support/murmur_hash.h +9 -1
- data/src/core/lib/support/spinlock.h +8 -1
- data/src/core/lib/support/{string.c → string.cc} +56 -55
- data/src/core/lib/support/string.h +21 -21
- data/src/core/lib/support/{string_posix.c → string_posix.cc} +5 -4
- data/src/core/lib/support/{string_util_windows.c → string_util_windows.cc} +9 -6
- data/src/core/lib/support/{string_windows.c → string_windows.cc} +3 -2
- data/src/core/lib/support/string_windows.h +8 -0
- data/src/core/lib/support/{subprocess_posix.c → subprocess_posix.cc} +13 -13
- data/src/core/lib/support/{subprocess_windows.c → subprocess_windows.cc} +9 -9
- data/src/core/lib/support/{sync.c → sync.cc} +22 -22
- data/src/core/lib/support/{sync_posix.c → sync_posix.cc} +6 -2
- data/src/core/lib/support/{sync_windows.c → sync_windows.cc} +14 -14
- data/src/core/lib/support/{thd.c → thd.cc} +0 -0
- data/src/core/lib/support/{thd_posix.c → thd_posix.cc} +10 -10
- data/src/core/lib/support/{thd_windows.c → thd_windows.cc} +10 -10
- data/src/core/lib/support/{time.c → time.cc} +0 -0
- data/src/core/lib/support/{time_posix.c → time_posix.cc} +5 -6
- data/src/core/lib/support/{time_precise.c → time_precise.cc} +6 -4
- data/src/core/lib/support/time_precise.h +9 -1
- data/src/core/lib/support/{time_windows.c → time_windows.cc} +2 -3
- data/src/core/lib/support/{tls_pthread.c → tls_pthread.cc} +2 -2
- data/src/core/lib/support/tmpfile.h +1 -1
- data/src/core/lib/support/{tmpfile_msys.c → tmpfile_msys.cc} +2 -2
- data/src/core/lib/support/{tmpfile_posix.c → tmpfile_posix.cc} +7 -7
- data/src/core/lib/support/{tmpfile_windows.c → tmpfile_windows.cc} +2 -2
- data/src/core/lib/support/{wrap_memcpy.c → wrap_memcpy.cc} +4 -2
- data/src/core/lib/surface/{alarm.c → alarm.cc} +32 -31
- data/src/core/lib/surface/alarm_internal.h +10 -2
- data/src/core/lib/surface/{api_trace.c → api_trace.cc} +1 -1
- data/src/core/lib/surface/api_trace.h +2 -2
- data/src/core/lib/surface/{byte_buffer.c → byte_buffer.cc} +13 -13
- data/src/core/lib/surface/{byte_buffer_reader.c → byte_buffer_reader.cc} +9 -9
- data/src/core/lib/surface/{call.c → call.cc} +379 -372
- data/src/core/lib/surface/call.h +37 -38
- data/src/core/lib/surface/{call_details.c → call_details.cc} +0 -0
- data/src/core/lib/surface/{call_log_batch.c → call_log_batch.cc} +13 -11
- data/src/core/lib/surface/call_test_only.h +5 -5
- data/src/core/lib/surface/{channel.c → channel.cc} +94 -95
- data/src/core/lib/surface/channel.h +29 -21
- data/src/core/lib/surface/{channel_init.c → channel_init.cc} +13 -13
- data/src/core/lib/surface/channel_init.h +6 -6
- data/src/core/lib/surface/{channel_ping.c → channel_ping.cc} +12 -12
- data/src/core/lib/surface/{channel_stack_type.c → channel_stack_type.cc} +1 -1
- data/src/core/lib/surface/channel_stack_type.h +9 -1
- data/src/core/lib/surface/{completion_queue.c → completion_queue.cc} +416 -379
- data/src/core/lib/surface/completion_queue.h +29 -29
- data/src/core/lib/surface/{completion_queue_factory.c → completion_queue_factory.cc} +1 -1
- data/src/core/lib/surface/completion_queue_factory.h +8 -0
- data/src/core/lib/surface/{event_string.c → event_string.cc} +9 -9
- data/src/core/lib/surface/event_string.h +9 -1
- data/src/core/lib/surface/{init.c → init.cc} +16 -39
- data/src/core/lib/surface/init.h +8 -0
- data/src/core/lib/surface/{init_secure.c → init_secure.cc} +12 -25
- data/src/core/lib/surface/lame_client.cc +38 -40
- data/src/core/lib/surface/lame_client.h +8 -0
- data/src/core/lib/surface/{metadata_array.c → metadata_array.cc} +0 -0
- data/src/core/lib/surface/{server.c → server.cc} +340 -404
- data/src/core/lib/surface/server.h +22 -14
- data/src/core/lib/surface/{validate_metadata.c → validate_metadata.cc} +10 -9
- data/src/core/lib/surface/validate_metadata.h +10 -2
- data/src/core/lib/surface/{version.c → version.cc} +2 -2
- data/src/core/lib/transport/bdp_estimator.cc +84 -0
- data/src/core/lib/transport/bdp_estimator.h +67 -42
- data/src/core/lib/transport/{byte_stream.c → byte_stream.cc} +51 -51
- data/src/core/lib/transport/byte_stream.h +41 -33
- data/src/core/lib/transport/{connectivity_state.c → connectivity_state.cc} +36 -40
- data/src/core/lib/transport/connectivity_state.h +29 -21
- data/src/core/lib/transport/{error_utils.c → error_utils.cc} +26 -22
- data/src/core/lib/transport/error_utils.h +18 -6
- data/src/core/lib/transport/{metadata.c → metadata.cc} +92 -88
- data/src/core/lib/transport/metadata.h +22 -20
- data/src/core/lib/transport/{metadata_batch.c → metadata_batch.cc} +78 -79
- data/src/core/lib/transport/metadata_batch.h +46 -45
- data/src/core/lib/transport/pid_controller.cc +48 -0
- data/src/core/lib/transport/pid_controller.h +84 -32
- data/src/core/lib/transport/{service_config.c → service_config.cc} +66 -48
- data/src/core/lib/transport/service_config.h +11 -2
- data/src/core/lib/transport/{static_metadata.c → static_metadata.cc} +2 -2
- data/src/core/lib/transport/static_metadata.h +30 -23
- data/src/core/lib/transport/{status_conversion.c → status_conversion.cc} +4 -3
- data/src/core/lib/transport/status_conversion.h +12 -2
- data/src/core/lib/transport/{timeout_encoding.c → timeout_encoding.cc} +28 -61
- data/src/core/lib/transport/timeout_encoding.h +11 -2
- data/src/core/lib/transport/{transport.c → transport.cc} +79 -79
- data/src/core/lib/transport/transport.h +78 -80
- data/src/core/lib/transport/transport_impl.h +27 -19
- data/src/core/lib/transport/{transport_op_string.c → transport_op_string.cc} +32 -30
- data/src/core/plugin_registry/{grpc_plugin_registry.c → grpc_plugin_registry.cc} +34 -38
- data/src/core/tsi/{fake_transport_security.c → fake_transport_security.cc} +141 -132
- data/src/core/tsi/fake_transport_security.h +5 -5
- data/src/core/tsi/{gts_transport_security.c → gts_transport_security.cc} +4 -4
- data/src/core/tsi/gts_transport_security.h +11 -3
- data/src/core/tsi/{ssl_transport_security.c → ssl_transport_security.cc} +309 -300
- data/src/core/tsi/ssl_transport_security.h +25 -25
- data/src/core/tsi/ssl_types.h +8 -0
- data/src/core/tsi/{transport_security.c → transport_security.cc} +94 -87
- data/src/core/tsi/transport_security.h +55 -55
- data/src/core/tsi/{transport_security_adapter.c → transport_security_adapter.cc} +58 -55
- data/src/core/tsi/transport_security_adapter.h +2 -2
- data/src/core/tsi/{transport_security_grpc.c → transport_security_grpc.cc} +21 -21
- data/src/core/tsi/transport_security_grpc.h +19 -19
- data/src/core/tsi/transport_security_interface.h +41 -41
- data/src/ruby/ext/grpc/extconf.rb +4 -2
- data/src/ruby/ext/grpc/rb_byte_buffer.c +5 -5
- data/src/ruby/ext/grpc/rb_byte_buffer.h +2 -2
- data/src/ruby/ext/grpc/rb_call.c +41 -42
- data/src/ruby/ext/grpc/rb_call.h +6 -6
- data/src/ruby/ext/grpc/rb_call_credentials.c +30 -30
- data/src/ruby/ext/grpc/rb_channel.c +87 -87
- data/src/ruby/ext/grpc/rb_channel_credentials.c +23 -23
- data/src/ruby/ext/grpc/rb_completion_queue.c +11 -11
- data/src/ruby/ext/grpc/rb_completion_queue.h +3 -3
- data/src/ruby/ext/grpc/rb_compression_options.c +20 -20
- data/src/ruby/ext/grpc/rb_event_thread.c +14 -14
- data/src/ruby/ext/grpc/rb_event_thread.h +1 -1
- data/src/ruby/ext/grpc/rb_grpc.c +8 -8
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +16 -58
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +242 -306
- data/src/ruby/ext/grpc/rb_server.c +23 -23
- data/src/ruby/ext/grpc/rb_server_credentials.c +13 -13
- data/src/ruby/lib/grpc/generic/rpc_server.rb +25 -12
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/pb/grpc/health/checker.rb +14 -0
- data/src/ruby/spec/pb/health/checker_spec.rb +29 -0
- data/third_party/cares/config_freebsd/ares_config.h +502 -0
- data/third_party/cares/config_openbsd/ares_config.h +502 -0
- metadata +302 -328
- data/src/core/ext/census/aggregation.h +0 -51
- data/src/core/ext/census/base_resources.c +0 -56
- data/src/core/ext/census/base_resources.h +0 -24
- data/src/core/ext/census/census_interface.h +0 -61
- data/src/core/ext/census/census_rpc_stats.h +0 -86
- data/src/core/ext/census/context.c +0 -496
- data/src/core/ext/census/gen/census.pb.c +0 -161
- data/src/core/ext/census/gen/census.pb.h +0 -280
- data/src/core/ext/census/gen/trace_context.pb.c +0 -39
- data/src/core/ext/census/gen/trace_context.pb.h +0 -78
- data/src/core/ext/census/grpc_filter.c +0 -196
- data/src/core/ext/census/grpc_plugin.c +0 -70
- data/src/core/ext/census/initialize.c +0 -51
- data/src/core/ext/census/intrusive_hash_map.c +0 -305
- data/src/core/ext/census/intrusive_hash_map.h +0 -152
- data/src/core/ext/census/intrusive_hash_map_internal.h +0 -48
- data/src/core/ext/census/mlog.c +0 -586
- data/src/core/ext/census/mlog.h +0 -80
- data/src/core/ext/census/operation.c +0 -48
- data/src/core/ext/census/placeholders.c +0 -49
- data/src/core/ext/census/resource.c +0 -303
- data/src/core/ext/census/resource.h +0 -48
- data/src/core/ext/census/rpc_metric_id.h +0 -36
- data/src/core/ext/census/trace_context.c +0 -71
- data/src/core/ext/census/trace_context.h +0 -56
- data/src/core/ext/census/trace_label.h +0 -46
- data/src/core/ext/census/trace_propagation.h +0 -48
- data/src/core/ext/census/trace_status.h +0 -30
- data/src/core/ext/census/trace_string.h +0 -35
- data/src/core/ext/census/tracing.c +0 -55
- data/src/core/ext/census/tracing.h +0 -109
- data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.c +0 -714
- data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.c +0 -924
- data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c +0 -60
- data/src/core/ext/transport/chttp2/transport/flow_control.c +0 -502
- data/src/core/ext/transport/chttp2/transport/writing.c +0 -534
- data/src/core/lib/debug/trace.c +0 -146
- data/src/core/lib/iomgr/closure.c +0 -219
- data/src/core/lib/iomgr/ev_epollex_linux.c +0 -1461
- data/src/core/lib/iomgr/ev_posix.c +0 -266
- data/src/core/lib/iomgr/exec_ctx.c +0 -113
- data/src/core/lib/iomgr/tcp_uv.c +0 -381
- data/src/core/lib/security/credentials/ssl/ssl_credentials.c +0 -194
- data/src/core/lib/security/transport/security_connector.c +0 -914
- data/src/core/lib/support/backoff.c +0 -72
- data/src/core/lib/support/backoff.h +0 -56
- data/src/core/lib/support/mpscq.c +0 -79
- data/src/core/lib/support/stack_lockfree.c +0 -137
- data/src/core/lib/support/stack_lockfree.h +0 -38
- data/src/core/lib/transport/bdp_estimator.c +0 -110
- data/src/core/lib/transport/pid_controller.c +0 -63
@@ -24,12 +24,19 @@
|
|
24
24
|
|
25
25
|
#include "src/core/lib/iomgr/exec_ctx.h"
|
26
26
|
|
27
|
+
#ifdef __cplusplus
|
28
|
+
extern "C" {
|
29
|
+
#endif
|
30
|
+
|
27
31
|
grpc_slice grpc_slice_ref_internal(grpc_slice slice);
|
28
|
-
void grpc_slice_unref_internal(grpc_exec_ctx
|
29
|
-
void grpc_slice_buffer_reset_and_unref_internal(grpc_exec_ctx
|
30
|
-
grpc_slice_buffer
|
31
|
-
void
|
32
|
-
|
32
|
+
void grpc_slice_unref_internal(grpc_exec_ctx* exec_ctx, grpc_slice slice);
|
33
|
+
void grpc_slice_buffer_reset_and_unref_internal(grpc_exec_ctx* exec_ctx,
|
34
|
+
grpc_slice_buffer* sb);
|
35
|
+
void grpc_slice_buffer_partial_unref_internal(grpc_exec_ctx* exec_ctx,
|
36
|
+
grpc_slice_buffer* sb,
|
37
|
+
size_t idx);
|
38
|
+
void grpc_slice_buffer_destroy_internal(grpc_exec_ctx* exec_ctx,
|
39
|
+
grpc_slice_buffer* sb);
|
33
40
|
|
34
41
|
/* Check if a slice is interned */
|
35
42
|
bool grpc_slice_is_interned(grpc_slice slice);
|
@@ -42,8 +49,12 @@ void grpc_test_only_set_slice_hash_seed(uint32_t key);
|
|
42
49
|
// used for surface boundaries where we might receive an un-interned static
|
43
50
|
// string
|
44
51
|
grpc_slice grpc_slice_maybe_static_intern(grpc_slice slice,
|
45
|
-
bool
|
52
|
+
bool* returned_slice_is_different);
|
46
53
|
uint32_t grpc_static_slice_hash(grpc_slice s);
|
47
54
|
int grpc_static_slice_eq(grpc_slice a, grpc_slice b);
|
48
55
|
|
56
|
+
#ifdef __cplusplus
|
57
|
+
}
|
58
|
+
#endif
|
59
|
+
|
49
60
|
#endif /* GRPC_CORE_LIB_SLICE_SLICE_INTERNAL_H */
|
@@ -25,8 +25,8 @@
|
|
25
25
|
#include "src/core/lib/slice/slice_internal.h"
|
26
26
|
#include "src/core/lib/support/string.h"
|
27
27
|
|
28
|
-
char
|
29
|
-
return gpr_dump((const char
|
28
|
+
char* grpc_dump_slice(grpc_slice s, uint32_t flags) {
|
29
|
+
return gpr_dump((const char*)GRPC_SLICE_START_PTR(s), GRPC_SLICE_LENGTH(s),
|
30
30
|
flags);
|
31
31
|
}
|
32
32
|
|
@@ -35,11 +35,11 @@ char *grpc_dump_slice(grpc_slice s, uint32_t flags) {
|
|
35
35
|
* str.
|
36
36
|
*
|
37
37
|
* Returns 1 and updates \a begin and \a end. Returns 0 otherwise. */
|
38
|
-
static int slice_find_separator_offset(const grpc_slice str, const char
|
39
|
-
const size_t read_offset, size_t
|
40
|
-
size_t
|
38
|
+
static int slice_find_separator_offset(const grpc_slice str, const char* sep,
|
39
|
+
const size_t read_offset, size_t* begin,
|
40
|
+
size_t* end) {
|
41
41
|
size_t i;
|
42
|
-
const uint8_t
|
42
|
+
const uint8_t* str_ptr = GRPC_SLICE_START_PTR(str) + read_offset;
|
43
43
|
const size_t str_len = GRPC_SLICE_LENGTH(str) - read_offset;
|
44
44
|
const size_t sep_len = strlen(sep);
|
45
45
|
if (str_len < sep_len) {
|
@@ -56,7 +56,7 @@ static int slice_find_separator_offset(const grpc_slice str, const char *sep,
|
|
56
56
|
return 0;
|
57
57
|
}
|
58
58
|
|
59
|
-
void grpc_slice_split(grpc_slice str, const char
|
59
|
+
void grpc_slice_split(grpc_slice str, const char* sep, grpc_slice_buffer* dst) {
|
60
60
|
const size_t sep_len = strlen(sep);
|
61
61
|
size_t begin, end;
|
62
62
|
|
@@ -74,7 +74,7 @@ void grpc_slice_split(grpc_slice str, const char *sep, grpc_slice_buffer *dst) {
|
|
74
74
|
}
|
75
75
|
}
|
76
76
|
|
77
|
-
bool grpc_parse_slice_to_uint32(grpc_slice str, uint32_t
|
78
|
-
return gpr_parse_bytes_to_uint32((const char
|
77
|
+
bool grpc_parse_slice_to_uint32(grpc_slice str, uint32_t* result) {
|
78
|
+
return gpr_parse_bytes_to_uint32((const char*)GRPC_SLICE_START_PTR(str),
|
79
79
|
GRPC_SLICE_LENGTH(str), result) != 0;
|
80
80
|
}
|
@@ -33,13 +33,13 @@ extern "C" {
|
|
33
33
|
#endif
|
34
34
|
|
35
35
|
/* Calls gpr_dump on a slice. */
|
36
|
-
char
|
36
|
+
char* grpc_dump_slice(grpc_slice slice, uint32_t flags);
|
37
37
|
|
38
38
|
/** Split \a str by the separator \a sep. Results are stored in \a dst, which
|
39
39
|
* should be a properly initialized instance. */
|
40
|
-
void grpc_slice_split(grpc_slice str, const char
|
40
|
+
void grpc_slice_split(grpc_slice str, const char* sep, grpc_slice_buffer* dst);
|
41
41
|
|
42
|
-
bool grpc_parse_slice_to_uint32(grpc_slice str, uint32_t
|
42
|
+
bool grpc_parse_slice_to_uint32(grpc_slice str, uint32_t* result);
|
43
43
|
|
44
44
|
#ifdef __cplusplus
|
45
45
|
}
|
@@ -0,0 +1,29 @@
|
|
1
|
+
/*
|
2
|
+
*
|
3
|
+
* Copyright 2017 gRPC authors.
|
4
|
+
*
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
* you may not use this file except in compliance with the License.
|
7
|
+
* You may obtain a copy of the License at
|
8
|
+
*
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
*
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
* See the License for the specific language governing permissions and
|
15
|
+
* limitations under the License.
|
16
|
+
*
|
17
|
+
*/
|
18
|
+
|
19
|
+
#ifndef GRPC_CORE_LIB_SUPPORT_ABSTRACT_H
|
20
|
+
#define GRPC_CORE_LIB_SUPPORT_ABSTRACT_H
|
21
|
+
|
22
|
+
// This is needed to support abstract base classes in the c core. Since gRPC
|
23
|
+
// doesn't have a c++ runtime, it will hit a linker error on delete unless
|
24
|
+
// we define a virtual operator delete. See this blog for more info:
|
25
|
+
// https://eli.thegreenplace.net/2015/c-deleting-destructors-and-virtual-operator-delete/
|
26
|
+
#define GRPC_ABSTRACT_BASE_CLASS \
|
27
|
+
static void operator delete(void* p) { abort(); }
|
28
|
+
|
29
|
+
#endif /* GRPC_CORE_LIB_SUPPORT_ABSTRACT_H */
|
@@ -24,10 +24,10 @@
|
|
24
24
|
#include <string.h>
|
25
25
|
#include "src/core/lib/profiling/timers.h"
|
26
26
|
|
27
|
-
static void
|
27
|
+
static void* zalloc_with_calloc(size_t sz) { return calloc(sz, 1); }
|
28
28
|
|
29
|
-
static void
|
30
|
-
void
|
29
|
+
static void* zalloc_with_gpr_malloc(size_t sz) {
|
30
|
+
void* p = gpr_malloc(sz);
|
31
31
|
memset(p, 0, sz);
|
32
32
|
return p;
|
33
33
|
}
|
@@ -40,18 +40,18 @@ gpr_allocation_functions gpr_get_allocation_functions() {
|
|
40
40
|
}
|
41
41
|
|
42
42
|
void gpr_set_allocation_functions(gpr_allocation_functions functions) {
|
43
|
-
GPR_ASSERT(functions.malloc_fn !=
|
44
|
-
GPR_ASSERT(functions.realloc_fn !=
|
45
|
-
GPR_ASSERT(functions.free_fn !=
|
46
|
-
if (functions.zalloc_fn ==
|
43
|
+
GPR_ASSERT(functions.malloc_fn != nullptr);
|
44
|
+
GPR_ASSERT(functions.realloc_fn != nullptr);
|
45
|
+
GPR_ASSERT(functions.free_fn != nullptr);
|
46
|
+
if (functions.zalloc_fn == nullptr) {
|
47
47
|
functions.zalloc_fn = zalloc_with_gpr_malloc;
|
48
48
|
}
|
49
49
|
g_alloc_functions = functions;
|
50
50
|
}
|
51
51
|
|
52
|
-
void
|
53
|
-
void
|
54
|
-
if (size == 0) return
|
52
|
+
void* gpr_malloc(size_t size) {
|
53
|
+
void* p;
|
54
|
+
if (size == 0) return nullptr;
|
55
55
|
GPR_TIMER_BEGIN("gpr_malloc", 0);
|
56
56
|
p = g_alloc_functions.malloc_fn(size);
|
57
57
|
if (!p) {
|
@@ -61,9 +61,9 @@ void *gpr_malloc(size_t size) {
|
|
61
61
|
return p;
|
62
62
|
}
|
63
63
|
|
64
|
-
void
|
65
|
-
void
|
66
|
-
if (size == 0) return
|
64
|
+
void* gpr_zalloc(size_t size) {
|
65
|
+
void* p;
|
66
|
+
if (size == 0) return nullptr;
|
67
67
|
GPR_TIMER_BEGIN("gpr_zalloc", 0);
|
68
68
|
p = g_alloc_functions.zalloc_fn(size);
|
69
69
|
if (!p) {
|
@@ -73,14 +73,14 @@ void *gpr_zalloc(size_t size) {
|
|
73
73
|
return p;
|
74
74
|
}
|
75
75
|
|
76
|
-
void gpr_free(void
|
76
|
+
void gpr_free(void* p) {
|
77
77
|
GPR_TIMER_BEGIN("gpr_free", 0);
|
78
78
|
g_alloc_functions.free_fn(p);
|
79
79
|
GPR_TIMER_END("gpr_free", 0);
|
80
80
|
}
|
81
81
|
|
82
|
-
void
|
83
|
-
if ((size == 0) && (p ==
|
82
|
+
void* gpr_realloc(void* p, size_t size) {
|
83
|
+
if ((size == 0) && (p == nullptr)) return nullptr;
|
84
84
|
GPR_TIMER_BEGIN("gpr_realloc", 0);
|
85
85
|
p = g_alloc_functions.realloc_fn(p, size);
|
86
86
|
if (!p) {
|
@@ -90,13 +90,13 @@ void *gpr_realloc(void *p, size_t size) {
|
|
90
90
|
return p;
|
91
91
|
}
|
92
92
|
|
93
|
-
void
|
93
|
+
void* gpr_malloc_aligned(size_t size, size_t alignment_log) {
|
94
94
|
size_t alignment = ((size_t)1) << alignment_log;
|
95
|
-
size_t extra = alignment - 1 + sizeof(void
|
96
|
-
void
|
97
|
-
void
|
95
|
+
size_t extra = alignment - 1 + sizeof(void*);
|
96
|
+
void* p = gpr_malloc(size + extra);
|
97
|
+
void** ret = (void**)(((uintptr_t)p + extra) & ~(alignment - 1));
|
98
98
|
ret[-1] = p;
|
99
|
-
return (void
|
99
|
+
return (void*)ret;
|
100
100
|
}
|
101
101
|
|
102
|
-
void gpr_free_aligned(void
|
102
|
+
void gpr_free_aligned(void* ptr) { gpr_free(((void**)ptr)[-1]); }
|
@@ -36,40 +36,40 @@ struct gpr_arena {
|
|
36
36
|
zone initial_zone;
|
37
37
|
};
|
38
38
|
|
39
|
-
gpr_arena
|
39
|
+
gpr_arena* gpr_arena_create(size_t initial_size) {
|
40
40
|
initial_size = ROUND_UP_TO_ALIGNMENT_SIZE(initial_size);
|
41
|
-
gpr_arena
|
41
|
+
gpr_arena* a = (gpr_arena*)gpr_zalloc(sizeof(gpr_arena) + initial_size);
|
42
42
|
a->initial_zone.size_end = initial_size;
|
43
43
|
return a;
|
44
44
|
}
|
45
45
|
|
46
|
-
size_t gpr_arena_destroy(gpr_arena
|
46
|
+
size_t gpr_arena_destroy(gpr_arena* arena) {
|
47
47
|
gpr_atm size = gpr_atm_no_barrier_load(&arena->size_so_far);
|
48
|
-
zone
|
48
|
+
zone* z = (zone*)gpr_atm_no_barrier_load(&arena->initial_zone.next_atm);
|
49
49
|
gpr_free(arena);
|
50
50
|
while (z) {
|
51
|
-
zone
|
51
|
+
zone* next_z = (zone*)gpr_atm_no_barrier_load(&z->next_atm);
|
52
52
|
gpr_free(z);
|
53
53
|
z = next_z;
|
54
54
|
}
|
55
55
|
return (size_t)size;
|
56
56
|
}
|
57
57
|
|
58
|
-
void
|
58
|
+
void* gpr_arena_alloc(gpr_arena* arena, size_t size) {
|
59
59
|
size = ROUND_UP_TO_ALIGNMENT_SIZE(size);
|
60
60
|
size_t start =
|
61
61
|
(size_t)gpr_atm_no_barrier_fetch_add(&arena->size_so_far, size);
|
62
|
-
zone
|
62
|
+
zone* z = &arena->initial_zone;
|
63
63
|
while (start > z->size_end) {
|
64
|
-
zone
|
65
|
-
if (next_z ==
|
64
|
+
zone* next_z = (zone*)gpr_atm_acq_load(&z->next_atm);
|
65
|
+
if (next_z == nullptr) {
|
66
66
|
size_t next_z_size = (size_t)gpr_atm_no_barrier_load(&arena->size_so_far);
|
67
|
-
next_z = (zone
|
67
|
+
next_z = (zone*)gpr_zalloc(sizeof(zone) + next_z_size);
|
68
68
|
next_z->size_begin = z->size_end;
|
69
69
|
next_z->size_end = z->size_end + next_z_size;
|
70
70
|
if (!gpr_atm_rel_cas(&z->next_atm, (gpr_atm)NULL, (gpr_atm)next_z)) {
|
71
71
|
gpr_free(next_z);
|
72
|
-
next_z = (zone
|
72
|
+
next_z = (zone*)gpr_atm_acq_load(&z->next_atm);
|
73
73
|
}
|
74
74
|
}
|
75
75
|
z = next_z;
|
@@ -79,5 +79,5 @@ void *gpr_arena_alloc(gpr_arena *arena, size_t size) {
|
|
79
79
|
}
|
80
80
|
GPR_ASSERT(start >= z->size_begin);
|
81
81
|
GPR_ASSERT(start + size <= z->size_end);
|
82
|
-
return ((char
|
82
|
+
return ((char*)(z + 1)) + start - z->size_begin;
|
83
83
|
}
|
@@ -27,13 +27,21 @@
|
|
27
27
|
|
28
28
|
#include <stddef.h>
|
29
29
|
|
30
|
+
#ifdef __cplusplus
|
31
|
+
extern "C" {
|
32
|
+
#endif
|
33
|
+
|
30
34
|
typedef struct gpr_arena gpr_arena;
|
31
35
|
|
32
36
|
// Create an arena, with \a initial_size bytes in the first allocated buffer
|
33
|
-
gpr_arena
|
37
|
+
gpr_arena* gpr_arena_create(size_t initial_size);
|
34
38
|
// Allocate \a size bytes from the arena
|
35
|
-
void
|
39
|
+
void* gpr_arena_alloc(gpr_arena* arena, size_t size);
|
36
40
|
// Destroy an arena, returning the total number of bytes allocated
|
37
|
-
size_t gpr_arena_destroy(gpr_arena
|
41
|
+
size_t gpr_arena_destroy(gpr_arena* arena);
|
42
|
+
|
43
|
+
#ifdef __cplusplus
|
44
|
+
}
|
45
|
+
#endif
|
38
46
|
|
39
47
|
#endif /* GRPC_CORE_LIB_SUPPORT_ARENA_H */
|
@@ -19,7 +19,7 @@
|
|
19
19
|
#include <grpc/support/atm.h>
|
20
20
|
#include <grpc/support/useful.h>
|
21
21
|
|
22
|
-
gpr_atm gpr_atm_no_barrier_clamped_add(gpr_atm
|
22
|
+
gpr_atm gpr_atm_no_barrier_clamped_add(gpr_atm* value, gpr_atm delta,
|
23
23
|
gpr_atm min, gpr_atm max) {
|
24
24
|
gpr_atm current_value;
|
25
25
|
gpr_atm new_value;
|
@@ -25,23 +25,23 @@
|
|
25
25
|
#include <grpc/support/string_util.h>
|
26
26
|
#include <grpc/support/useful.h>
|
27
27
|
|
28
|
-
gpr_avl gpr_avl_create(const gpr_avl_vtable
|
28
|
+
gpr_avl gpr_avl_create(const gpr_avl_vtable* vtable) {
|
29
29
|
gpr_avl out;
|
30
30
|
out.vtable = vtable;
|
31
|
-
out.root =
|
31
|
+
out.root = nullptr;
|
32
32
|
return out;
|
33
33
|
}
|
34
34
|
|
35
|
-
static gpr_avl_node
|
35
|
+
static gpr_avl_node* ref_node(gpr_avl_node* node) {
|
36
36
|
if (node) {
|
37
37
|
gpr_ref(&node->refs);
|
38
38
|
}
|
39
39
|
return node;
|
40
40
|
}
|
41
41
|
|
42
|
-
static void unref_node(const gpr_avl_vtable
|
43
|
-
void
|
44
|
-
if (node ==
|
42
|
+
static void unref_node(const gpr_avl_vtable* vtable, gpr_avl_node* node,
|
43
|
+
void* user_data) {
|
44
|
+
if (node == nullptr) {
|
45
45
|
return;
|
46
46
|
}
|
47
47
|
if (gpr_unref(&node->refs)) {
|
@@ -53,18 +53,19 @@ static void unref_node(const gpr_avl_vtable *vtable, gpr_avl_node *node,
|
|
53
53
|
}
|
54
54
|
}
|
55
55
|
|
56
|
-
static long node_height(gpr_avl_node
|
57
|
-
return node ==
|
56
|
+
static long node_height(gpr_avl_node* node) {
|
57
|
+
return node == nullptr ? 0 : node->height;
|
58
58
|
}
|
59
59
|
|
60
60
|
#ifndef NDEBUG
|
61
|
-
static long calculate_height(gpr_avl_node
|
62
|
-
return node ==
|
63
|
-
|
61
|
+
static long calculate_height(gpr_avl_node* node) {
|
62
|
+
return node == nullptr ? 0
|
63
|
+
: 1 + GPR_MAX(calculate_height(node->left),
|
64
|
+
calculate_height(node->right));
|
64
65
|
}
|
65
66
|
|
66
|
-
static gpr_avl_node
|
67
|
-
if (n ==
|
67
|
+
static gpr_avl_node* assert_invariants(gpr_avl_node* n) {
|
68
|
+
if (n == nullptr) return nullptr;
|
68
69
|
assert_invariants(n->left);
|
69
70
|
assert_invariants(n->right);
|
70
71
|
assert(calculate_height(n) == n->height);
|
@@ -72,12 +73,12 @@ static gpr_avl_node *assert_invariants(gpr_avl_node *n) {
|
|
72
73
|
return n;
|
73
74
|
}
|
74
75
|
#else
|
75
|
-
static gpr_avl_node
|
76
|
+
static gpr_avl_node* assert_invariants(gpr_avl_node* n) { return n; }
|
76
77
|
#endif
|
77
78
|
|
78
|
-
gpr_avl_node
|
79
|
-
gpr_avl_node
|
80
|
-
gpr_avl_node
|
79
|
+
gpr_avl_node* new_node(void* key, void* value, gpr_avl_node* left,
|
80
|
+
gpr_avl_node* right) {
|
81
|
+
gpr_avl_node* node = (gpr_avl_node*)gpr_malloc(sizeof(*node));
|
81
82
|
gpr_ref_init(&node->refs, 1);
|
82
83
|
node->key = key;
|
83
84
|
node->value = value;
|
@@ -87,12 +88,12 @@ gpr_avl_node *new_node(void *key, void *value, gpr_avl_node *left,
|
|
87
88
|
return node;
|
88
89
|
}
|
89
90
|
|
90
|
-
static gpr_avl_node
|
91
|
-
void
|
91
|
+
static gpr_avl_node* get(const gpr_avl_vtable* vtable, gpr_avl_node* node,
|
92
|
+
void* key, void* user_data) {
|
92
93
|
long cmp;
|
93
94
|
|
94
|
-
if (node ==
|
95
|
-
return
|
95
|
+
if (node == nullptr) {
|
96
|
+
return nullptr;
|
96
97
|
}
|
97
98
|
|
98
99
|
cmp = vtable->compare_keys(node->key, key, user_data);
|
@@ -105,24 +106,24 @@ static gpr_avl_node *get(const gpr_avl_vtable *vtable, gpr_avl_node *node,
|
|
105
106
|
}
|
106
107
|
}
|
107
108
|
|
108
|
-
void
|
109
|
-
gpr_avl_node
|
110
|
-
return node ? node->value :
|
109
|
+
void* gpr_avl_get(gpr_avl avl, void* key, void* user_data) {
|
110
|
+
gpr_avl_node* node = get(avl.vtable, avl.root, key, user_data);
|
111
|
+
return node ? node->value : nullptr;
|
111
112
|
}
|
112
113
|
|
113
|
-
int gpr_avl_maybe_get(gpr_avl avl, void
|
114
|
-
gpr_avl_node
|
115
|
-
if (node !=
|
114
|
+
int gpr_avl_maybe_get(gpr_avl avl, void* key, void** value, void* user_data) {
|
115
|
+
gpr_avl_node* node = get(avl.vtable, avl.root, key, user_data);
|
116
|
+
if (node != nullptr) {
|
116
117
|
*value = node->value;
|
117
118
|
return 1;
|
118
119
|
}
|
119
120
|
return 0;
|
120
121
|
}
|
121
122
|
|
122
|
-
static gpr_avl_node
|
123
|
-
void
|
124
|
-
gpr_avl_node
|
125
|
-
gpr_avl_node
|
123
|
+
static gpr_avl_node* rotate_left(const gpr_avl_vtable* vtable, void* key,
|
124
|
+
void* value, gpr_avl_node* left,
|
125
|
+
gpr_avl_node* right, void* user_data) {
|
126
|
+
gpr_avl_node* n = new_node(vtable->copy_key(right->key, user_data),
|
126
127
|
vtable->copy_value(right->value, user_data),
|
127
128
|
new_node(key, value, left, ref_node(right->left)),
|
128
129
|
ref_node(right->right));
|
@@ -130,10 +131,10 @@ static gpr_avl_node *rotate_left(const gpr_avl_vtable *vtable, void *key,
|
|
130
131
|
return n;
|
131
132
|
}
|
132
133
|
|
133
|
-
static gpr_avl_node
|
134
|
-
void
|
135
|
-
gpr_avl_node
|
136
|
-
gpr_avl_node
|
134
|
+
static gpr_avl_node* rotate_right(const gpr_avl_vtable* vtable, void* key,
|
135
|
+
void* value, gpr_avl_node* left,
|
136
|
+
gpr_avl_node* right, void* user_data) {
|
137
|
+
gpr_avl_node* n =
|
137
138
|
new_node(vtable->copy_key(left->key, user_data),
|
138
139
|
vtable->copy_value(left->value, user_data), ref_node(left->left),
|
139
140
|
new_node(key, value, ref_node(left->right), right));
|
@@ -141,11 +142,11 @@ static gpr_avl_node *rotate_right(const gpr_avl_vtable *vtable, void *key,
|
|
141
142
|
return n;
|
142
143
|
}
|
143
144
|
|
144
|
-
static gpr_avl_node
|
145
|
-
void
|
146
|
-
gpr_avl_node
|
145
|
+
static gpr_avl_node* rotate_left_right(const gpr_avl_vtable* vtable, void* key,
|
146
|
+
void* value, gpr_avl_node* left,
|
147
|
+
gpr_avl_node* right, void* user_data) {
|
147
148
|
/* rotate_right(..., rotate_left(left), right) */
|
148
|
-
gpr_avl_node
|
149
|
+
gpr_avl_node* n =
|
149
150
|
new_node(vtable->copy_key(left->right->key, user_data),
|
150
151
|
vtable->copy_value(left->right->value, user_data),
|
151
152
|
new_node(vtable->copy_key(left->key, user_data),
|
@@ -156,11 +157,11 @@ static gpr_avl_node *rotate_left_right(const gpr_avl_vtable *vtable, void *key,
|
|
156
157
|
return n;
|
157
158
|
}
|
158
159
|
|
159
|
-
static gpr_avl_node
|
160
|
-
void
|
161
|
-
gpr_avl_node
|
160
|
+
static gpr_avl_node* rotate_right_left(const gpr_avl_vtable* vtable, void* key,
|
161
|
+
void* value, gpr_avl_node* left,
|
162
|
+
gpr_avl_node* right, void* user_data) {
|
162
163
|
/* rotate_left(..., left, rotate_right(right)) */
|
163
|
-
gpr_avl_node
|
164
|
+
gpr_avl_node* n =
|
164
165
|
new_node(vtable->copy_key(right->left->key, user_data),
|
165
166
|
vtable->copy_value(right->left->value, user_data),
|
166
167
|
new_node(key, value, left, ref_node(right->left->left)),
|
@@ -171,9 +172,9 @@ static gpr_avl_node *rotate_right_left(const gpr_avl_vtable *vtable, void *key,
|
|
171
172
|
return n;
|
172
173
|
}
|
173
174
|
|
174
|
-
static gpr_avl_node
|
175
|
-
void
|
176
|
-
gpr_avl_node
|
175
|
+
static gpr_avl_node* rebalance(const gpr_avl_vtable* vtable, void* key,
|
176
|
+
void* value, gpr_avl_node* left,
|
177
|
+
gpr_avl_node* right, void* user_data) {
|
177
178
|
switch (node_height(left) - node_height(right)) {
|
178
179
|
case 2:
|
179
180
|
if (node_height(left->left) - node_height(left->right) == -1) {
|
@@ -196,11 +197,11 @@ static gpr_avl_node *rebalance(const gpr_avl_vtable *vtable, void *key,
|
|
196
197
|
}
|
197
198
|
}
|
198
199
|
|
199
|
-
static gpr_avl_node
|
200
|
-
void
|
200
|
+
static gpr_avl_node* add_key(const gpr_avl_vtable* vtable, gpr_avl_node* node,
|
201
|
+
void* key, void* value, void* user_data) {
|
201
202
|
long cmp;
|
202
|
-
if (node ==
|
203
|
-
return new_node(key, value,
|
203
|
+
if (node == nullptr) {
|
204
|
+
return new_node(key, value, nullptr, nullptr);
|
204
205
|
}
|
205
206
|
cmp = vtable->compare_keys(node->key, key, user_data);
|
206
207
|
if (cmp == 0) {
|
@@ -218,49 +219,49 @@ static gpr_avl_node *add_key(const gpr_avl_vtable *vtable, gpr_avl_node *node,
|
|
218
219
|
}
|
219
220
|
}
|
220
221
|
|
221
|
-
gpr_avl gpr_avl_add(gpr_avl avl, void
|
222
|
-
gpr_avl_node
|
222
|
+
gpr_avl gpr_avl_add(gpr_avl avl, void* key, void* value, void* user_data) {
|
223
|
+
gpr_avl_node* old_root = avl.root;
|
223
224
|
avl.root = add_key(avl.vtable, avl.root, key, value, user_data);
|
224
225
|
assert_invariants(avl.root);
|
225
226
|
unref_node(avl.vtable, old_root, user_data);
|
226
227
|
return avl;
|
227
228
|
}
|
228
229
|
|
229
|
-
static gpr_avl_node
|
230
|
-
while (node->left !=
|
230
|
+
static gpr_avl_node* in_order_head(gpr_avl_node* node) {
|
231
|
+
while (node->left != nullptr) {
|
231
232
|
node = node->left;
|
232
233
|
}
|
233
234
|
return node;
|
234
235
|
}
|
235
236
|
|
236
|
-
static gpr_avl_node
|
237
|
-
while (node->right !=
|
237
|
+
static gpr_avl_node* in_order_tail(gpr_avl_node* node) {
|
238
|
+
while (node->right != nullptr) {
|
238
239
|
node = node->right;
|
239
240
|
}
|
240
241
|
return node;
|
241
242
|
}
|
242
243
|
|
243
|
-
static gpr_avl_node
|
244
|
-
gpr_avl_node
|
245
|
-
void
|
244
|
+
static gpr_avl_node* remove_key(const gpr_avl_vtable* vtable,
|
245
|
+
gpr_avl_node* node, void* key,
|
246
|
+
void* user_data) {
|
246
247
|
long cmp;
|
247
|
-
if (node ==
|
248
|
-
return
|
248
|
+
if (node == nullptr) {
|
249
|
+
return nullptr;
|
249
250
|
}
|
250
251
|
cmp = vtable->compare_keys(node->key, key, user_data);
|
251
252
|
if (cmp == 0) {
|
252
|
-
if (node->left ==
|
253
|
+
if (node->left == nullptr) {
|
253
254
|
return ref_node(node->right);
|
254
|
-
} else if (node->right ==
|
255
|
+
} else if (node->right == nullptr) {
|
255
256
|
return ref_node(node->left);
|
256
257
|
} else if (node->left->height < node->right->height) {
|
257
|
-
gpr_avl_node
|
258
|
+
gpr_avl_node* h = in_order_head(node->right);
|
258
259
|
return rebalance(
|
259
260
|
vtable, vtable->copy_key(h->key, user_data),
|
260
261
|
vtable->copy_value(h->value, user_data), ref_node(node->left),
|
261
262
|
remove_key(vtable, node->right, h->key, user_data), user_data);
|
262
263
|
} else {
|
263
|
-
gpr_avl_node
|
264
|
+
gpr_avl_node* h = in_order_tail(node->left);
|
264
265
|
return rebalance(vtable, vtable->copy_key(h->key, user_data),
|
265
266
|
vtable->copy_value(h->value, user_data),
|
266
267
|
remove_key(vtable, node->left, h->key, user_data),
|
@@ -279,21 +280,21 @@ static gpr_avl_node *remove_key(const gpr_avl_vtable *vtable,
|
|
279
280
|
}
|
280
281
|
}
|
281
282
|
|
282
|
-
gpr_avl gpr_avl_remove(gpr_avl avl, void
|
283
|
-
gpr_avl_node
|
283
|
+
gpr_avl gpr_avl_remove(gpr_avl avl, void* key, void* user_data) {
|
284
|
+
gpr_avl_node* old_root = avl.root;
|
284
285
|
avl.root = remove_key(avl.vtable, avl.root, key, user_data);
|
285
286
|
assert_invariants(avl.root);
|
286
287
|
unref_node(avl.vtable, old_root, user_data);
|
287
288
|
return avl;
|
288
289
|
}
|
289
290
|
|
290
|
-
gpr_avl gpr_avl_ref(gpr_avl avl, void
|
291
|
+
gpr_avl gpr_avl_ref(gpr_avl avl, void* user_data) {
|
291
292
|
ref_node(avl.root);
|
292
293
|
return avl;
|
293
294
|
}
|
294
295
|
|
295
|
-
void gpr_avl_unref(gpr_avl avl, void
|
296
|
+
void gpr_avl_unref(gpr_avl avl, void* user_data) {
|
296
297
|
unref_node(avl.vtable, avl.root, user_data);
|
297
298
|
}
|
298
299
|
|
299
|
-
int gpr_avl_is_empty(gpr_avl avl) { return avl.root ==
|
300
|
+
int gpr_avl_is_empty(gpr_avl avl) { return avl.root == nullptr; }
|