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
@@ -28,22 +28,26 @@
28
28
  /** Mask of all valid internal flags. */
29
29
  #define GRPC_WRITE_INTERNAL_USED_MASK (GRPC_WRITE_INTERNAL_COMPRESS)
30
30
 
31
+ #ifdef __cplusplus
32
+ extern "C" {
33
+ #endif
34
+
31
35
  typedef struct grpc_byte_stream grpc_byte_stream;
32
36
 
33
37
  typedef struct {
34
- bool (*next)(grpc_exec_ctx *exec_ctx, grpc_byte_stream *byte_stream,
35
- size_t max_size_hint, grpc_closure *on_complete);
36
- grpc_error *(*pull)(grpc_exec_ctx *exec_ctx, grpc_byte_stream *byte_stream,
37
- grpc_slice *slice);
38
- void (*shutdown)(grpc_exec_ctx *exec_ctx, grpc_byte_stream *byte_stream,
39
- grpc_error *error);
40
- void (*destroy)(grpc_exec_ctx *exec_ctx, grpc_byte_stream *byte_stream);
38
+ bool (*next)(grpc_exec_ctx* exec_ctx, grpc_byte_stream* byte_stream,
39
+ size_t max_size_hint, grpc_closure* on_complete);
40
+ grpc_error* (*pull)(grpc_exec_ctx* exec_ctx, grpc_byte_stream* byte_stream,
41
+ grpc_slice* slice);
42
+ void (*shutdown)(grpc_exec_ctx* exec_ctx, grpc_byte_stream* byte_stream,
43
+ grpc_error* error);
44
+ void (*destroy)(grpc_exec_ctx* exec_ctx, grpc_byte_stream* byte_stream);
41
45
  } grpc_byte_stream_vtable;
42
46
 
43
47
  struct grpc_byte_stream {
44
48
  uint32_t length;
45
49
  uint32_t flags;
46
- const grpc_byte_stream_vtable *vtable;
50
+ const grpc_byte_stream_vtable* vtable;
47
51
  };
48
52
 
49
53
  // Returns true if the bytes are available immediately (in which case
@@ -52,18 +56,18 @@ struct grpc_byte_stream {
52
56
  //
53
57
  // max_size_hint can be set as a hint as to the maximum number
54
58
  // of bytes that would be acceptable to read.
55
- bool grpc_byte_stream_next(grpc_exec_ctx *exec_ctx,
56
- grpc_byte_stream *byte_stream, size_t max_size_hint,
57
- grpc_closure *on_complete);
59
+ bool grpc_byte_stream_next(grpc_exec_ctx* exec_ctx,
60
+ grpc_byte_stream* byte_stream, size_t max_size_hint,
61
+ grpc_closure* on_complete);
58
62
 
59
63
  // Returns the next slice in the byte stream when it is ready (indicated by
60
64
  // either grpc_byte_stream_next returning true or on_complete passed to
61
65
  // grpc_byte_stream_next is called).
62
66
  //
63
67
  // Once a slice is returned into *slice, it is owned by the caller.
64
- grpc_error *grpc_byte_stream_pull(grpc_exec_ctx *exec_ctx,
65
- grpc_byte_stream *byte_stream,
66
- grpc_slice *slice);
68
+ grpc_error* grpc_byte_stream_pull(grpc_exec_ctx* exec_ctx,
69
+ grpc_byte_stream* byte_stream,
70
+ grpc_slice* slice);
67
71
 
68
72
  // Shuts down the byte stream.
69
73
  //
@@ -72,12 +76,12 @@ grpc_error *grpc_byte_stream_pull(grpc_exec_ctx *exec_ctx,
72
76
  //
73
77
  // The next call to grpc_byte_stream_pull() (if any) will return the error
74
78
  // passed to grpc_byte_stream_shutdown().
75
- void grpc_byte_stream_shutdown(grpc_exec_ctx *exec_ctx,
76
- grpc_byte_stream *byte_stream,
77
- grpc_error *error);
79
+ void grpc_byte_stream_shutdown(grpc_exec_ctx* exec_ctx,
80
+ grpc_byte_stream* byte_stream,
81
+ grpc_error* error);
78
82
 
79
- void grpc_byte_stream_destroy(grpc_exec_ctx *exec_ctx,
80
- grpc_byte_stream *byte_stream);
83
+ void grpc_byte_stream_destroy(grpc_exec_ctx* exec_ctx,
84
+ grpc_byte_stream* byte_stream);
81
85
 
82
86
  // grpc_slice_buffer_stream
83
87
  //
@@ -87,13 +91,13 @@ void grpc_byte_stream_destroy(grpc_exec_ctx *exec_ctx,
87
91
 
88
92
  typedef struct grpc_slice_buffer_stream {
89
93
  grpc_byte_stream base;
90
- grpc_slice_buffer *backing_buffer;
94
+ grpc_slice_buffer* backing_buffer;
91
95
  size_t cursor;
92
- grpc_error *shutdown_error;
96
+ grpc_error* shutdown_error;
93
97
  } grpc_slice_buffer_stream;
94
98
 
95
- void grpc_slice_buffer_stream_init(grpc_slice_buffer_stream *stream,
96
- grpc_slice_buffer *slice_buffer,
99
+ void grpc_slice_buffer_stream_init(grpc_slice_buffer_stream* stream,
100
+ grpc_slice_buffer* slice_buffer,
97
101
  uint32_t flags);
98
102
 
99
103
  // grpc_caching_byte_stream
@@ -110,29 +114,33 @@ void grpc_slice_buffer_stream_init(grpc_slice_buffer_stream *stream,
110
114
  // grpc_byte_stream_cache at the same time.
111
115
 
112
116
  typedef struct {
113
- grpc_byte_stream *underlying_stream;
117
+ grpc_byte_stream* underlying_stream;
114
118
  grpc_slice_buffer cache_buffer;
115
119
  } grpc_byte_stream_cache;
116
120
 
117
121
  // Takes ownership of underlying_stream.
118
- void grpc_byte_stream_cache_init(grpc_byte_stream_cache *cache,
119
- grpc_byte_stream *underlying_stream);
122
+ void grpc_byte_stream_cache_init(grpc_byte_stream_cache* cache,
123
+ grpc_byte_stream* underlying_stream);
120
124
 
121
125
  // Must not be called while still in use by a grpc_caching_byte_stream.
122
- void grpc_byte_stream_cache_destroy(grpc_exec_ctx *exec_ctx,
123
- grpc_byte_stream_cache *cache);
126
+ void grpc_byte_stream_cache_destroy(grpc_exec_ctx* exec_ctx,
127
+ grpc_byte_stream_cache* cache);
124
128
 
125
129
  typedef struct {
126
130
  grpc_byte_stream base;
127
- grpc_byte_stream_cache *cache;
131
+ grpc_byte_stream_cache* cache;
128
132
  size_t cursor;
129
- grpc_error *shutdown_error;
133
+ grpc_error* shutdown_error;
130
134
  } grpc_caching_byte_stream;
131
135
 
132
- void grpc_caching_byte_stream_init(grpc_caching_byte_stream *stream,
133
- grpc_byte_stream_cache *cache);
136
+ void grpc_caching_byte_stream_init(grpc_caching_byte_stream* stream,
137
+ grpc_byte_stream_cache* cache);
134
138
 
135
139
  // Resets the byte stream to the start of the underlying stream.
136
- void grpc_caching_byte_stream_reset(grpc_caching_byte_stream *stream);
140
+ void grpc_caching_byte_stream_reset(grpc_caching_byte_stream* stream);
141
+
142
+ #ifdef __cplusplus
143
+ }
144
+ #endif
137
145
 
138
146
  #endif /* GRPC_CORE_LIB_TRANSPORT_BYTE_STREAM_H */
@@ -24,13 +24,10 @@
24
24
  #include <grpc/support/log.h>
25
25
  #include <grpc/support/string_util.h>
26
26
 
27
- grpc_tracer_flag grpc_connectivity_state_trace =
28
- GRPC_TRACER_INITIALIZER(false, "connectivity_state");
27
+ grpc_core::TraceFlag grpc_connectivity_state_trace(false, "connectivity_state");
29
28
 
30
- const char *grpc_connectivity_state_name(grpc_connectivity_state state) {
29
+ const char* grpc_connectivity_state_name(grpc_connectivity_state state) {
31
30
  switch (state) {
32
- case GRPC_CHANNEL_INIT:
33
- return "INIT";
34
31
  case GRPC_CHANNEL_IDLE:
35
32
  return "IDLE";
36
33
  case GRPC_CHANNEL_CONNECTING:
@@ -45,19 +42,19 @@ const char *grpc_connectivity_state_name(grpc_connectivity_state state) {
45
42
  GPR_UNREACHABLE_CODE(return "UNKNOWN");
46
43
  }
47
44
 
48
- void grpc_connectivity_state_init(grpc_connectivity_state_tracker *tracker,
45
+ void grpc_connectivity_state_init(grpc_connectivity_state_tracker* tracker,
49
46
  grpc_connectivity_state init_state,
50
- const char *name) {
47
+ const char* name) {
51
48
  gpr_atm_no_barrier_store(&tracker->current_state_atm, init_state);
52
49
  tracker->current_error = GRPC_ERROR_NONE;
53
- tracker->watchers = NULL;
50
+ tracker->watchers = nullptr;
54
51
  tracker->name = gpr_strdup(name);
55
52
  }
56
53
 
57
- void grpc_connectivity_state_destroy(grpc_exec_ctx *exec_ctx,
58
- grpc_connectivity_state_tracker *tracker) {
59
- grpc_error *error;
60
- grpc_connectivity_state_watcher *w;
54
+ void grpc_connectivity_state_destroy(grpc_exec_ctx* exec_ctx,
55
+ grpc_connectivity_state_tracker* tracker) {
56
+ grpc_error* error;
57
+ grpc_connectivity_state_watcher* w;
61
58
  while ((w = tracker->watchers)) {
62
59
  tracker->watchers = w->next;
63
60
 
@@ -76,11 +73,11 @@ void grpc_connectivity_state_destroy(grpc_exec_ctx *exec_ctx,
76
73
  }
77
74
 
78
75
  grpc_connectivity_state grpc_connectivity_state_check(
79
- grpc_connectivity_state_tracker *tracker) {
76
+ grpc_connectivity_state_tracker* tracker) {
80
77
  grpc_connectivity_state cur =
81
78
  (grpc_connectivity_state)gpr_atm_no_barrier_load(
82
79
  &tracker->current_state_atm);
83
- if (GRPC_TRACER_ON(grpc_connectivity_state_trace)) {
80
+ if (grpc_connectivity_state_trace.enabled()) {
84
81
  gpr_log(GPR_DEBUG, "CONWATCH: %p %s: get %s", tracker, tracker->name,
85
82
  grpc_connectivity_state_name(cur));
86
83
  }
@@ -88,33 +85,33 @@ grpc_connectivity_state grpc_connectivity_state_check(
88
85
  }
89
86
 
90
87
  grpc_connectivity_state grpc_connectivity_state_get(
91
- grpc_connectivity_state_tracker *tracker, grpc_error **error) {
88
+ grpc_connectivity_state_tracker* tracker, grpc_error** error) {
92
89
  grpc_connectivity_state cur =
93
90
  (grpc_connectivity_state)gpr_atm_no_barrier_load(
94
91
  &tracker->current_state_atm);
95
- if (GRPC_TRACER_ON(grpc_connectivity_state_trace)) {
92
+ if (grpc_connectivity_state_trace.enabled()) {
96
93
  gpr_log(GPR_DEBUG, "CONWATCH: %p %s: get %s", tracker, tracker->name,
97
94
  grpc_connectivity_state_name(cur));
98
95
  }
99
- if (error != NULL) {
96
+ if (error != nullptr) {
100
97
  *error = GRPC_ERROR_REF(tracker->current_error);
101
98
  }
102
99
  return cur;
103
100
  }
104
101
 
105
102
  bool grpc_connectivity_state_has_watchers(
106
- grpc_connectivity_state_tracker *connectivity_state) {
107
- return connectivity_state->watchers != NULL;
103
+ grpc_connectivity_state_tracker* connectivity_state) {
104
+ return connectivity_state->watchers != nullptr;
108
105
  }
109
106
 
110
107
  bool grpc_connectivity_state_notify_on_state_change(
111
- grpc_exec_ctx *exec_ctx, grpc_connectivity_state_tracker *tracker,
112
- grpc_connectivity_state *current, grpc_closure *notify) {
108
+ grpc_exec_ctx* exec_ctx, grpc_connectivity_state_tracker* tracker,
109
+ grpc_connectivity_state* current, grpc_closure* notify) {
113
110
  grpc_connectivity_state cur =
114
111
  (grpc_connectivity_state)gpr_atm_no_barrier_load(
115
112
  &tracker->current_state_atm);
116
- if (GRPC_TRACER_ON(grpc_connectivity_state_trace)) {
117
- if (current == NULL) {
113
+ if (grpc_connectivity_state_trace.enabled()) {
114
+ if (current == nullptr) {
118
115
  gpr_log(GPR_DEBUG, "CONWATCH: %p %s: unsubscribe notify=%p", tracker,
119
116
  tracker->name, notify);
120
117
  } else {
@@ -123,17 +120,17 @@ bool grpc_connectivity_state_notify_on_state_change(
123
120
  grpc_connectivity_state_name(cur), notify);
124
121
  }
125
122
  }
126
- if (current == NULL) {
127
- grpc_connectivity_state_watcher *w = tracker->watchers;
128
- if (w != NULL && w->notify == notify) {
123
+ if (current == nullptr) {
124
+ grpc_connectivity_state_watcher* w = tracker->watchers;
125
+ if (w != nullptr && w->notify == notify) {
129
126
  GRPC_CLOSURE_SCHED(exec_ctx, notify, GRPC_ERROR_CANCELLED);
130
127
  tracker->watchers = w->next;
131
128
  gpr_free(w);
132
129
  return false;
133
130
  }
134
- while (w != NULL) {
135
- grpc_connectivity_state_watcher *rm_candidate = w->next;
136
- if (rm_candidate != NULL && rm_candidate->notify == notify) {
131
+ while (w != nullptr) {
132
+ grpc_connectivity_state_watcher* rm_candidate = w->next;
133
+ if (rm_candidate != nullptr && rm_candidate->notify == notify) {
137
134
  GRPC_CLOSURE_SCHED(exec_ctx, notify, GRPC_ERROR_CANCELLED);
138
135
  w->next = w->next->next;
139
136
  gpr_free(rm_candidate);
@@ -148,8 +145,8 @@ bool grpc_connectivity_state_notify_on_state_change(
148
145
  GRPC_CLOSURE_SCHED(exec_ctx, notify,
149
146
  GRPC_ERROR_REF(tracker->current_error));
150
147
  } else {
151
- grpc_connectivity_state_watcher *w =
152
- (grpc_connectivity_state_watcher *)gpr_malloc(sizeof(*w));
148
+ grpc_connectivity_state_watcher* w =
149
+ (grpc_connectivity_state_watcher*)gpr_malloc(sizeof(*w));
153
150
  w->current = current;
154
151
  w->notify = notify;
155
152
  w->next = tracker->watchers;
@@ -159,22 +156,21 @@ bool grpc_connectivity_state_notify_on_state_change(
159
156
  }
160
157
  }
161
158
 
162
- void grpc_connectivity_state_set(grpc_exec_ctx *exec_ctx,
163
- grpc_connectivity_state_tracker *tracker,
159
+ void grpc_connectivity_state_set(grpc_exec_ctx* exec_ctx,
160
+ grpc_connectivity_state_tracker* tracker,
164
161
  grpc_connectivity_state state,
165
- grpc_error *error, const char *reason) {
162
+ grpc_error* error, const char* reason) {
166
163
  grpc_connectivity_state cur =
167
164
  (grpc_connectivity_state)gpr_atm_no_barrier_load(
168
165
  &tracker->current_state_atm);
169
- grpc_connectivity_state_watcher *w;
170
- if (GRPC_TRACER_ON(grpc_connectivity_state_trace)) {
171
- const char *error_string = grpc_error_string(error);
166
+ grpc_connectivity_state_watcher* w;
167
+ if (grpc_connectivity_state_trace.enabled()) {
168
+ const char* error_string = grpc_error_string(error);
172
169
  gpr_log(GPR_DEBUG, "SET: %p %s: %s --> %s [%s] error=%p %s", tracker,
173
170
  tracker->name, grpc_connectivity_state_name(cur),
174
171
  grpc_connectivity_state_name(state), reason, error, error_string);
175
172
  }
176
173
  switch (state) {
177
- case GRPC_CHANNEL_INIT:
178
174
  case GRPC_CHANNEL_CONNECTING:
179
175
  case GRPC_CHANNEL_IDLE:
180
176
  case GRPC_CHANNEL_READY:
@@ -192,10 +188,10 @@ void grpc_connectivity_state_set(grpc_exec_ctx *exec_ctx,
192
188
  }
193
189
  GPR_ASSERT(cur != GRPC_CHANNEL_SHUTDOWN);
194
190
  gpr_atm_no_barrier_store(&tracker->current_state_atm, state);
195
- while ((w = tracker->watchers) != NULL) {
191
+ while ((w = tracker->watchers) != nullptr) {
196
192
  *w->current = state;
197
193
  tracker->watchers = w->next;
198
- if (GRPC_TRACER_ON(grpc_connectivity_state_trace)) {
194
+ if (grpc_connectivity_state_trace.enabled()) {
199
195
  gpr_log(GPR_DEBUG, "NOTIFY: %p %s: %p", tracker, tracker->name,
200
196
  w->notify);
201
197
  }
@@ -23,65 +23,73 @@
23
23
  #include "src/core/lib/debug/trace.h"
24
24
  #include "src/core/lib/iomgr/exec_ctx.h"
25
25
 
26
+ #ifdef __cplusplus
27
+ extern "C" {
28
+ #endif
29
+
26
30
  typedef struct grpc_connectivity_state_watcher {
27
31
  /** we keep watchers in a linked list */
28
- struct grpc_connectivity_state_watcher *next;
32
+ struct grpc_connectivity_state_watcher* next;
29
33
  /** closure to notify on change */
30
- grpc_closure *notify;
34
+ grpc_closure* notify;
31
35
  /** the current state as believed by the watcher */
32
- grpc_connectivity_state *current;
36
+ grpc_connectivity_state* current;
33
37
  } grpc_connectivity_state_watcher;
34
38
 
35
39
  typedef struct {
36
40
  /** current grpc_connectivity_state */
37
41
  gpr_atm current_state_atm;
38
42
  /** error associated with state */
39
- grpc_error *current_error;
43
+ grpc_error* current_error;
40
44
  /** all our watchers */
41
- grpc_connectivity_state_watcher *watchers;
45
+ grpc_connectivity_state_watcher* watchers;
42
46
  /** a name to help debugging */
43
- char *name;
47
+ char* name;
44
48
  } grpc_connectivity_state_tracker;
45
49
 
46
- extern grpc_tracer_flag grpc_connectivity_state_trace;
50
+ extern grpc_core::TraceFlag grpc_connectivity_state_trace;
47
51
 
48
52
  /** enum --> string conversion */
49
- const char *grpc_connectivity_state_name(grpc_connectivity_state state);
53
+ const char* grpc_connectivity_state_name(grpc_connectivity_state state);
50
54
 
51
- void grpc_connectivity_state_init(grpc_connectivity_state_tracker *tracker,
55
+ void grpc_connectivity_state_init(grpc_connectivity_state_tracker* tracker,
52
56
  grpc_connectivity_state init_state,
53
- const char *name);
54
- void grpc_connectivity_state_destroy(grpc_exec_ctx *exec_ctx,
55
- grpc_connectivity_state_tracker *tracker);
57
+ const char* name);
58
+ void grpc_connectivity_state_destroy(grpc_exec_ctx* exec_ctx,
59
+ grpc_connectivity_state_tracker* tracker);
56
60
 
57
61
  /** Set connectivity state; not thread safe; access must be serialized with an
58
62
  * external lock */
59
- void grpc_connectivity_state_set(grpc_exec_ctx *exec_ctx,
60
- grpc_connectivity_state_tracker *tracker,
63
+ void grpc_connectivity_state_set(grpc_exec_ctx* exec_ctx,
64
+ grpc_connectivity_state_tracker* tracker,
61
65
  grpc_connectivity_state state,
62
- grpc_error *associated_error,
63
- const char *reason);
66
+ grpc_error* associated_error,
67
+ const char* reason);
64
68
 
65
69
  /** Return true if this connectivity state has watchers.
66
70
  Access must be serialized with an external lock. */
67
71
  bool grpc_connectivity_state_has_watchers(
68
- grpc_connectivity_state_tracker *tracker);
72
+ grpc_connectivity_state_tracker* tracker);
69
73
 
70
74
  /** Return the last seen connectivity state. No need to synchronize access. */
71
75
  grpc_connectivity_state grpc_connectivity_state_check(
72
- grpc_connectivity_state_tracker *tracker);
76
+ grpc_connectivity_state_tracker* tracker);
73
77
 
74
78
  /** Return the last seen connectivity state, and the associated error.
75
79
  Access must be serialized with an external lock. */
76
80
  grpc_connectivity_state grpc_connectivity_state_get(
77
- grpc_connectivity_state_tracker *tracker, grpc_error **error);
81
+ grpc_connectivity_state_tracker* tracker, grpc_error** error);
78
82
 
79
83
  /** Return 1 if the channel should start connecting, 0 otherwise.
80
84
  If current==NULL cancel notify if it is already queued (success==0 in that
81
85
  case).
82
86
  Access must be serialized with an external lock. */
83
87
  bool grpc_connectivity_state_notify_on_state_change(
84
- grpc_exec_ctx *exec_ctx, grpc_connectivity_state_tracker *tracker,
85
- grpc_connectivity_state *current, grpc_closure *notify);
88
+ grpc_exec_ctx* exec_ctx, grpc_connectivity_state_tracker* tracker,
89
+ grpc_connectivity_state* current, grpc_closure* notify);
90
+
91
+ #ifdef __cplusplus
92
+ }
93
+ #endif
86
94
 
87
95
  #endif /* GRPC_CORE_LIB_TRANSPORT_CONNECTIVITY_STATE_H */
@@ -18,35 +18,37 @@
18
18
 
19
19
  #include "src/core/lib/transport/error_utils.h"
20
20
 
21
+ #include <grpc/support/string_util.h>
21
22
  #include "src/core/lib/iomgr/error_internal.h"
22
23
  #include "src/core/lib/transport/status_conversion.h"
23
24
 
24
- static grpc_error *recursively_find_error_with_field(grpc_error *error,
25
+ static grpc_error* recursively_find_error_with_field(grpc_error* error,
25
26
  grpc_error_ints which) {
26
27
  // If the error itself has a status code, return it.
27
- if (grpc_error_get_int(error, which, NULL)) {
28
+ if (grpc_error_get_int(error, which, nullptr)) {
28
29
  return error;
29
30
  }
30
- if (grpc_error_is_special(error)) return NULL;
31
+ if (grpc_error_is_special(error)) return nullptr;
31
32
  // Otherwise, search through its children.
32
33
  uint8_t slot = error->first_err;
33
34
  while (slot != UINT8_MAX) {
34
- grpc_linked_error *lerr = (grpc_linked_error *)(error->arena + slot);
35
- grpc_error *result = recursively_find_error_with_field(lerr->err, which);
35
+ grpc_linked_error* lerr = (grpc_linked_error*)(error->arena + slot);
36
+ grpc_error* result = recursively_find_error_with_field(lerr->err, which);
36
37
  if (result) return result;
37
38
  slot = lerr->next;
38
39
  }
39
- return NULL;
40
+ return nullptr;
40
41
  }
41
42
 
42
- void grpc_error_get_status(grpc_error *error, gpr_timespec deadline,
43
- grpc_status_code *code, grpc_slice *slice,
44
- grpc_http2_error_code *http_error) {
43
+ void grpc_error_get_status(grpc_exec_ctx* exec_ctx, grpc_error* error,
44
+ grpc_millis deadline, grpc_status_code* code,
45
+ grpc_slice* slice, grpc_http2_error_code* http_error,
46
+ const char** error_string) {
45
47
  // Start with the parent error and recurse through the tree of children
46
48
  // until we find the first one that has a status code.
47
- grpc_error *found_error =
49
+ grpc_error* found_error =
48
50
  recursively_find_error_with_field(error, GRPC_ERROR_INT_GRPC_STATUS);
49
- if (found_error == NULL) {
51
+ if (found_error == nullptr) {
50
52
  /// If no grpc-status exists, retry through the tree to find a http2 error
51
53
  /// code
52
54
  found_error =
@@ -55,7 +57,7 @@ void grpc_error_get_status(grpc_error *error, gpr_timespec deadline,
55
57
 
56
58
  // If we found an error with a status code above, use that; otherwise,
57
59
  // fall back to using the parent error.
58
- if (found_error == NULL) found_error = error;
60
+ if (found_error == nullptr) found_error = error;
59
61
 
60
62
  grpc_status_code status = GRPC_STATUS_UNKNOWN;
61
63
  intptr_t integer;
@@ -63,12 +65,16 @@ void grpc_error_get_status(grpc_error *error, gpr_timespec deadline,
63
65
  status = (grpc_status_code)integer;
64
66
  } else if (grpc_error_get_int(found_error, GRPC_ERROR_INT_HTTP2_ERROR,
65
67
  &integer)) {
66
- status = grpc_http2_error_to_grpc_status((grpc_http2_error_code)integer,
67
- deadline);
68
+ status = grpc_http2_error_to_grpc_status(
69
+ exec_ctx, (grpc_http2_error_code)integer, deadline);
68
70
  }
69
- if (code != NULL) *code = status;
71
+ if (code != nullptr) *code = status;
70
72
 
71
- if (http_error != NULL) {
73
+ if (error_string != NULL && status != GRPC_STATUS_OK) {
74
+ *error_string = gpr_strdup(grpc_error_string(error));
75
+ }
76
+
77
+ if (http_error != nullptr) {
72
78
  if (grpc_error_get_int(found_error, GRPC_ERROR_INT_HTTP2_ERROR, &integer)) {
73
79
  *http_error = (grpc_http2_error_code)integer;
74
80
  } else if (grpc_error_get_int(found_error, GRPC_ERROR_INT_GRPC_STATUS,
@@ -82,24 +88,22 @@ void grpc_error_get_status(grpc_error *error, gpr_timespec deadline,
82
88
 
83
89
  // If the error has a status message, use it. Otherwise, fall back to
84
90
  // the error description.
85
- if (slice != NULL) {
91
+ if (slice != nullptr) {
86
92
  if (!grpc_error_get_str(found_error, GRPC_ERROR_STR_GRPC_MESSAGE, slice)) {
87
93
  if (!grpc_error_get_str(found_error, GRPC_ERROR_STR_DESCRIPTION, slice)) {
88
94
  *slice = grpc_slice_from_static_string("unknown error");
89
95
  }
90
96
  }
91
97
  }
92
-
93
- if (found_error == NULL) found_error = error;
94
98
  }
95
99
 
96
- bool grpc_error_has_clear_grpc_status(grpc_error *error) {
97
- if (grpc_error_get_int(error, GRPC_ERROR_INT_GRPC_STATUS, NULL)) {
100
+ bool grpc_error_has_clear_grpc_status(grpc_error* error) {
101
+ if (grpc_error_get_int(error, GRPC_ERROR_INT_GRPC_STATUS, nullptr)) {
98
102
  return true;
99
103
  }
100
104
  uint8_t slot = error->first_err;
101
105
  while (slot != UINT8_MAX) {
102
- grpc_linked_error *lerr = (grpc_linked_error *)(error->arena + slot);
106
+ grpc_linked_error* lerr = (grpc_linked_error*)(error->arena + slot);
103
107
  if (grpc_error_has_clear_grpc_status(lerr->err)) {
104
108
  return true;
105
109
  }