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.

Files changed (616) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +2106 -2116
  3. data/include/grpc/census.h +1 -432
  4. data/include/grpc/compression.h +9 -9
  5. data/include/grpc/grpc.h +115 -98
  6. data/include/grpc/grpc_cronet.h +3 -3
  7. data/include/grpc/grpc_posix.h +4 -4
  8. data/include/grpc/grpc_security.h +160 -88
  9. data/include/grpc/grpc_security_constants.h +7 -0
  10. data/include/grpc/impl/codegen/atm.h +9 -1
  11. data/include/grpc/impl/codegen/atm_gcc_atomic.h +13 -4
  12. data/include/grpc/impl/codegen/atm_gcc_sync.h +6 -5
  13. data/include/grpc/impl/codegen/atm_windows.h +23 -22
  14. data/include/grpc/impl/codegen/byte_buffer.h +14 -14
  15. data/include/grpc/impl/codegen/byte_buffer_reader.h +2 -2
  16. data/include/grpc/impl/codegen/connectivity_state.h +0 -2
  17. data/include/grpc/impl/codegen/grpc_types.h +32 -28
  18. data/include/grpc/impl/codegen/port_platform.h +48 -0
  19. data/include/grpc/impl/codegen/slice.h +10 -10
  20. data/include/grpc/impl/codegen/sync_generic.h +9 -3
  21. data/include/grpc/slice.h +16 -17
  22. data/include/grpc/slice_buffer.h +22 -22
  23. data/include/grpc/support/alloc.h +11 -11
  24. data/include/grpc/support/avl.h +28 -20
  25. data/include/grpc/support/cmdline.h +13 -13
  26. data/include/grpc/support/histogram.h +17 -17
  27. data/include/grpc/support/host_port.h +2 -2
  28. data/include/grpc/support/log.h +9 -9
  29. data/include/grpc/support/log_windows.h +1 -1
  30. data/include/grpc/support/string_util.h +2 -2
  31. data/include/grpc/support/subprocess.h +5 -5
  32. data/include/grpc/support/sync.h +43 -27
  33. data/include/grpc/support/thd.h +6 -6
  34. data/include/grpc/support/tls_gcc.h +1 -1
  35. data/include/grpc/support/tls_pthread.h +1 -1
  36. data/src/core/ext/census/{grpc_context.c → grpc_context.cc} +5 -8
  37. data/src/core/ext/filters/client_channel/backup_poller.cc +165 -0
  38. data/src/core/ext/{census/grpc_filter.h → filters/client_channel/backup_poller.h} +12 -7
  39. data/src/core/ext/filters/client_channel/{channel_connectivity.c → channel_connectivity.cc} +45 -42
  40. data/src/core/ext/filters/client_channel/{client_channel.c → client_channel.cc} +452 -417
  41. data/src/core/ext/filters/client_channel/client_channel.h +16 -8
  42. data/src/core/ext/filters/client_channel/{client_channel_factory.c → client_channel_factory.cc} +0 -0
  43. data/src/core/ext/filters/client_channel/client_channel_factory.h +29 -21
  44. data/src/core/ext/filters/client_channel/{client_channel_plugin.c → client_channel_plugin.cc} +15 -19
  45. data/src/core/ext/filters/client_channel/{connector.c → connector.cc} +0 -0
  46. data/src/core/ext/filters/client_channel/connector.h +29 -21
  47. data/src/core/ext/filters/client_channel/{http_connect_handshaker.c → http_connect_handshaker.cc} +10 -10
  48. data/src/core/ext/filters/client_channel/http_connect_handshaker.h +8 -0
  49. data/src/core/ext/filters/client_channel/{http_proxy.c → http_proxy.cc} +14 -14
  50. data/src/core/ext/filters/client_channel/http_proxy.h +8 -0
  51. data/src/core/ext/filters/client_channel/{lb_policy.c → lb_policy.cc} +47 -48
  52. data/src/core/ext/filters/client_channel/lb_policy.h +76 -70
  53. data/src/core/ext/filters/client_channel/lb_policy/grpclb/{client_load_reporting_filter.c → client_load_reporting_filter.cc} +28 -29
  54. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +9 -1
  55. data/src/core/ext/filters/client_channel/lb_policy/grpclb/{grpclb.c → grpclb.cc} +554 -563
  56. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +9 -1
  57. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +17 -9
  58. data/src/core/ext/filters/client_channel/lb_policy/grpclb/{grpclb_channel_secure.c → grpclb_channel_secure.cc} +17 -17
  59. data/src/core/ext/filters/client_channel/lb_policy/grpclb/{grpclb_client_stats.c → grpclb_client_stats.cc} +3 -3
  60. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +9 -1
  61. data/src/core/ext/filters/client_channel/lb_policy/grpclb/{load_balancer_api.c → load_balancer_api.cc} +64 -67
  62. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +20 -21
  63. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +599 -0
  64. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +695 -0
  65. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.cc +270 -0
  66. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +153 -0
  67. data/src/core/ext/filters/client_channel/{lb_policy_factory.c → lb_policy_factory.cc} +10 -10
  68. data/src/core/ext/filters/client_channel/lb_policy_factory.h +48 -40
  69. data/src/core/ext/filters/client_channel/{lb_policy_registry.c → lb_policy_registry.cc} +9 -9
  70. data/src/core/ext/filters/client_channel/lb_policy_registry.h +11 -3
  71. data/src/core/ext/filters/client_channel/{parse_address.c → parse_address.cc} +24 -24
  72. data/src/core/ext/filters/client_channel/parse_address.h +14 -6
  73. data/src/core/ext/filters/client_channel/{proxy_mapper.c → proxy_mapper.cc} +0 -0
  74. data/src/core/ext/filters/client_channel/proxy_mapper.h +8 -0
  75. data/src/core/ext/filters/client_channel/{proxy_mapper_registry.c → proxy_mapper_registry.cc} +0 -0
  76. data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +8 -0
  77. data/src/core/ext/filters/client_channel/{resolver.c → resolver.cc} +21 -23
  78. data/src/core/ext/filters/client_channel/resolver.h +33 -27
  79. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/{dns_resolver_ares.c → dns_resolver_ares.cc} +133 -133
  80. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +18 -9
  81. 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
  82. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/{grpc_ares_wrapper.c → grpc_ares_wrapper.cc} +118 -115
  83. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +23 -15
  84. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +60 -0
  85. data/src/core/ext/filters/client_channel/resolver/dns/native/{dns_resolver.c → dns_resolver.cc} +100 -94
  86. data/src/core/ext/filters/client_channel/resolver/fake/{fake_resolver.c → fake_resolver.cc} +14 -14
  87. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +9 -1
  88. data/src/core/ext/filters/client_channel/resolver/sockaddr/{sockaddr_resolver.c → sockaddr_resolver.cc} +60 -60
  89. data/src/core/ext/filters/client_channel/{resolver_factory.c → resolver_factory.cc} +2 -2
  90. data/src/core/ext/filters/client_channel/resolver_factory.h +27 -19
  91. data/src/core/ext/filters/client_channel/{resolver_registry.c → resolver_registry.cc} +35 -35
  92. data/src/core/ext/filters/client_channel/resolver_registry.h +18 -10
  93. data/src/core/ext/filters/client_channel/{retry_throttle.c → retry_throttle.cc} +10 -10
  94. data/src/core/ext/filters/client_channel/retry_throttle.h +8 -0
  95. data/src/core/ext/filters/client_channel/{subchannel.c → subchannel.cc} +210 -213
  96. data/src/core/ext/filters/client_channel/subchannel.h +68 -60
  97. data/src/core/ext/filters/client_channel/{subchannel_index.c → subchannel_index.cc} +52 -52
  98. data/src/core/ext/filters/client_channel/subchannel_index.h +22 -14
  99. data/src/core/ext/filters/client_channel/{uri_parser.c → uri_parser.cc} +29 -27
  100. data/src/core/ext/filters/client_channel/uri_parser.h +18 -10
  101. data/src/core/ext/filters/deadline/{deadline_filter.c → deadline_filter.cc} +12 -15
  102. data/src/core/ext/filters/deadline/deadline_filter.h +11 -2
  103. data/src/core/ext/filters/http/client/{http_client_filter.c → http_client_filter.cc} +83 -83
  104. data/src/core/ext/filters/http/client/http_client_filter.h +8 -0
  105. data/src/core/ext/filters/http/{http_filters_plugin.c → http_filters_plugin.cc} +20 -21
  106. data/src/core/ext/filters/http/message_compress/{message_compress_filter.c → message_compress_filter.cc} +84 -83
  107. data/src/core/ext/filters/http/message_compress/message_compress_filter.h +9 -1
  108. data/src/core/ext/filters/http/server/{http_server_filter.c → http_server_filter.cc} +80 -78
  109. data/src/core/ext/filters/http/server/http_server_filter.h +8 -0
  110. data/src/core/ext/filters/load_reporting/{server_load_reporting_filter.c → server_load_reporting_filter.cc} +29 -29
  111. data/src/core/ext/filters/load_reporting/server_load_reporting_filter.h +9 -1
  112. data/src/core/ext/filters/load_reporting/{server_load_reporting_plugin.c → server_load_reporting_plugin.cc} +11 -11
  113. data/src/core/ext/filters/load_reporting/server_load_reporting_plugin.h +13 -5
  114. data/src/core/ext/filters/max_age/{max_age_filter.c → max_age_filter.cc} +46 -56
  115. data/src/core/ext/filters/max_age/max_age_filter.h +8 -0
  116. data/src/core/ext/filters/message_size/{message_size_filter.c → message_size_filter.cc} +62 -40
  117. data/src/core/ext/filters/message_size/message_size_filter.h +8 -0
  118. data/src/core/ext/filters/workarounds/{workaround_cronet_compression_filter.c → workaround_cronet_compression_filter.cc} +11 -11
  119. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.h +8 -0
  120. data/src/core/ext/filters/workarounds/{workaround_utils.c → workaround_utils.cc} +7 -7
  121. data/src/core/ext/filters/workarounds/workaround_utils.h +9 -1
  122. data/src/core/ext/transport/chttp2/alpn/{alpn.c → alpn.cc} +3 -3
  123. data/src/core/ext/transport/chttp2/alpn/alpn.h +10 -2
  124. data/src/core/ext/transport/chttp2/client/{chttp2_connector.c → chttp2_connector.cc} +49 -45
  125. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +8 -0
  126. data/src/core/ext/transport/chttp2/client/insecure/{channel_create.c → channel_create.cc} +28 -27
  127. data/src/core/ext/transport/chttp2/client/insecure/{channel_create_posix.c → channel_create_posix.cc} +14 -13
  128. data/src/core/ext/transport/chttp2/client/secure/{secure_channel_create.c → secure_channel_create.cc} +68 -66
  129. data/src/core/ext/transport/chttp2/server/{chttp2_server.c → chttp2_server.cc} +76 -77
  130. data/src/core/ext/transport/chttp2/server/chttp2_server.h +11 -3
  131. data/src/core/ext/transport/chttp2/server/insecure/{server_chttp2.c → server_chttp2.cc} +3 -3
  132. data/src/core/ext/transport/chttp2/server/insecure/{server_chttp2_posix.c → server_chttp2_posix.cc} +13 -12
  133. data/src/core/ext/transport/chttp2/server/secure/{server_secure_chttp2.c → server_secure_chttp2.cc} +12 -10
  134. data/src/core/ext/transport/chttp2/transport/{bin_decoder.c → bin_decoder.cc} +7 -7
  135. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +15 -7
  136. data/src/core/ext/transport/chttp2/transport/{bin_encoder.c → bin_encoder.cc} +11 -11
  137. data/src/core/ext/transport/chttp2/transport/bin_encoder.h +8 -0
  138. data/src/core/ext/transport/chttp2/transport/{chttp2_plugin.c → chttp2_plugin.cc} +2 -9
  139. data/src/core/ext/transport/chttp2/transport/{chttp2_transport.c → chttp2_transport.cc} +778 -778
  140. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +14 -10
  141. data/src/core/ext/transport/chttp2/transport/flow_control.cc +385 -0
  142. data/src/core/ext/transport/chttp2/transport/flow_control.h +337 -0
  143. data/src/core/ext/transport/chttp2/transport/frame.h +8 -0
  144. data/src/core/ext/transport/chttp2/transport/{frame_data.c → frame_data.cc} +34 -34
  145. data/src/core/ext/transport/chttp2/transport/frame_data.h +25 -17
  146. data/src/core/ext/transport/chttp2/transport/{frame_goaway.c → frame_goaway.cc} +18 -18
  147. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +18 -10
  148. data/src/core/ext/transport/chttp2/transport/{frame_ping.c → frame_ping.cc} +18 -19
  149. data/src/core/ext/transport/chttp2/transport/frame_ping.h +12 -4
  150. data/src/core/ext/transport/chttp2/transport/{frame_rst_stream.c → frame_rst_stream.cc} +16 -16
  151. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +16 -8
  152. data/src/core/ext/transport/chttp2/transport/{frame_settings.c → frame_settings.cc} +23 -24
  153. data/src/core/ext/transport/chttp2/transport/frame_settings.h +17 -9
  154. data/src/core/ext/transport/chttp2/transport/{frame_window_update.c → frame_window_update.cc} +22 -24
  155. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +14 -6
  156. data/src/core/ext/transport/chttp2/transport/{hpack_encoder.c → hpack_encoder.cc} +206 -161
  157. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +23 -13
  158. data/src/core/ext/transport/chttp2/transport/{hpack_parser.c → hpack_parser.cc} +340 -334
  159. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +30 -22
  160. data/src/core/ext/transport/chttp2/transport/{hpack_table.c → hpack_table.cc} +25 -25
  161. data/src/core/ext/transport/chttp2/transport/hpack_table.h +19 -11
  162. data/src/core/ext/transport/chttp2/transport/{http2_settings.c → http2_settings.cc} +1 -1
  163. data/src/core/ext/transport/chttp2/transport/http2_settings.h +10 -2
  164. data/src/core/ext/transport/chttp2/transport/{huffsyms.c → huffsyms.cc} +0 -0
  165. data/src/core/ext/transport/chttp2/transport/huffsyms.h +8 -0
  166. data/src/core/ext/transport/chttp2/transport/{incoming_metadata.c → incoming_metadata.cc} +14 -13
  167. data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +18 -10
  168. data/src/core/ext/transport/chttp2/transport/internal.h +214 -340
  169. data/src/core/ext/transport/chttp2/transport/{parsing.c → parsing.cc} +152 -141
  170. data/src/core/ext/transport/chttp2/transport/{stream_lists.c → stream_lists.cc} +53 -53
  171. data/src/core/ext/transport/chttp2/transport/{stream_map.c → stream_map.cc} +35 -34
  172. data/src/core/ext/transport/chttp2/transport/stream_map.h +22 -14
  173. data/src/core/ext/transport/chttp2/transport/{varint.c → varint.cc} +0 -0
  174. data/src/core/ext/transport/chttp2/transport/varint.h +8 -0
  175. data/src/core/ext/transport/chttp2/transport/writing.cc +636 -0
  176. data/src/core/ext/transport/inproc/{inproc_plugin.c → inproc_plugin.cc} +5 -6
  177. data/src/core/ext/transport/inproc/{inproc_transport.c → inproc_transport.cc} +479 -544
  178. data/src/core/ext/transport/inproc/inproc_transport.h +4 -4
  179. data/src/core/lib/backoff/backoff.cc +80 -0
  180. data/src/core/lib/backoff/backoff.h +83 -0
  181. data/src/core/lib/channel/{channel_args.c → channel_args.cc} +92 -92
  182. data/src/core/lib/channel/channel_args.h +45 -37
  183. data/src/core/lib/channel/{channel_stack.c → channel_stack.cc} +67 -68
  184. data/src/core/lib/channel/channel_stack.h +76 -75
  185. data/src/core/lib/channel/{channel_stack_builder.c → channel_stack_builder.cc} +91 -91
  186. data/src/core/lib/channel/channel_stack_builder.h +45 -45
  187. data/src/core/lib/channel/{connected_channel.c → connected_channel.cc} +70 -70
  188. data/src/core/lib/channel/connected_channel.h +12 -4
  189. data/src/core/lib/channel/context.h +2 -2
  190. data/src/core/lib/channel/{handshaker.c → handshaker.cc} +7 -9
  191. data/src/core/lib/channel/handshaker.h +9 -1
  192. data/src/core/lib/channel/{handshaker_factory.c → handshaker_factory.cc} +7 -7
  193. data/src/core/lib/channel/handshaker_factory.h +18 -10
  194. data/src/core/lib/channel/{handshaker_registry.c → handshaker_registry.cc} +0 -0
  195. data/src/core/lib/channel/handshaker_registry.h +8 -0
  196. data/src/core/lib/compression/algorithm_metadata.h +8 -0
  197. data/src/core/lib/compression/{compression.c → compression.cc} +9 -9
  198. data/src/core/lib/compression/{message_compress.c → message_compress.cc} +0 -0
  199. data/src/core/lib/compression/message_compress.h +8 -0
  200. data/src/core/lib/compression/{stream_compression.c → stream_compression.cc} +12 -12
  201. data/src/core/lib/compression/stream_compression.h +27 -19
  202. data/src/core/lib/compression/{stream_compression_gzip.c → stream_compression_gzip.cc} +35 -36
  203. data/src/core/lib/compression/stream_compression_gzip.h +8 -0
  204. data/src/core/lib/compression/{stream_compression_identity.c → stream_compression_identity.cc} +19 -20
  205. data/src/core/lib/compression/stream_compression_identity.h +8 -0
  206. data/src/core/lib/debug/{stats.c → stats.cc} +19 -19
  207. data/src/core/lib/debug/stats.h +17 -9
  208. data/src/core/lib/debug/{stats_data.c → stats_data.cc} +45 -22
  209. data/src/core/lib/debug/stats_data.h +58 -19
  210. data/src/core/lib/debug/trace.cc +142 -0
  211. data/src/core/lib/debug/trace.h +74 -14
  212. data/src/core/lib/http/{format_request.c → format_request.cc} +10 -10
  213. data/src/core/lib/http/format_request.h +12 -4
  214. data/src/core/lib/http/{httpcli.c → httpcli.cc} +80 -80
  215. data/src/core/lib/http/httpcli.h +41 -33
  216. data/src/core/lib/http/{httpcli_security_connector.c → httpcli_security_connector.cc} +69 -55
  217. data/src/core/lib/http/{parser.c → parser.cc} +42 -42
  218. data/src/core/lib/http/parser.h +28 -20
  219. data/src/core/lib/{support → iomgr}/block_annotate.h +17 -8
  220. data/src/core/lib/iomgr/{call_combiner.c → call_combiner.cc} +29 -17
  221. data/src/core/lib/iomgr/call_combiner.h +9 -1
  222. data/src/core/lib/iomgr/closure.h +220 -62
  223. data/src/core/lib/iomgr/{combiner.c → combiner.cc} +63 -62
  224. data/src/core/lib/iomgr/combiner.h +16 -8
  225. data/src/core/lib/iomgr/{endpoint.c → endpoint.cc} +6 -0
  226. data/src/core/lib/iomgr/endpoint.h +47 -32
  227. data/src/core/lib/iomgr/endpoint_pair.h +12 -4
  228. data/src/core/lib/iomgr/{endpoint_pair_posix.c → endpoint_pair_posix.cc} +3 -3
  229. data/src/core/lib/iomgr/{endpoint_pair_uv.c → endpoint_pair_uv.cc} +2 -2
  230. data/src/core/lib/iomgr/{endpoint_pair_windows.c → endpoint_pair_windows.cc} +6 -6
  231. data/src/core/lib/iomgr/{error.c → error.cc} +125 -124
  232. data/src/core/lib/iomgr/error.h +32 -27
  233. data/src/core/lib/iomgr/error_internal.h +11 -2
  234. data/src/core/lib/iomgr/{ev_epoll1_linux.c → ev_epoll1_linux.cc} +214 -215
  235. data/src/core/lib/iomgr/ev_epoll1_linux.h +9 -1
  236. data/src/core/lib/iomgr/ev_epollex_linux.cc +1488 -0
  237. data/src/core/lib/iomgr/ev_epollex_linux.h +9 -1
  238. data/src/core/lib/iomgr/{ev_epollsig_linux.c → ev_epollsig_linux.cc} +304 -305
  239. data/src/core/lib/iomgr/ev_epollsig_linux.h +12 -4
  240. data/src/core/lib/iomgr/{ev_poll_posix.c → ev_poll_posix.cc} +272 -283
  241. data/src/core/lib/iomgr/ev_poll_posix.h +10 -2
  242. data/src/core/lib/iomgr/ev_posix.cc +288 -0
  243. data/src/core/lib/iomgr/ev_posix.h +75 -67
  244. data/src/core/lib/iomgr/{ev_windows.c → ev_windows.cc} +2 -2
  245. data/src/core/lib/iomgr/exec_ctx.cc +177 -0
  246. data/src/core/lib/iomgr/exec_ctx.h +35 -13
  247. data/src/core/lib/iomgr/{executor.c → executor.cc} +34 -35
  248. data/src/core/lib/iomgr/executor.h +12 -4
  249. data/src/core/lib/iomgr/{fork_posix.c → fork_posix.cc} +0 -0
  250. data/src/core/lib/iomgr/{fork_windows.c → fork_windows.cc} +0 -0
  251. data/src/core/lib/iomgr/gethostname.h +9 -1
  252. data/src/core/lib/iomgr/{gethostname_fallback.c → gethostname_fallback.cc} +2 -1
  253. data/src/core/lib/iomgr/{gethostname_host_name_max.c → gethostname_host_name_max.cc} +4 -3
  254. data/src/core/lib/iomgr/{gethostname_sysconf.c → gethostname_sysconf.cc} +3 -2
  255. data/src/core/lib/iomgr/{iocp_windows.c → iocp_windows.cc} +23 -25
  256. data/src/core/lib/iomgr/iocp_windows.h +17 -3
  257. data/src/core/lib/iomgr/{iomgr.c → iomgr.cc} +25 -19
  258. data/src/core/lib/iomgr/iomgr.h +11 -3
  259. data/src/core/lib/iomgr/iomgr_internal.h +13 -5
  260. data/src/core/lib/iomgr/{iomgr_posix.c → iomgr_posix.cc} +0 -1
  261. data/src/core/lib/iomgr/{iomgr_uv.c → iomgr_uv.cc} +1 -1
  262. data/src/core/lib/iomgr/iomgr_uv.h +8 -0
  263. data/src/core/lib/iomgr/{iomgr_windows.c → iomgr_windows.cc} +0 -0
  264. data/src/core/lib/iomgr/{is_epollexclusive_available.c → is_epollexclusive_available.cc} +1 -1
  265. data/src/core/lib/iomgr/is_epollexclusive_available.h +8 -0
  266. data/src/core/lib/iomgr/{load_file.c → load_file.cc} +12 -12
  267. data/src/core/lib/iomgr/load_file.h +2 -2
  268. data/src/core/lib/iomgr/{lockfree_event.c → lockfree_event.cc} +76 -68
  269. data/src/core/lib/iomgr/lockfree_event.h +30 -11
  270. data/src/core/lib/iomgr/{network_status_tracker.c → network_status_tracker.cc} +3 -2
  271. data/src/core/lib/iomgr/network_status_tracker.h +2 -2
  272. data/src/core/lib/iomgr/{polling_entity.c → polling_entity.cc} +18 -18
  273. data/src/core/lib/iomgr/polling_entity.h +21 -13
  274. data/src/core/lib/iomgr/pollset.h +17 -11
  275. data/src/core/lib/iomgr/pollset_set.h +23 -15
  276. data/src/core/lib/iomgr/{pollset_set_uv.c → pollset_set_uv.cc} +0 -0
  277. data/src/core/lib/iomgr/{pollset_set_windows.c → pollset_set_windows.cc} +0 -0
  278. data/src/core/lib/iomgr/{pollset_uv.c → pollset_uv.cc} +31 -29
  279. data/src/core/lib/iomgr/pollset_uv.h +8 -0
  280. data/src/core/lib/iomgr/{pollset_windows.c → pollset_windows.cc} +24 -24
  281. data/src/core/lib/iomgr/pollset_windows.h +17 -4
  282. data/src/core/lib/iomgr/port.h +10 -0
  283. data/src/core/lib/iomgr/resolve_address.h +18 -10
  284. data/src/core/lib/iomgr/{resolve_address_posix.c → resolve_address_posix.cc} +40 -40
  285. data/src/core/lib/iomgr/{resolve_address_uv.c → resolve_address_uv.cc} +61 -56
  286. data/src/core/lib/iomgr/{resolve_address_windows.c → resolve_address_windows.cc} +36 -34
  287. data/src/core/lib/iomgr/{resource_quota.c → resource_quota.cc} +209 -180
  288. data/src/core/lib/iomgr/resource_quota.h +45 -37
  289. data/src/core/lib/iomgr/{sockaddr_utils.c → sockaddr_utils.cc} +61 -61
  290. data/src/core/lib/iomgr/sockaddr_utils.h +23 -15
  291. data/src/core/lib/iomgr/sockaddr_windows.h +6 -0
  292. data/src/core/lib/iomgr/{socket_factory_posix.c → socket_factory_posix.cc} +20 -20
  293. data/src/core/lib/iomgr/socket_factory_posix.h +15 -15
  294. data/src/core/lib/iomgr/{socket_mutator.c → socket_mutator.cc} +18 -18
  295. data/src/core/lib/iomgr/socket_mutator.h +11 -11
  296. data/src/core/lib/iomgr/socket_utils.h +9 -1
  297. data/src/core/lib/iomgr/{socket_utils_common_posix.c → socket_utils_common_posix.cc} +28 -28
  298. data/src/core/lib/iomgr/{socket_utils_linux.c → socket_utils_linux.cc} +3 -3
  299. data/src/core/lib/iomgr/{socket_utils_posix.c → socket_utils_posix.cc} +3 -3
  300. data/src/core/lib/iomgr/socket_utils_posix.h +26 -18
  301. data/src/core/lib/iomgr/{socket_utils_uv.c → socket_utils_uv.cc} +1 -1
  302. data/src/core/lib/iomgr/{socket_utils_windows.c → socket_utils_windows.cc} +2 -2
  303. data/src/core/lib/iomgr/{socket_windows.c → socket_windows.cc} +18 -18
  304. data/src/core/lib/iomgr/socket_windows.h +26 -13
  305. data/src/core/lib/iomgr/tcp_client.h +14 -6
  306. data/src/core/lib/iomgr/{tcp_client_posix.c → tcp_client_posix.cc} +69 -70
  307. data/src/core/lib/iomgr/tcp_client_posix.h +11 -3
  308. data/src/core/lib/iomgr/{tcp_client_uv.c → tcp_client_uv.cc} +47 -48
  309. data/src/core/lib/iomgr/{tcp_client_windows.c → tcp_client_windows.cc} +46 -44
  310. data/src/core/lib/iomgr/{tcp_posix.c → tcp_posix.cc} +198 -175
  311. data/src/core/lib/iomgr/tcp_posix.h +15 -7
  312. data/src/core/lib/iomgr/tcp_server.h +31 -23
  313. data/src/core/lib/iomgr/{tcp_server_posix.c → tcp_server_posix.cc} +78 -77
  314. data/src/core/lib/iomgr/tcp_server_utils_posix.h +27 -19
  315. data/src/core/lib/iomgr/{tcp_server_utils_posix_common.c → tcp_server_utils_posix_common.cc} +27 -27
  316. data/src/core/lib/iomgr/{tcp_server_utils_posix_ifaddrs.c → tcp_server_utils_posix_ifaddrs.cc} +25 -25
  317. data/src/core/lib/iomgr/{tcp_server_utils_posix_noifaddrs.c → tcp_server_utils_posix_noifaddrs.cc} +2 -2
  318. data/src/core/lib/iomgr/{tcp_server_uv.c → tcp_server_uv.cc} +133 -105
  319. data/src/core/lib/iomgr/{tcp_server_windows.c → tcp_server_windows.cc} +81 -77
  320. data/src/core/lib/iomgr/tcp_uv.cc +420 -0
  321. data/src/core/lib/iomgr/tcp_uv.h +18 -4
  322. data/src/core/lib/iomgr/{tcp_windows.c → tcp_windows.cc} +90 -79
  323. data/src/core/lib/iomgr/tcp_windows.h +17 -4
  324. data/src/core/lib/iomgr/{time_averaged_stats.c → time_averaged_stats.cc} +0 -0
  325. data/src/core/lib/iomgr/time_averaged_stats.h +8 -0
  326. data/src/core/lib/iomgr/timer.h +16 -9
  327. data/src/core/lib/iomgr/{timer_generic.c → timer_generic.cc} +130 -171
  328. data/src/core/lib/iomgr/timer_generic.h +4 -4
  329. data/src/core/lib/iomgr/{timer_heap.c → timer_heap.cc} +20 -21
  330. data/src/core/lib/iomgr/timer_heap.h +16 -8
  331. data/src/core/lib/iomgr/{timer_manager.c → timer_manager.cc} +54 -52
  332. data/src/core/lib/iomgr/timer_manager.h +8 -0
  333. data/src/core/lib/iomgr/{timer_uv.c → timer_uv.cc} +22 -24
  334. data/src/core/lib/iomgr/timer_uv.h +2 -2
  335. data/src/core/lib/iomgr/{udp_server.c → udp_server.cc} +75 -75
  336. data/src/core/lib/iomgr/udp_server.h +25 -17
  337. data/src/core/lib/iomgr/{unix_sockets_posix.c → unix_sockets_posix.cc} +22 -21
  338. data/src/core/lib/iomgr/unix_sockets_posix.h +14 -6
  339. data/src/core/lib/iomgr/{unix_sockets_posix_noop.c → unix_sockets_posix_noop.cc} +5 -5
  340. data/src/core/lib/iomgr/{wakeup_fd_cv.c → wakeup_fd_cv.cc} +2 -2
  341. data/src/core/lib/iomgr/wakeup_fd_cv.h +10 -0
  342. data/src/core/lib/iomgr/{wakeup_fd_eventfd.c → wakeup_fd_eventfd.cc} +0 -0
  343. data/src/core/lib/iomgr/{wakeup_fd_nospecial.c → wakeup_fd_nospecial.cc} +0 -0
  344. data/src/core/lib/iomgr/{wakeup_fd_pipe.c → wakeup_fd_pipe.cc} +1 -0
  345. data/src/core/lib/iomgr/wakeup_fd_pipe.h +9 -1
  346. data/src/core/lib/iomgr/{wakeup_fd_posix.c → wakeup_fd_posix.cc} +6 -7
  347. data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -0
  348. data/src/core/lib/json/{json.c → json.cc} +0 -0
  349. data/src/core/lib/json/json.h +8 -0
  350. data/src/core/lib/json/{json_reader.c → json_reader.cc} +18 -18
  351. data/src/core/lib/json/json_reader.h +26 -18
  352. data/src/core/lib/json/{json_string.c → json_string.cc} +57 -57
  353. data/src/core/lib/json/{json_writer.c → json_writer.cc} +20 -20
  354. data/src/core/lib/json/json_writer.h +23 -15
  355. data/src/core/lib/profiling/{basic_timers.c → basic_timers.cc} +34 -34
  356. data/src/core/lib/profiling/{stap_timers.c → stap_timers.cc} +5 -5
  357. data/src/core/lib/profiling/timers.h +6 -6
  358. data/src/core/lib/security/context/{security_context.c → security_context.cc} +98 -95
  359. data/src/core/lib/security/context/security_context.h +27 -29
  360. data/src/core/lib/security/credentials/composite/{composite_credentials.c → composite_credentials.cc} +79 -73
  361. data/src/core/lib/security/credentials/composite/composite_credentials.h +17 -9
  362. data/src/core/lib/security/credentials/{credentials.c → credentials.cc} +97 -92
  363. data/src/core/lib/security/credentials/credentials.h +83 -75
  364. data/src/core/lib/security/credentials/{credentials_metadata.c → credentials_metadata.cc} +7 -6
  365. data/src/core/lib/security/credentials/fake/{fake_credentials.c → fake_credentials.cc} +39 -36
  366. data/src/core/lib/security/credentials/fake/fake_credentials.h +13 -5
  367. data/src/core/lib/security/credentials/google_default/{credentials_generic.c → credentials_generic.cc} +5 -5
  368. data/src/core/lib/security/credentials/google_default/{google_default_credentials.c → google_default_credentials.cc} +55 -55
  369. data/src/core/lib/security/credentials/google_default/google_default_credentials.h +9 -1
  370. data/src/core/lib/security/credentials/iam/{iam_credentials.c → iam_credentials.cc} +19 -18
  371. data/src/core/lib/security/credentials/jwt/{json_token.c → json_token.cc} +80 -75
  372. data/src/core/lib/security/credentials/jwt/json_token.h +23 -15
  373. data/src/core/lib/security/credentials/jwt/{jwt_credentials.c → jwt_credentials.cc} +45 -41
  374. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +11 -3
  375. data/src/core/lib/security/credentials/jwt/{jwt_verifier.c → jwt_verifier.cc} +262 -252
  376. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +38 -30
  377. data/src/core/lib/security/credentials/oauth2/{oauth2_credentials.c → oauth2_credentials.cc} +138 -141
  378. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +30 -22
  379. data/src/core/lib/security/credentials/plugin/{plugin_credentials.c → plugin_credentials.cc} +52 -53
  380. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +7 -7
  381. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +344 -0
  382. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +27 -0
  383. data/src/core/lib/security/transport/auth_filters.h +16 -0
  384. data/src/core/lib/security/transport/{client_auth_filter.c → client_auth_filter.cc} +127 -115
  385. data/src/core/lib/security/transport/{lb_targets_info.c → lb_targets_info.cc} +16 -13
  386. data/src/core/lib/security/transport/lb_targets_info.h +11 -3
  387. data/src/core/lib/security/transport/{secure_endpoint.c → secure_endpoint.cc} +84 -76
  388. data/src/core/lib/security/transport/secure_endpoint.h +13 -5
  389. data/src/core/lib/security/transport/security_connector.cc +1121 -0
  390. data/src/core/lib/security/transport/security_connector.h +97 -79
  391. data/src/core/lib/security/transport/{security_handshaker.c → security_handshaker.cc} +139 -132
  392. data/src/core/lib/security/transport/security_handshaker.h +11 -3
  393. data/src/core/lib/security/transport/{server_auth_filter.c → server_auth_filter.cc} +68 -68
  394. data/src/core/lib/security/transport/{tsi_error.c → tsi_error.cc} +1 -1
  395. data/src/core/lib/security/transport/tsi_error.h +9 -1
  396. data/src/core/lib/security/util/{json_util.c → json_util.cc} +11 -11
  397. data/src/core/lib/security/util/json_util.h +12 -4
  398. data/src/core/lib/slice/{b64.c → b64.cc} +15 -15
  399. data/src/core/lib/slice/b64.h +12 -4
  400. data/src/core/lib/slice/{percent_encoding.c → percent_encoding.cc} +15 -15
  401. data/src/core/lib/slice/percent_encoding.h +11 -3
  402. data/src/core/lib/slice/{slice.c → slice.cc} +64 -64
  403. data/src/core/lib/slice/{slice_buffer.c → slice_buffer.cc} +38 -38
  404. data/src/core/lib/slice/{slice_hash_table.c → slice_hash_table.cc} +7 -7
  405. data/src/core/lib/slice/slice_hash_table.h +19 -11
  406. data/src/core/lib/slice/{slice_intern.c → slice_intern.cc} +35 -34
  407. data/src/core/lib/slice/slice_internal.h +17 -6
  408. data/src/core/lib/slice/{slice_string_helpers.c → slice_string_helpers.cc} +9 -9
  409. data/src/core/lib/slice/slice_string_helpers.h +3 -3
  410. data/src/core/lib/support/abstract.h +29 -0
  411. data/src/core/lib/support/{alloc.c → alloc.cc} +22 -22
  412. data/src/core/lib/support/{arena.c → arena.cc} +12 -12
  413. data/src/core/lib/support/arena.h +11 -3
  414. data/src/core/lib/support/{atm.c → atm.cc} +1 -1
  415. data/src/core/lib/support/{avl.c → avl.cc} +71 -70
  416. data/src/core/lib/support/{cmdline.c → cmdline.cc} +62 -62
  417. data/src/core/lib/support/{cpu_iphone.c → cpu_iphone.cc} +2 -0
  418. data/src/core/lib/support/{cpu_linux.c → cpu_linux.cc} +10 -0
  419. data/src/core/lib/support/{cpu_posix.c → cpu_posix.cc} +27 -4
  420. data/src/core/lib/support/{cpu_windows.c → cpu_windows.cc} +1 -0
  421. data/src/core/lib/support/env.h +3 -3
  422. data/src/core/lib/support/{env_linux.c → env_linux.cc} +11 -11
  423. data/src/core/lib/support/{env_posix.c → env_posix.cc} +4 -4
  424. data/src/core/lib/support/{env_windows.c → env_windows.cc} +5 -5
  425. data/src/core/lib/support/{fork.c → fork.cc} +2 -2
  426. data/src/core/lib/support/{histogram.c → histogram.cc} +25 -26
  427. data/src/core/lib/support/{host_port.c → host_port.cc} +16 -16
  428. data/src/core/lib/support/{log.c → log.cc} +8 -8
  429. data/src/core/lib/support/{log_android.c → log_android.cc} +7 -7
  430. data/src/core/lib/support/{log_linux.c → log_linux.cc} +8 -8
  431. data/src/core/lib/support/{log_posix.c → log_posix.cc} +9 -10
  432. data/src/core/lib/support/{log_windows.c → log_windows.cc} +7 -7
  433. data/src/core/lib/support/manual_constructor.h +211 -0
  434. data/src/core/lib/support/memory.h +41 -0
  435. data/src/core/lib/support/mpscq.cc +114 -0
  436. data/src/core/lib/support/mpscq.h +45 -7
  437. data/src/core/lib/support/{murmur_hash.c → murmur_hash.cc} +9 -12
  438. data/src/core/lib/support/murmur_hash.h +9 -1
  439. data/src/core/lib/support/spinlock.h +8 -1
  440. data/src/core/lib/support/{string.c → string.cc} +56 -55
  441. data/src/core/lib/support/string.h +21 -21
  442. data/src/core/lib/support/{string_posix.c → string_posix.cc} +5 -4
  443. data/src/core/lib/support/{string_util_windows.c → string_util_windows.cc} +9 -6
  444. data/src/core/lib/support/{string_windows.c → string_windows.cc} +3 -2
  445. data/src/core/lib/support/string_windows.h +8 -0
  446. data/src/core/lib/support/{subprocess_posix.c → subprocess_posix.cc} +13 -13
  447. data/src/core/lib/support/{subprocess_windows.c → subprocess_windows.cc} +9 -9
  448. data/src/core/lib/support/{sync.c → sync.cc} +22 -22
  449. data/src/core/lib/support/{sync_posix.c → sync_posix.cc} +6 -2
  450. data/src/core/lib/support/{sync_windows.c → sync_windows.cc} +14 -14
  451. data/src/core/lib/support/{thd.c → thd.cc} +0 -0
  452. data/src/core/lib/support/{thd_posix.c → thd_posix.cc} +10 -10
  453. data/src/core/lib/support/{thd_windows.c → thd_windows.cc} +10 -10
  454. data/src/core/lib/support/{time.c → time.cc} +0 -0
  455. data/src/core/lib/support/{time_posix.c → time_posix.cc} +5 -6
  456. data/src/core/lib/support/{time_precise.c → time_precise.cc} +6 -4
  457. data/src/core/lib/support/time_precise.h +9 -1
  458. data/src/core/lib/support/{time_windows.c → time_windows.cc} +2 -3
  459. data/src/core/lib/support/{tls_pthread.c → tls_pthread.cc} +2 -2
  460. data/src/core/lib/support/tmpfile.h +1 -1
  461. data/src/core/lib/support/{tmpfile_msys.c → tmpfile_msys.cc} +2 -2
  462. data/src/core/lib/support/{tmpfile_posix.c → tmpfile_posix.cc} +7 -7
  463. data/src/core/lib/support/{tmpfile_windows.c → tmpfile_windows.cc} +2 -2
  464. data/src/core/lib/support/{wrap_memcpy.c → wrap_memcpy.cc} +4 -2
  465. data/src/core/lib/surface/{alarm.c → alarm.cc} +32 -31
  466. data/src/core/lib/surface/alarm_internal.h +10 -2
  467. data/src/core/lib/surface/{api_trace.c → api_trace.cc} +1 -1
  468. data/src/core/lib/surface/api_trace.h +2 -2
  469. data/src/core/lib/surface/{byte_buffer.c → byte_buffer.cc} +13 -13
  470. data/src/core/lib/surface/{byte_buffer_reader.c → byte_buffer_reader.cc} +9 -9
  471. data/src/core/lib/surface/{call.c → call.cc} +379 -372
  472. data/src/core/lib/surface/call.h +37 -38
  473. data/src/core/lib/surface/{call_details.c → call_details.cc} +0 -0
  474. data/src/core/lib/surface/{call_log_batch.c → call_log_batch.cc} +13 -11
  475. data/src/core/lib/surface/call_test_only.h +5 -5
  476. data/src/core/lib/surface/{channel.c → channel.cc} +94 -95
  477. data/src/core/lib/surface/channel.h +29 -21
  478. data/src/core/lib/surface/{channel_init.c → channel_init.cc} +13 -13
  479. data/src/core/lib/surface/channel_init.h +6 -6
  480. data/src/core/lib/surface/{channel_ping.c → channel_ping.cc} +12 -12
  481. data/src/core/lib/surface/{channel_stack_type.c → channel_stack_type.cc} +1 -1
  482. data/src/core/lib/surface/channel_stack_type.h +9 -1
  483. data/src/core/lib/surface/{completion_queue.c → completion_queue.cc} +416 -379
  484. data/src/core/lib/surface/completion_queue.h +29 -29
  485. data/src/core/lib/surface/{completion_queue_factory.c → completion_queue_factory.cc} +1 -1
  486. data/src/core/lib/surface/completion_queue_factory.h +8 -0
  487. data/src/core/lib/surface/{event_string.c → event_string.cc} +9 -9
  488. data/src/core/lib/surface/event_string.h +9 -1
  489. data/src/core/lib/surface/{init.c → init.cc} +16 -39
  490. data/src/core/lib/surface/init.h +8 -0
  491. data/src/core/lib/surface/{init_secure.c → init_secure.cc} +12 -25
  492. data/src/core/lib/surface/lame_client.cc +38 -40
  493. data/src/core/lib/surface/lame_client.h +8 -0
  494. data/src/core/lib/surface/{metadata_array.c → metadata_array.cc} +0 -0
  495. data/src/core/lib/surface/{server.c → server.cc} +340 -404
  496. data/src/core/lib/surface/server.h +22 -14
  497. data/src/core/lib/surface/{validate_metadata.c → validate_metadata.cc} +10 -9
  498. data/src/core/lib/surface/validate_metadata.h +10 -2
  499. data/src/core/lib/surface/{version.c → version.cc} +2 -2
  500. data/src/core/lib/transport/bdp_estimator.cc +84 -0
  501. data/src/core/lib/transport/bdp_estimator.h +67 -42
  502. data/src/core/lib/transport/{byte_stream.c → byte_stream.cc} +51 -51
  503. data/src/core/lib/transport/byte_stream.h +41 -33
  504. data/src/core/lib/transport/{connectivity_state.c → connectivity_state.cc} +36 -40
  505. data/src/core/lib/transport/connectivity_state.h +29 -21
  506. data/src/core/lib/transport/{error_utils.c → error_utils.cc} +26 -22
  507. data/src/core/lib/transport/error_utils.h +18 -6
  508. data/src/core/lib/transport/{metadata.c → metadata.cc} +92 -88
  509. data/src/core/lib/transport/metadata.h +22 -20
  510. data/src/core/lib/transport/{metadata_batch.c → metadata_batch.cc} +78 -79
  511. data/src/core/lib/transport/metadata_batch.h +46 -45
  512. data/src/core/lib/transport/pid_controller.cc +48 -0
  513. data/src/core/lib/transport/pid_controller.h +84 -32
  514. data/src/core/lib/transport/{service_config.c → service_config.cc} +66 -48
  515. data/src/core/lib/transport/service_config.h +11 -2
  516. data/src/core/lib/transport/{static_metadata.c → static_metadata.cc} +2 -2
  517. data/src/core/lib/transport/static_metadata.h +30 -23
  518. data/src/core/lib/transport/{status_conversion.c → status_conversion.cc} +4 -3
  519. data/src/core/lib/transport/status_conversion.h +12 -2
  520. data/src/core/lib/transport/{timeout_encoding.c → timeout_encoding.cc} +28 -61
  521. data/src/core/lib/transport/timeout_encoding.h +11 -2
  522. data/src/core/lib/transport/{transport.c → transport.cc} +79 -79
  523. data/src/core/lib/transport/transport.h +78 -80
  524. data/src/core/lib/transport/transport_impl.h +27 -19
  525. data/src/core/lib/transport/{transport_op_string.c → transport_op_string.cc} +32 -30
  526. data/src/core/plugin_registry/{grpc_plugin_registry.c → grpc_plugin_registry.cc} +34 -38
  527. data/src/core/tsi/{fake_transport_security.c → fake_transport_security.cc} +141 -132
  528. data/src/core/tsi/fake_transport_security.h +5 -5
  529. data/src/core/tsi/{gts_transport_security.c → gts_transport_security.cc} +4 -4
  530. data/src/core/tsi/gts_transport_security.h +11 -3
  531. data/src/core/tsi/{ssl_transport_security.c → ssl_transport_security.cc} +309 -300
  532. data/src/core/tsi/ssl_transport_security.h +25 -25
  533. data/src/core/tsi/ssl_types.h +8 -0
  534. data/src/core/tsi/{transport_security.c → transport_security.cc} +94 -87
  535. data/src/core/tsi/transport_security.h +55 -55
  536. data/src/core/tsi/{transport_security_adapter.c → transport_security_adapter.cc} +58 -55
  537. data/src/core/tsi/transport_security_adapter.h +2 -2
  538. data/src/core/tsi/{transport_security_grpc.c → transport_security_grpc.cc} +21 -21
  539. data/src/core/tsi/transport_security_grpc.h +19 -19
  540. data/src/core/tsi/transport_security_interface.h +41 -41
  541. data/src/ruby/ext/grpc/extconf.rb +4 -2
  542. data/src/ruby/ext/grpc/rb_byte_buffer.c +5 -5
  543. data/src/ruby/ext/grpc/rb_byte_buffer.h +2 -2
  544. data/src/ruby/ext/grpc/rb_call.c +41 -42
  545. data/src/ruby/ext/grpc/rb_call.h +6 -6
  546. data/src/ruby/ext/grpc/rb_call_credentials.c +30 -30
  547. data/src/ruby/ext/grpc/rb_channel.c +87 -87
  548. data/src/ruby/ext/grpc/rb_channel_credentials.c +23 -23
  549. data/src/ruby/ext/grpc/rb_completion_queue.c +11 -11
  550. data/src/ruby/ext/grpc/rb_completion_queue.h +3 -3
  551. data/src/ruby/ext/grpc/rb_compression_options.c +20 -20
  552. data/src/ruby/ext/grpc/rb_event_thread.c +14 -14
  553. data/src/ruby/ext/grpc/rb_event_thread.h +1 -1
  554. data/src/ruby/ext/grpc/rb_grpc.c +8 -8
  555. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +16 -58
  556. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +242 -306
  557. data/src/ruby/ext/grpc/rb_server.c +23 -23
  558. data/src/ruby/ext/grpc/rb_server_credentials.c +13 -13
  559. data/src/ruby/lib/grpc/generic/rpc_server.rb +25 -12
  560. data/src/ruby/lib/grpc/version.rb +1 -1
  561. data/src/ruby/pb/grpc/health/checker.rb +14 -0
  562. data/src/ruby/spec/pb/health/checker_spec.rb +29 -0
  563. data/third_party/cares/config_freebsd/ares_config.h +502 -0
  564. data/third_party/cares/config_openbsd/ares_config.h +502 -0
  565. metadata +302 -328
  566. data/src/core/ext/census/aggregation.h +0 -51
  567. data/src/core/ext/census/base_resources.c +0 -56
  568. data/src/core/ext/census/base_resources.h +0 -24
  569. data/src/core/ext/census/census_interface.h +0 -61
  570. data/src/core/ext/census/census_rpc_stats.h +0 -86
  571. data/src/core/ext/census/context.c +0 -496
  572. data/src/core/ext/census/gen/census.pb.c +0 -161
  573. data/src/core/ext/census/gen/census.pb.h +0 -280
  574. data/src/core/ext/census/gen/trace_context.pb.c +0 -39
  575. data/src/core/ext/census/gen/trace_context.pb.h +0 -78
  576. data/src/core/ext/census/grpc_filter.c +0 -196
  577. data/src/core/ext/census/grpc_plugin.c +0 -70
  578. data/src/core/ext/census/initialize.c +0 -51
  579. data/src/core/ext/census/intrusive_hash_map.c +0 -305
  580. data/src/core/ext/census/intrusive_hash_map.h +0 -152
  581. data/src/core/ext/census/intrusive_hash_map_internal.h +0 -48
  582. data/src/core/ext/census/mlog.c +0 -586
  583. data/src/core/ext/census/mlog.h +0 -80
  584. data/src/core/ext/census/operation.c +0 -48
  585. data/src/core/ext/census/placeholders.c +0 -49
  586. data/src/core/ext/census/resource.c +0 -303
  587. data/src/core/ext/census/resource.h +0 -48
  588. data/src/core/ext/census/rpc_metric_id.h +0 -36
  589. data/src/core/ext/census/trace_context.c +0 -71
  590. data/src/core/ext/census/trace_context.h +0 -56
  591. data/src/core/ext/census/trace_label.h +0 -46
  592. data/src/core/ext/census/trace_propagation.h +0 -48
  593. data/src/core/ext/census/trace_status.h +0 -30
  594. data/src/core/ext/census/trace_string.h +0 -35
  595. data/src/core/ext/census/tracing.c +0 -55
  596. data/src/core/ext/census/tracing.h +0 -109
  597. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.c +0 -714
  598. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.c +0 -924
  599. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c +0 -60
  600. data/src/core/ext/transport/chttp2/transport/flow_control.c +0 -502
  601. data/src/core/ext/transport/chttp2/transport/writing.c +0 -534
  602. data/src/core/lib/debug/trace.c +0 -146
  603. data/src/core/lib/iomgr/closure.c +0 -219
  604. data/src/core/lib/iomgr/ev_epollex_linux.c +0 -1461
  605. data/src/core/lib/iomgr/ev_posix.c +0 -266
  606. data/src/core/lib/iomgr/exec_ctx.c +0 -113
  607. data/src/core/lib/iomgr/tcp_uv.c +0 -381
  608. data/src/core/lib/security/credentials/ssl/ssl_credentials.c +0 -194
  609. data/src/core/lib/security/transport/security_connector.c +0 -914
  610. data/src/core/lib/support/backoff.c +0 -72
  611. data/src/core/lib/support/backoff.h +0 -56
  612. data/src/core/lib/support/mpscq.c +0 -79
  613. data/src/core/lib/support/stack_lockfree.c +0 -137
  614. data/src/core/lib/support/stack_lockfree.h +0 -38
  615. data/src/core/lib/transport/bdp_estimator.c +0 -110
  616. data/src/core/lib/transport/pid_controller.c +0 -63
@@ -26,6 +26,10 @@
26
26
  #include "src/core/lib/transport/connectivity_state.h"
27
27
  #include "src/core/lib/transport/metadata.h"
28
28
 
29
+ #ifdef __cplusplus
30
+ extern "C" {
31
+ #endif
32
+
29
33
  // Channel arg containing a grpc_resolved_address to connect to.
30
34
  #define GRPC_ARG_SUBCHANNEL_ADDRESS "grpc.subchannel_address"
31
35
 
@@ -75,117 +79,121 @@ typedef struct grpc_subchannel_key grpc_subchannel_key;
75
79
  #define GRPC_SUBCHANNEL_REF_EXTRA_ARGS
76
80
  #endif
77
81
 
78
- grpc_subchannel *grpc_subchannel_ref(
79
- grpc_subchannel *channel GRPC_SUBCHANNEL_REF_EXTRA_ARGS);
80
- grpc_subchannel *grpc_subchannel_ref_from_weak_ref(
81
- grpc_subchannel *channel GRPC_SUBCHANNEL_REF_EXTRA_ARGS);
82
- void grpc_subchannel_unref(grpc_exec_ctx *exec_ctx,
83
- grpc_subchannel *channel
82
+ grpc_subchannel* grpc_subchannel_ref(
83
+ grpc_subchannel* channel GRPC_SUBCHANNEL_REF_EXTRA_ARGS);
84
+ grpc_subchannel* grpc_subchannel_ref_from_weak_ref(
85
+ grpc_subchannel* channel GRPC_SUBCHANNEL_REF_EXTRA_ARGS);
86
+ void grpc_subchannel_unref(grpc_exec_ctx* exec_ctx,
87
+ grpc_subchannel* channel
84
88
  GRPC_SUBCHANNEL_REF_EXTRA_ARGS);
85
- grpc_subchannel *grpc_subchannel_weak_ref(
86
- grpc_subchannel *channel GRPC_SUBCHANNEL_REF_EXTRA_ARGS);
87
- void grpc_subchannel_weak_unref(grpc_exec_ctx *exec_ctx,
88
- grpc_subchannel *channel
89
+ grpc_subchannel* grpc_subchannel_weak_ref(
90
+ grpc_subchannel* channel GRPC_SUBCHANNEL_REF_EXTRA_ARGS);
91
+ void grpc_subchannel_weak_unref(grpc_exec_ctx* exec_ctx,
92
+ grpc_subchannel* channel
89
93
  GRPC_SUBCHANNEL_REF_EXTRA_ARGS);
90
- grpc_connected_subchannel *grpc_connected_subchannel_ref(
91
- grpc_connected_subchannel *channel GRPC_SUBCHANNEL_REF_EXTRA_ARGS);
92
- void grpc_connected_subchannel_unref(grpc_exec_ctx *exec_ctx,
93
- grpc_connected_subchannel *channel
94
+ grpc_connected_subchannel* grpc_connected_subchannel_ref(
95
+ grpc_connected_subchannel* channel GRPC_SUBCHANNEL_REF_EXTRA_ARGS);
96
+ void grpc_connected_subchannel_unref(grpc_exec_ctx* exec_ctx,
97
+ grpc_connected_subchannel* channel
94
98
  GRPC_SUBCHANNEL_REF_EXTRA_ARGS);
95
99
  void grpc_subchannel_call_ref(
96
- grpc_subchannel_call *call GRPC_SUBCHANNEL_REF_EXTRA_ARGS);
97
- void grpc_subchannel_call_unref(grpc_exec_ctx *exec_ctx,
98
- grpc_subchannel_call *call
100
+ grpc_subchannel_call* call GRPC_SUBCHANNEL_REF_EXTRA_ARGS);
101
+ void grpc_subchannel_call_unref(grpc_exec_ctx* exec_ctx,
102
+ grpc_subchannel_call* call
99
103
  GRPC_SUBCHANNEL_REF_EXTRA_ARGS);
100
104
 
101
105
  /** construct a subchannel call */
102
106
  typedef struct {
103
- grpc_polling_entity *pollent;
107
+ grpc_polling_entity* pollent;
104
108
  grpc_slice path;
105
109
  gpr_timespec start_time;
106
- gpr_timespec deadline;
107
- gpr_arena *arena;
108
- grpc_call_context_element *context;
109
- grpc_call_combiner *call_combiner;
110
+ grpc_millis deadline;
111
+ gpr_arena* arena;
112
+ grpc_call_context_element* context;
113
+ grpc_call_combiner* call_combiner;
110
114
  } grpc_connected_subchannel_call_args;
111
115
 
112
- grpc_error *grpc_connected_subchannel_create_call(
113
- grpc_exec_ctx *exec_ctx, grpc_connected_subchannel *connected_subchannel,
114
- const grpc_connected_subchannel_call_args *args,
115
- grpc_subchannel_call **subchannel_call);
116
+ grpc_error* grpc_connected_subchannel_create_call(
117
+ grpc_exec_ctx* exec_ctx, grpc_connected_subchannel* connected_subchannel,
118
+ const grpc_connected_subchannel_call_args* args,
119
+ grpc_subchannel_call** subchannel_call);
116
120
 
117
121
  /** process a transport level op */
118
122
  void grpc_connected_subchannel_process_transport_op(
119
- grpc_exec_ctx *exec_ctx, grpc_connected_subchannel *subchannel,
120
- grpc_transport_op *op);
123
+ grpc_exec_ctx* exec_ctx, grpc_connected_subchannel* subchannel,
124
+ grpc_transport_op* op);
121
125
 
122
126
  /** poll the current connectivity state of a channel */
123
127
  grpc_connectivity_state grpc_subchannel_check_connectivity(
124
- grpc_subchannel *channel, grpc_error **error);
128
+ grpc_subchannel* channel, grpc_error** error);
125
129
 
126
- /** call notify when the connectivity state of a channel changes from *state.
127
- Updates *state with the new state of the channel */
130
+ /** Calls notify when the connectivity state of a channel becomes different
131
+ from *state. Updates *state with the new state of the channel. */
128
132
  void grpc_subchannel_notify_on_state_change(
129
- grpc_exec_ctx *exec_ctx, grpc_subchannel *channel,
130
- grpc_pollset_set *interested_parties, grpc_connectivity_state *state,
131
- grpc_closure *notify);
133
+ grpc_exec_ctx* exec_ctx, grpc_subchannel* channel,
134
+ grpc_pollset_set* interested_parties, grpc_connectivity_state* state,
135
+ grpc_closure* notify);
132
136
  void grpc_connected_subchannel_notify_on_state_change(
133
- grpc_exec_ctx *exec_ctx, grpc_connected_subchannel *channel,
134
- grpc_pollset_set *interested_parties, grpc_connectivity_state *state,
135
- grpc_closure *notify);
136
- void grpc_connected_subchannel_ping(grpc_exec_ctx *exec_ctx,
137
- grpc_connected_subchannel *channel,
138
- grpc_closure *notify);
137
+ grpc_exec_ctx* exec_ctx, grpc_connected_subchannel* channel,
138
+ grpc_pollset_set* interested_parties, grpc_connectivity_state* state,
139
+ grpc_closure* notify);
140
+ void grpc_connected_subchannel_ping(grpc_exec_ctx* exec_ctx,
141
+ grpc_connected_subchannel* channel,
142
+ grpc_closure* notify);
139
143
 
140
144
  /** retrieve the grpc_connected_subchannel - or NULL if called before
141
145
  the subchannel becomes connected */
142
- grpc_connected_subchannel *grpc_subchannel_get_connected_subchannel(
143
- grpc_subchannel *subchannel);
146
+ grpc_connected_subchannel* grpc_subchannel_get_connected_subchannel(
147
+ grpc_subchannel* subchannel);
144
148
 
145
149
  /** return the subchannel index key for \a subchannel */
146
- const grpc_subchannel_key *grpc_subchannel_get_key(
147
- const grpc_subchannel *subchannel);
150
+ const grpc_subchannel_key* grpc_subchannel_get_key(
151
+ const grpc_subchannel* subchannel);
148
152
 
149
153
  /** continue processing a transport op */
150
- void grpc_subchannel_call_process_op(grpc_exec_ctx *exec_ctx,
151
- grpc_subchannel_call *subchannel_call,
152
- grpc_transport_stream_op_batch *op);
154
+ void grpc_subchannel_call_process_op(grpc_exec_ctx* exec_ctx,
155
+ grpc_subchannel_call* subchannel_call,
156
+ grpc_transport_stream_op_batch* op);
153
157
 
154
158
  /** Must be called once per call. Sets the 'then_schedule_closure' argument for
155
159
  call stack destruction. */
156
160
  void grpc_subchannel_call_set_cleanup_closure(
157
- grpc_subchannel_call *subchannel_call, grpc_closure *closure);
161
+ grpc_subchannel_call* subchannel_call, grpc_closure* closure);
158
162
 
159
- grpc_call_stack *grpc_subchannel_call_get_call_stack(
160
- grpc_subchannel_call *subchannel_call);
163
+ grpc_call_stack* grpc_subchannel_call_get_call_stack(
164
+ grpc_subchannel_call* subchannel_call);
161
165
 
162
166
  struct grpc_subchannel_args {
163
167
  /* When updating this struct, also update subchannel_index.c */
164
168
 
165
169
  /** Channel filters for this channel - wrapped factories will likely
166
170
  want to mutate this */
167
- const grpc_channel_filter **filters;
171
+ const grpc_channel_filter** filters;
168
172
  /** The number of filters in the above array */
169
173
  size_t filter_count;
170
174
  /** Channel arguments to be supplied to the newly created channel */
171
- const grpc_channel_args *args;
175
+ const grpc_channel_args* args;
172
176
  };
173
177
 
174
178
  /** create a subchannel given a connector */
175
- grpc_subchannel *grpc_subchannel_create(grpc_exec_ctx *exec_ctx,
176
- grpc_connector *connector,
177
- const grpc_subchannel_args *args);
179
+ grpc_subchannel* grpc_subchannel_create(grpc_exec_ctx* exec_ctx,
180
+ grpc_connector* connector,
181
+ const grpc_subchannel_args* args);
178
182
 
179
183
  /// Sets \a addr from \a args.
180
- void grpc_get_subchannel_address_arg(grpc_exec_ctx *exec_ctx,
181
- const grpc_channel_args *args,
182
- grpc_resolved_address *addr);
184
+ void grpc_get_subchannel_address_arg(grpc_exec_ctx* exec_ctx,
185
+ const grpc_channel_args* args,
186
+ grpc_resolved_address* addr);
183
187
 
184
188
  /// Returns the URI string for the address to connect to.
185
- const char *grpc_get_subchannel_address_uri_arg(const grpc_channel_args *args);
189
+ const char* grpc_get_subchannel_address_uri_arg(const grpc_channel_args* args);
186
190
 
187
191
  /// Returns a new channel arg encoding the subchannel address as a string.
188
192
  /// Caller is responsible for freeing the string.
189
- grpc_arg grpc_create_subchannel_address_arg(const grpc_resolved_address *addr);
193
+ grpc_arg grpc_create_subchannel_address_arg(const grpc_resolved_address* addr);
194
+
195
+ #ifdef __cplusplus
196
+ }
197
+ #endif
190
198
 
191
199
  #endif /* GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_SUBCHANNEL_H */
@@ -42,34 +42,34 @@ struct grpc_subchannel_key {
42
42
 
43
43
  static bool g_force_creation = false;
44
44
 
45
- static grpc_subchannel_key *create_key(
46
- const grpc_subchannel_args *args,
47
- grpc_channel_args *(*copy_channel_args)(const grpc_channel_args *args)) {
48
- grpc_subchannel_key *k = (grpc_subchannel_key *)gpr_malloc(sizeof(*k));
45
+ static grpc_subchannel_key* create_key(
46
+ const grpc_subchannel_args* args,
47
+ grpc_channel_args* (*copy_channel_args)(const grpc_channel_args* args)) {
48
+ grpc_subchannel_key* k = (grpc_subchannel_key*)gpr_malloc(sizeof(*k));
49
49
  k->args.filter_count = args->filter_count;
50
50
  if (k->args.filter_count > 0) {
51
- k->args.filters = (const grpc_channel_filter **)gpr_malloc(
51
+ k->args.filters = (const grpc_channel_filter**)gpr_malloc(
52
52
  sizeof(*k->args.filters) * k->args.filter_count);
53
- memcpy((grpc_channel_filter *)k->args.filters, args->filters,
53
+ memcpy((grpc_channel_filter*)k->args.filters, args->filters,
54
54
  sizeof(*k->args.filters) * k->args.filter_count);
55
55
  } else {
56
- k->args.filters = NULL;
56
+ k->args.filters = nullptr;
57
57
  }
58
58
  k->args.args = copy_channel_args(args->args);
59
59
  return k;
60
60
  }
61
61
 
62
- grpc_subchannel_key *grpc_subchannel_key_create(
63
- const grpc_subchannel_args *args) {
62
+ grpc_subchannel_key* grpc_subchannel_key_create(
63
+ const grpc_subchannel_args* args) {
64
64
  return create_key(args, grpc_channel_args_normalize);
65
65
  }
66
66
 
67
- static grpc_subchannel_key *subchannel_key_copy(grpc_subchannel_key *k) {
67
+ static grpc_subchannel_key* subchannel_key_copy(grpc_subchannel_key* k) {
68
68
  return create_key(&k->args, grpc_channel_args_copy);
69
69
  }
70
70
 
71
- int grpc_subchannel_key_compare(const grpc_subchannel_key *a,
72
- const grpc_subchannel_key *b) {
71
+ int grpc_subchannel_key_compare(const grpc_subchannel_key* a,
72
+ const grpc_subchannel_key* b) {
73
73
  if (g_force_creation) return false;
74
74
  int c = GPR_ICMP(a->args.filter_count, b->args.filter_count);
75
75
  if (c != 0) return c;
@@ -81,44 +81,44 @@ int grpc_subchannel_key_compare(const grpc_subchannel_key *a,
81
81
  return grpc_channel_args_compare(a->args.args, b->args.args);
82
82
  }
83
83
 
84
- void grpc_subchannel_key_destroy(grpc_exec_ctx *exec_ctx,
85
- grpc_subchannel_key *k) {
86
- gpr_free((grpc_channel_args *)k->args.filters);
87
- grpc_channel_args_destroy(exec_ctx, (grpc_channel_args *)k->args.args);
84
+ void grpc_subchannel_key_destroy(grpc_exec_ctx* exec_ctx,
85
+ grpc_subchannel_key* k) {
86
+ gpr_free((grpc_channel_args*)k->args.filters);
87
+ grpc_channel_args_destroy(exec_ctx, (grpc_channel_args*)k->args.args);
88
88
  gpr_free(k);
89
89
  }
90
90
 
91
- static void sck_avl_destroy(void *p, void *user_data) {
92
- grpc_exec_ctx *exec_ctx = (grpc_exec_ctx *)user_data;
93
- grpc_subchannel_key_destroy(exec_ctx, (grpc_subchannel_key *)p);
91
+ static void sck_avl_destroy(void* p, void* user_data) {
92
+ grpc_exec_ctx* exec_ctx = (grpc_exec_ctx*)user_data;
93
+ grpc_subchannel_key_destroy(exec_ctx, (grpc_subchannel_key*)p);
94
94
  }
95
95
 
96
- static void *sck_avl_copy(void *p, void *unused) {
97
- return subchannel_key_copy((grpc_subchannel_key *)p);
96
+ static void* sck_avl_copy(void* p, void* unused) {
97
+ return subchannel_key_copy((grpc_subchannel_key*)p);
98
98
  }
99
99
 
100
- static long sck_avl_compare(void *a, void *b, void *unused) {
101
- return grpc_subchannel_key_compare((grpc_subchannel_key *)a,
102
- (grpc_subchannel_key *)b);
100
+ static long sck_avl_compare(void* a, void* b, void* unused) {
101
+ return grpc_subchannel_key_compare((grpc_subchannel_key*)a,
102
+ (grpc_subchannel_key*)b);
103
103
  }
104
104
 
105
- static void scv_avl_destroy(void *p, void *user_data) {
106
- grpc_exec_ctx *exec_ctx = (grpc_exec_ctx *)user_data;
107
- GRPC_SUBCHANNEL_WEAK_UNREF(exec_ctx, (grpc_subchannel *)p,
108
- "subchannel_index");
105
+ static void scv_avl_destroy(void* p, void* user_data) {
106
+ grpc_exec_ctx* exec_ctx = (grpc_exec_ctx*)user_data;
107
+ GRPC_SUBCHANNEL_WEAK_UNREF(exec_ctx, (grpc_subchannel*)p, "subchannel_index");
109
108
  }
110
109
 
111
- static void *scv_avl_copy(void *p, void *unused) {
112
- GRPC_SUBCHANNEL_WEAK_REF((grpc_subchannel *)p, "subchannel_index");
110
+ static void* scv_avl_copy(void* p, void* unused) {
111
+ GRPC_SUBCHANNEL_WEAK_REF((grpc_subchannel*)p, "subchannel_index");
113
112
  return p;
114
113
  }
115
114
 
116
115
  static const gpr_avl_vtable subchannel_avl_vtable = {
117
- .destroy_key = sck_avl_destroy,
118
- .copy_key = sck_avl_copy,
119
- .compare_keys = sck_avl_compare,
120
- .destroy_value = scv_avl_destroy,
121
- .copy_value = scv_avl_copy};
116
+ sck_avl_destroy, // destroy_key
117
+ sck_avl_copy, // copy_key
118
+ sck_avl_compare, // compare_keys
119
+ scv_avl_destroy, // destroy_value
120
+ scv_avl_copy // copy_value
121
+ };
122
122
 
123
123
  void grpc_subchannel_index_init(void) {
124
124
  g_subchannel_index = gpr_avl_create(&subchannel_avl_vtable);
@@ -144,28 +144,28 @@ void grpc_subchannel_index_unref(void) {
144
144
 
145
145
  void grpc_subchannel_index_ref(void) { gpr_ref_non_zero(&g_refcount); }
146
146
 
147
- grpc_subchannel *grpc_subchannel_index_find(grpc_exec_ctx *exec_ctx,
148
- grpc_subchannel_key *key) {
147
+ grpc_subchannel* grpc_subchannel_index_find(grpc_exec_ctx* exec_ctx,
148
+ grpc_subchannel_key* key) {
149
149
  // Lock, and take a reference to the subchannel index.
150
150
  // We don't need to do the search under a lock as avl's are immutable.
151
151
  gpr_mu_lock(&g_mu);
152
152
  gpr_avl index = gpr_avl_ref(g_subchannel_index, exec_ctx);
153
153
  gpr_mu_unlock(&g_mu);
154
154
 
155
- grpc_subchannel *c = GRPC_SUBCHANNEL_REF_FROM_WEAK_REF(
156
- (grpc_subchannel *)gpr_avl_get(index, key, exec_ctx), "index_find");
155
+ grpc_subchannel* c = GRPC_SUBCHANNEL_REF_FROM_WEAK_REF(
156
+ (grpc_subchannel*)gpr_avl_get(index, key, exec_ctx), "index_find");
157
157
  gpr_avl_unref(index, exec_ctx);
158
158
 
159
159
  return c;
160
160
  }
161
161
 
162
- grpc_subchannel *grpc_subchannel_index_register(grpc_exec_ctx *exec_ctx,
163
- grpc_subchannel_key *key,
164
- grpc_subchannel *constructed) {
165
- grpc_subchannel *c = NULL;
166
- bool need_to_unref_constructed;
162
+ grpc_subchannel* grpc_subchannel_index_register(grpc_exec_ctx* exec_ctx,
163
+ grpc_subchannel_key* key,
164
+ grpc_subchannel* constructed) {
165
+ grpc_subchannel* c = nullptr;
166
+ bool need_to_unref_constructed = false;
167
167
 
168
- while (c == NULL) {
168
+ while (c == nullptr) {
169
169
  need_to_unref_constructed = false;
170
170
 
171
171
  // Compare and swap loop:
@@ -175,11 +175,11 @@ grpc_subchannel *grpc_subchannel_index_register(grpc_exec_ctx *exec_ctx,
175
175
  gpr_mu_unlock(&g_mu);
176
176
 
177
177
  // - Check to see if a subchannel already exists
178
- c = (grpc_subchannel *)gpr_avl_get(index, key, exec_ctx);
179
- if (c != NULL) {
178
+ c = (grpc_subchannel*)gpr_avl_get(index, key, exec_ctx);
179
+ if (c != nullptr) {
180
180
  c = GRPC_SUBCHANNEL_REF_FROM_WEAK_REF(c, "index_register");
181
181
  }
182
- if (c != NULL) {
182
+ if (c != nullptr) {
183
183
  // yes -> we're done
184
184
  need_to_unref_constructed = true;
185
185
  } else {
@@ -210,9 +210,9 @@ grpc_subchannel *grpc_subchannel_index_register(grpc_exec_ctx *exec_ctx,
210
210
  return c;
211
211
  }
212
212
 
213
- void grpc_subchannel_index_unregister(grpc_exec_ctx *exec_ctx,
214
- grpc_subchannel_key *key,
215
- grpc_subchannel *constructed) {
213
+ void grpc_subchannel_index_unregister(grpc_exec_ctx* exec_ctx,
214
+ grpc_subchannel_key* key,
215
+ grpc_subchannel* constructed) {
216
216
  bool done = false;
217
217
  while (!done) {
218
218
  // Compare and swap loop:
@@ -223,7 +223,7 @@ void grpc_subchannel_index_unregister(grpc_exec_ctx *exec_ctx,
223
223
 
224
224
  // Check to see if this key still refers to the previously
225
225
  // registered subchannel
226
- grpc_subchannel *c = (grpc_subchannel *)gpr_avl_get(index, key, exec_ctx);
226
+ grpc_subchannel* c = (grpc_subchannel*)gpr_avl_get(index, key, exec_ctx);
227
227
  if (c != constructed) {
228
228
  gpr_avl_unref(index, exec_ctx);
229
229
  break;
@@ -21,38 +21,42 @@
21
21
 
22
22
  #include "src/core/ext/filters/client_channel/subchannel.h"
23
23
 
24
+ #ifdef __cplusplus
25
+ extern "C" {
26
+ #endif
27
+
24
28
  /** \file Provides an index of active subchannels so that they can be
25
29
  shared amongst channels */
26
30
 
27
31
  /** Create a key that can be used to uniquely identify a subchannel */
28
- grpc_subchannel_key *grpc_subchannel_key_create(
29
- const grpc_subchannel_args *args);
32
+ grpc_subchannel_key* grpc_subchannel_key_create(
33
+ const grpc_subchannel_args* args);
30
34
 
31
35
  /** Destroy a subchannel key */
32
- void grpc_subchannel_key_destroy(grpc_exec_ctx *exec_ctx,
33
- grpc_subchannel_key *key);
36
+ void grpc_subchannel_key_destroy(grpc_exec_ctx* exec_ctx,
37
+ grpc_subchannel_key* key);
34
38
 
35
39
  /** Given a subchannel key, find the subchannel registered for it.
36
40
  Returns NULL if no such channel exists.
37
41
  Thread-safe. */
38
- grpc_subchannel *grpc_subchannel_index_find(grpc_exec_ctx *exec_ctx,
39
- grpc_subchannel_key *key);
42
+ grpc_subchannel* grpc_subchannel_index_find(grpc_exec_ctx* exec_ctx,
43
+ grpc_subchannel_key* key);
40
44
 
41
45
  /** Register a subchannel against a key.
42
46
  Takes ownership of \a constructed.
43
47
  Returns the registered subchannel. This may be different from
44
48
  \a constructed in the case of a registration race. */
45
- grpc_subchannel *grpc_subchannel_index_register(grpc_exec_ctx *exec_ctx,
46
- grpc_subchannel_key *key,
47
- grpc_subchannel *constructed);
49
+ grpc_subchannel* grpc_subchannel_index_register(grpc_exec_ctx* exec_ctx,
50
+ grpc_subchannel_key* key,
51
+ grpc_subchannel* constructed);
48
52
 
49
53
  /** Remove \a constructed as the registered subchannel for \a key. */
50
- void grpc_subchannel_index_unregister(grpc_exec_ctx *exec_ctx,
51
- grpc_subchannel_key *key,
52
- grpc_subchannel *constructed);
54
+ void grpc_subchannel_index_unregister(grpc_exec_ctx* exec_ctx,
55
+ grpc_subchannel_key* key,
56
+ grpc_subchannel* constructed);
53
57
 
54
- int grpc_subchannel_key_compare(const grpc_subchannel_key *a,
55
- const grpc_subchannel_key *b);
58
+ int grpc_subchannel_key_compare(const grpc_subchannel_key* a,
59
+ const grpc_subchannel_key* b);
56
60
 
57
61
  /** Initialize the subchannel index (global) */
58
62
  void grpc_subchannel_index_init(void);
@@ -78,4 +82,8 @@ void grpc_subchannel_index_unref(void);
78
82
  * force_creation set. */
79
83
  void grpc_subchannel_index_test_only_set_force_creation(bool force_creation);
80
84
 
85
+ #ifdef __cplusplus
86
+ }
87
+ #endif
88
+
81
89
  #endif /* GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_SUBCHANNEL_INDEX_H */
@@ -34,9 +34,9 @@
34
34
  /** a size_t default value... maps to all 1's */
35
35
  #define NOT_SET (~(size_t)0)
36
36
 
37
- static grpc_uri *bad_uri(const char *uri_text, size_t pos, const char *section,
37
+ static grpc_uri* bad_uri(const char* uri_text, size_t pos, const char* section,
38
38
  bool suppress_errors) {
39
- char *line_prefix;
39
+ char* line_prefix;
40
40
  size_t pfx_len;
41
41
 
42
42
  if (!suppress_errors) {
@@ -45,24 +45,26 @@ static grpc_uri *bad_uri(const char *uri_text, size_t pos, const char *section,
45
45
  gpr_log(GPR_ERROR, "%s%s'", line_prefix, uri_text);
46
46
  gpr_free(line_prefix);
47
47
 
48
- line_prefix = (char *)gpr_malloc(pfx_len + 1);
48
+ line_prefix = (char*)gpr_malloc(pfx_len + 1);
49
49
  memset(line_prefix, ' ', pfx_len);
50
50
  line_prefix[pfx_len] = 0;
51
51
  gpr_log(GPR_ERROR, "%s^ here", line_prefix);
52
52
  gpr_free(line_prefix);
53
53
  }
54
54
 
55
- return NULL;
55
+ return nullptr;
56
56
  }
57
57
 
58
58
  /** Returns a copy of percent decoded \a src[begin, end) */
59
- static char *decode_and_copy_component(grpc_exec_ctx *exec_ctx, const char *src,
59
+ static char* decode_and_copy_component(grpc_exec_ctx* exec_ctx, const char* src,
60
60
  size_t begin, size_t end) {
61
61
  grpc_slice component =
62
- grpc_slice_from_copied_buffer(src + begin, end - begin);
62
+ (begin == NOT_SET || end == NOT_SET)
63
+ ? grpc_empty_slice()
64
+ : grpc_slice_from_copied_buffer(src + begin, end - begin);
63
65
  grpc_slice decoded_component =
64
66
  grpc_permissive_percent_decode_slice(component);
65
- char *out = grpc_dump_slice(decoded_component, GPR_DUMP_ASCII);
67
+ char* out = grpc_dump_slice(decoded_component, GPR_DUMP_ASCII);
66
68
  grpc_slice_unref_internal(exec_ctx, component);
67
69
  grpc_slice_unref_internal(exec_ctx, decoded_component);
68
70
  return out;
@@ -76,7 +78,7 @@ static bool valid_hex(char c) {
76
78
  /** Returns how many chars to advance if \a uri_text[i] begins a valid \a pchar
77
79
  * production. If \a uri_text[i] introduces an invalid \a pchar (such as percent
78
80
  * sign not followed by two hex digits), NOT_SET is returned. */
79
- static size_t parse_pchar(const char *uri_text, size_t i) {
81
+ static size_t parse_pchar(const char* uri_text, size_t i) {
80
82
  /* pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
81
83
  * unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
82
84
  * pct-encoded = "%" HEXDIG HEXDIG
@@ -118,7 +120,7 @@ static size_t parse_pchar(const char *uri_text, size_t i) {
118
120
  }
119
121
 
120
122
  /* *( pchar / "?" / "/" ) */
121
- static int parse_fragment_or_query(const char *uri_text, size_t *i) {
123
+ static int parse_fragment_or_query(const char* uri_text, size_t* i) {
122
124
  char c;
123
125
  while ((c = uri_text[*i]) != 0) {
124
126
  const size_t advance = parse_pchar(uri_text, *i); /* pchar */
@@ -143,13 +145,13 @@ static int parse_fragment_or_query(const char *uri_text, size_t *i) {
143
145
  return 1;
144
146
  }
145
147
 
146
- static void parse_query_parts(grpc_uri *uri) {
147
- static const char *QUERY_PARTS_SEPARATOR = "&";
148
- static const char *QUERY_PARTS_VALUE_SEPARATOR = "=";
149
- GPR_ASSERT(uri->query != NULL);
148
+ static void parse_query_parts(grpc_uri* uri) {
149
+ static const char* QUERY_PARTS_SEPARATOR = "&";
150
+ static const char* QUERY_PARTS_VALUE_SEPARATOR = "=";
151
+ GPR_ASSERT(uri->query != nullptr);
150
152
  if (uri->query[0] == '\0') {
151
- uri->query_parts = NULL;
152
- uri->query_parts_values = NULL;
153
+ uri->query_parts = nullptr;
154
+ uri->query_parts_values = nullptr;
153
155
  uri->num_query_parts = 0;
154
156
  return;
155
157
  }
@@ -157,11 +159,11 @@ static void parse_query_parts(grpc_uri *uri) {
157
159
  gpr_string_split(uri->query, QUERY_PARTS_SEPARATOR, &uri->query_parts,
158
160
  &uri->num_query_parts);
159
161
  uri->query_parts_values =
160
- (char **)gpr_malloc(uri->num_query_parts * sizeof(char **));
162
+ (char**)gpr_malloc(uri->num_query_parts * sizeof(char**));
161
163
  for (size_t i = 0; i < uri->num_query_parts; i++) {
162
- char **query_param_parts;
164
+ char** query_param_parts;
163
165
  size_t num_query_param_parts;
164
- char *full = uri->query_parts[i];
166
+ char* full = uri->query_parts[i];
165
167
  gpr_string_split(full, QUERY_PARTS_VALUE_SEPARATOR, &query_param_parts,
166
168
  &num_query_param_parts);
167
169
  GPR_ASSERT(num_query_param_parts > 0);
@@ -172,7 +174,7 @@ static void parse_query_parts(grpc_uri *uri) {
172
174
  * be included, even if they include the separator. */
173
175
  uri->query_parts_values[i] = query_param_parts[1];
174
176
  } else {
175
- uri->query_parts_values[i] = NULL;
177
+ uri->query_parts_values[i] = nullptr;
176
178
  }
177
179
  for (size_t j = 2; j < num_query_param_parts; j++) {
178
180
  gpr_free(query_param_parts[j]);
@@ -182,9 +184,9 @@ static void parse_query_parts(grpc_uri *uri) {
182
184
  }
183
185
  }
184
186
 
185
- grpc_uri *grpc_uri_parse(grpc_exec_ctx *exec_ctx, const char *uri_text,
187
+ grpc_uri* grpc_uri_parse(grpc_exec_ctx* exec_ctx, const char* uri_text,
186
188
  bool suppress_errors) {
187
- grpc_uri *uri;
189
+ grpc_uri* uri;
188
190
  size_t scheme_begin = 0;
189
191
  size_t scheme_end = NOT_SET;
190
192
  size_t authority_begin = NOT_SET;
@@ -270,7 +272,7 @@ grpc_uri *grpc_uri_parse(grpc_exec_ctx *exec_ctx, const char *uri_text,
270
272
  fragment_end = i;
271
273
  }
272
274
 
273
- uri = (grpc_uri *)gpr_zalloc(sizeof(*uri));
275
+ uri = (grpc_uri*)gpr_zalloc(sizeof(*uri));
274
276
  uri->scheme =
275
277
  decode_and_copy_component(exec_ctx, uri_text, scheme_begin, scheme_end);
276
278
  uri->authority = decode_and_copy_component(exec_ctx, uri_text,
@@ -286,19 +288,19 @@ grpc_uri *grpc_uri_parse(grpc_exec_ctx *exec_ctx, const char *uri_text,
286
288
  return uri;
287
289
  }
288
290
 
289
- const char *grpc_uri_get_query_arg(const grpc_uri *uri, const char *key) {
290
- GPR_ASSERT(key != NULL);
291
- if (key[0] == '\0') return NULL;
291
+ const char* grpc_uri_get_query_arg(const grpc_uri* uri, const char* key) {
292
+ GPR_ASSERT(key != nullptr);
293
+ if (key[0] == '\0') return nullptr;
292
294
 
293
295
  for (size_t i = 0; i < uri->num_query_parts; ++i) {
294
296
  if (0 == strcmp(key, uri->query_parts[i])) {
295
297
  return uri->query_parts_values[i];
296
298
  }
297
299
  }
298
- return NULL;
300
+ return nullptr;
299
301
  }
300
302
 
301
- void grpc_uri_destroy(grpc_uri *uri) {
303
+ void grpc_uri_destroy(grpc_uri* uri) {
302
304
  if (!uri) return;
303
305
  gpr_free(uri->scheme);
304
306
  gpr_free(uri->authority);