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
@@ -22,6 +22,7 @@
22
22
  #include <assert.h>
23
23
  #include <stdbool.h>
24
24
 
25
+ #include "src/core/ext/transport/chttp2/transport/flow_control.h"
25
26
  #include "src/core/ext/transport/chttp2/transport/frame.h"
26
27
  #include "src/core/ext/transport/chttp2/transport/frame_data.h"
27
28
  #include "src/core/ext/transport/chttp2/transport/frame_goaway.h"
@@ -37,11 +38,14 @@
37
38
  #include "src/core/lib/iomgr/combiner.h"
38
39
  #include "src/core/lib/iomgr/endpoint.h"
39
40
  #include "src/core/lib/iomgr/timer.h"
40
- #include "src/core/lib/transport/bdp_estimator.h"
41
+ #include "src/core/lib/support/manual_constructor.h"
41
42
  #include "src/core/lib/transport/connectivity_state.h"
42
- #include "src/core/lib/transport/pid_controller.h"
43
43
  #include "src/core/lib/transport/transport_impl.h"
44
44
 
45
+ #ifdef __cplusplus
46
+ extern "C" {
47
+ #endif
48
+
45
49
  /* streams are kept in various linked lists depending on what things need to
46
50
  happen to them... this enum labels each list */
47
51
  typedef enum {
@@ -61,12 +65,6 @@ typedef enum {
61
65
  GRPC_CHTTP2_WRITE_STATE_WRITING_WITH_MORE,
62
66
  } grpc_chttp2_write_state;
63
67
 
64
- typedef enum {
65
- GRPC_CHTTP2_PING_ON_NEXT_WRITE = 0,
66
- GRPC_CHTTP2_PING_BEFORE_TRANSPORT_WINDOW_UPDATE,
67
- GRPC_CHTTP2_PING_TYPE_COUNT /* must be last */
68
- } grpc_chttp2_ping_type;
69
-
70
68
  typedef enum {
71
69
  GRPC_CHTTP2_OPTIMIZE_FOR_LATENCY,
72
70
  GRPC_CHTTP2_OPTIMIZE_FOR_THROUGHPUT,
@@ -93,7 +91,6 @@ typedef enum {
93
91
  GRPC_CHTTP2_INITIATE_WRITE_STREAM_FLOW_CONTROL,
94
92
  GRPC_CHTTP2_INITIATE_WRITE_TRANSPORT_FLOW_CONTROL,
95
93
  GRPC_CHTTP2_INITIATE_WRITE_SEND_SETTINGS,
96
- GRPC_CHTTP2_INITIATE_WRITE_BDP_ESTIMATOR_PING,
97
94
  GRPC_CHTTP2_INITIATE_WRITE_FLOW_CONTROL_UNSTALLED_BY_SETTING,
98
95
  GRPC_CHTTP2_INITIATE_WRITE_FLOW_CONTROL_UNSTALLED_BY_UPDATE,
99
96
  GRPC_CHTTP2_INITIATE_WRITE_APPLICATION_PING,
@@ -103,7 +100,7 @@ typedef enum {
103
100
  GRPC_CHTTP2_INITIATE_WRITE_FORCE_RST_STREAM,
104
101
  } grpc_chttp2_initiate_write_reason;
105
102
 
106
- const char *grpc_chttp2_initiate_write_reason_string(
103
+ const char* grpc_chttp2_initiate_write_reason_string(
107
104
  grpc_chttp2_initiate_write_reason reason);
108
105
 
109
106
  typedef struct {
@@ -114,19 +111,19 @@ typedef struct {
114
111
  typedef struct {
115
112
  int max_pings_without_data;
116
113
  int max_ping_strikes;
117
- gpr_timespec min_sent_ping_interval_without_data;
118
- gpr_timespec min_recv_ping_interval_without_data;
114
+ grpc_millis min_sent_ping_interval_without_data;
115
+ grpc_millis min_recv_ping_interval_without_data;
119
116
  } grpc_chttp2_repeated_ping_policy;
120
117
 
121
118
  typedef struct {
122
- gpr_timespec last_ping_sent_time;
119
+ grpc_millis last_ping_sent_time;
123
120
  int pings_before_data_required;
124
121
  grpc_timer delayed_ping_timer;
125
122
  bool is_delayed_ping_timer_set;
126
123
  } grpc_chttp2_repeated_ping_state;
127
124
 
128
125
  typedef struct {
129
- gpr_timespec last_ping_recv_time;
126
+ grpc_millis last_ping_recv_time;
130
127
  int ping_strikes;
131
128
  } grpc_chttp2_server_ping_recv_state;
132
129
 
@@ -174,13 +171,13 @@ typedef enum {
174
171
  } grpc_chttp2_deframe_transport_state;
175
172
 
176
173
  typedef struct {
177
- grpc_chttp2_stream *head;
178
- grpc_chttp2_stream *tail;
174
+ grpc_chttp2_stream* head;
175
+ grpc_chttp2_stream* tail;
179
176
  } grpc_chttp2_stream_list;
180
177
 
181
178
  typedef struct {
182
- grpc_chttp2_stream *next;
183
- grpc_chttp2_stream *prev;
179
+ grpc_chttp2_stream* next;
180
+ grpc_chttp2_stream* prev;
184
181
  } grpc_chttp2_stream_link;
185
182
 
186
183
  /* We keep several sets of connection wide parameters */
@@ -204,8 +201,8 @@ typedef enum {
204
201
 
205
202
  typedef struct grpc_chttp2_write_cb {
206
203
  int64_t call_at_byte;
207
- grpc_closure *closure;
208
- struct grpc_chttp2_write_cb *next;
204
+ grpc_closure* closure;
205
+ struct grpc_chttp2_write_cb* next;
209
206
  } grpc_chttp2_write_cb;
210
207
 
211
208
  /* forward declared in frame_data.h */
@@ -213,8 +210,8 @@ struct grpc_chttp2_incoming_byte_stream {
213
210
  grpc_byte_stream base;
214
211
  gpr_refcount refs;
215
212
 
216
- grpc_chttp2_transport *transport; /* immutable */
217
- grpc_chttp2_stream *stream; /* immutable */
213
+ grpc_chttp2_transport* transport; /* immutable */
214
+ grpc_chttp2_stream* stream; /* immutable */
218
215
 
219
216
  /* Accessed only by transport thread when stream->pending_byte_stream == false
220
217
  * Accessed only by application thread when stream->pending_byte_stream ==
@@ -227,7 +224,7 @@ struct grpc_chttp2_incoming_byte_stream {
227
224
  struct {
228
225
  grpc_closure closure;
229
226
  size_t max_size_hint;
230
- grpc_closure *on_complete;
227
+ grpc_closure* on_complete;
231
228
  } next_action;
232
229
  grpc_closure destroy_action;
233
230
  grpc_closure finished_action;
@@ -240,54 +237,15 @@ typedef enum {
240
237
  GRPC_CHTTP2_KEEPALIVE_STATE_DISABLED,
241
238
  } grpc_chttp2_keepalive_state;
242
239
 
243
- typedef struct {
244
- /** initial window change. This is tracked as we parse settings frames from
245
- * the remote peer. If there is a positive delta, then we will make all
246
- * streams readable since they may have become unstalled */
247
- int64_t initial_window_update;
248
-
249
- /** Our bookkeeping for the remote peer's available window */
250
- int64_t remote_window;
251
-
252
- /** calculating what we should give for local window:
253
- we track the total amount of flow control over initial window size
254
- across all streams: this is data that we want to receive right now (it
255
- has an outstanding read)
256
- and the total amount of flow control under initial window size across all
257
- streams: this is data we've read early
258
- we want to adjust incoming_window such that:
259
- incoming_window = total_over - max(bdp - total_under, 0) */
260
- int64_t announced_stream_total_over_incoming_window;
261
- int64_t announced_stream_total_under_incoming_window;
262
-
263
- /** This is out window according to what we have sent to our remote peer. The
264
- * difference between this and target window is what we use to decide when
265
- * to send WINDOW_UPDATE frames. */
266
- int64_t announced_window;
267
-
268
- /** should we probe bdp? */
269
- bool enable_bdp_probe;
270
-
271
- /* bdp estimation */
272
- grpc_bdp_estimator bdp_estimator;
273
-
274
- /* pid controller */
275
- grpc_pid_controller pid_controller;
276
- gpr_timespec last_pid_update;
277
-
278
- // pointer back to transport for tracing
279
- const grpc_chttp2_transport *t;
280
- } grpc_chttp2_transport_flowctl;
281
-
282
240
  struct grpc_chttp2_transport {
283
241
  grpc_transport base; /* must be first */
284
242
  gpr_refcount refs;
285
- grpc_endpoint *ep;
286
- char *peer_string;
243
+ grpc_endpoint* ep;
244
+ char* peer_string;
287
245
 
288
- grpc_combiner *combiner;
246
+ grpc_combiner* combiner;
289
247
 
290
- grpc_closure *notify_on_receive_settings;
248
+ grpc_closure* notify_on_receive_settings;
291
249
 
292
250
  /** write execution state of the transport */
293
251
  grpc_chttp2_write_state write_state;
@@ -299,7 +257,7 @@ struct grpc_chttp2_transport {
299
257
  /** is the transport destroying itself? */
300
258
  uint8_t destroying;
301
259
  /** has the upper layer closed the transport? */
302
- uint8_t closed;
260
+ grpc_error* closed_with_error;
303
261
 
304
262
  /** is there a read request to the endpoint outstanding? */
305
263
  uint8_t endpoint_reading;
@@ -324,13 +282,13 @@ struct grpc_chttp2_transport {
324
282
  /** address to place a newly accepted stream - set and unset by
325
283
  grpc_chttp2_parsing_accept_stream; used by init_stream to
326
284
  publish the accepted server stream */
327
- grpc_chttp2_stream **accepting_stream;
285
+ grpc_chttp2_stream** accepting_stream;
328
286
 
329
287
  struct {
330
288
  /* accept stream callback */
331
- void (*accept_stream)(grpc_exec_ctx *exec_ctx, void *user_data,
332
- grpc_transport *transport, const void *server_data);
333
- void *accept_stream_user_data;
289
+ void (*accept_stream)(grpc_exec_ctx* exec_ctx, void* user_data,
290
+ grpc_transport* transport, const void* server_data);
291
+ void* accept_stream_user_data;
334
292
 
335
293
  /** connectivity tracking */
336
294
  grpc_connectivity_state_tracker state_tracker;
@@ -341,7 +299,7 @@ struct grpc_chttp2_transport {
341
299
  /** hpack encoding */
342
300
  grpc_chttp2_hpack_compressor hpack_compressor;
343
301
  /** is this a client? */
344
- uint8_t is_client;
302
+ bool is_client;
345
303
 
346
304
  /** data to write next write */
347
305
  grpc_slice_buffer qbuf;
@@ -350,15 +308,16 @@ struct grpc_chttp2_transport {
350
308
  */
351
309
  uint32_t write_buffer_size;
352
310
 
353
- /** have we seen a goaway */
354
- uint8_t seen_goaway;
355
- /** have we sent a goaway */
311
+ /** Set to a grpc_error object if a goaway frame is received. By default, set
312
+ * to GRPC_ERROR_NONE */
313
+ grpc_error* goaway_error;
314
+
356
315
  grpc_chttp2_sent_goaway_state sent_goaway_state;
357
316
 
358
317
  /** are the local settings dirty and need to be sent? */
359
- uint8_t dirtied_local_settings;
318
+ bool dirtied_local_settings;
360
319
  /** have local settings been sent? */
361
- uint8_t sent_local_settings;
320
+ bool sent_local_settings;
362
321
  /** bitmask of setting indexes to send out */
363
322
  uint32_t force_send_settings;
364
323
  /** settings values */
@@ -372,7 +331,7 @@ struct grpc_chttp2_transport {
372
331
  uint32_t last_new_stream_id;
373
332
 
374
333
  /** ping queues for various ping insertion points */
375
- grpc_chttp2_ping_queue ping_queues[GRPC_CHTTP2_PING_TYPE_COUNT];
334
+ grpc_chttp2_ping_queue ping_queue;
376
335
  grpc_chttp2_repeated_ping_policy ping_policy;
377
336
  grpc_chttp2_repeated_ping_state ping_state;
378
337
  uint64_t ping_ctr; /* unique id for pings */
@@ -381,7 +340,7 @@ struct grpc_chttp2_transport {
381
340
  /** ping acks */
382
341
  size_t ping_ack_count;
383
342
  size_t ping_ack_capacity;
384
- uint64_t *ping_acks;
343
+ uint64_t* ping_acks;
385
344
  grpc_chttp2_server_ping_recv_state ping_recv_state;
386
345
 
387
346
  /** parser for headers */
@@ -396,7 +355,12 @@ struct grpc_chttp2_transport {
396
355
  /** parser for goaway frames */
397
356
  grpc_chttp2_goaway_parser goaway_parser;
398
357
 
399
- grpc_chttp2_transport_flowctl flow_control;
358
+ grpc_core::ManualConstructor<grpc_core::chttp2::TransportFlowControl>
359
+ flow_control;
360
+ /** initial window change. This is tracked as we parse settings frames from
361
+ * the remote peer. If there is a positive delta, then we will make all
362
+ * streams readable since they may have become unstalled */
363
+ int64_t initial_window_update = 0;
400
364
 
401
365
  /* deframing */
402
366
  grpc_chttp2_deframe_transport_state deframe_state;
@@ -409,26 +373,22 @@ struct grpc_chttp2_transport {
409
373
  uint32_t incoming_stream_id;
410
374
 
411
375
  /* active parser */
412
- void *parser_data;
413
- grpc_chttp2_stream *incoming_stream;
414
- grpc_error *(*parser)(grpc_exec_ctx *exec_ctx, void *parser_user_data,
415
- grpc_chttp2_transport *t, grpc_chttp2_stream *s,
376
+ void* parser_data;
377
+ grpc_chttp2_stream* incoming_stream;
378
+ grpc_error* (*parser)(grpc_exec_ctx* exec_ctx, void* parser_user_data,
379
+ grpc_chttp2_transport* t, grpc_chttp2_stream* s,
416
380
  grpc_slice slice, int is_last);
417
381
 
418
- /* goaway data */
419
- grpc_status_code goaway_error;
420
- uint32_t goaway_last_stream_index;
421
- grpc_slice goaway_text;
422
-
423
- grpc_chttp2_write_cb *write_cb_pool;
382
+ grpc_chttp2_write_cb* write_cb_pool;
424
383
 
425
384
  /* bdp estimator */
385
+ grpc_closure next_bdp_ping_timer_expired_locked;
426
386
  grpc_closure start_bdp_ping_locked;
427
387
  grpc_closure finish_bdp_ping_locked;
428
388
 
429
389
  /* if non-NULL, close the transport with this error when writes are finished
430
390
  */
431
- grpc_error *close_transport_on_writes_finished;
391
+ grpc_error* close_transport_on_writes_finished;
432
392
 
433
393
  /* a list of closures to run after writes are finished */
434
394
  grpc_closure_list run_after_write;
@@ -443,6 +403,10 @@ struct grpc_chttp2_transport {
443
403
  /** destructive cleanup closure */
444
404
  grpc_closure destructive_reclaimer_locked;
445
405
 
406
+ /* next bdp ping timer */
407
+ bool have_next_bdp_ping_timer;
408
+ grpc_timer next_bdp_ping_timer;
409
+
446
410
  /* keep-alive ping support */
447
411
  /** Closure to initialize a keepalive ping */
448
412
  grpc_closure init_keepalive_ping_locked;
@@ -457,9 +421,9 @@ struct grpc_chttp2_transport {
457
421
  /** watchdog to kill the transport when waiting for the keepalive ping */
458
422
  grpc_timer keepalive_watchdog_timer;
459
423
  /** time duration in between pings */
460
- gpr_timespec keepalive_time;
424
+ grpc_millis keepalive_time;
461
425
  /** grace period for a ping to complete before watchdog kicks in */
462
- gpr_timespec keepalive_timeout;
426
+ grpc_millis keepalive_timeout;
463
427
  /** if keepalive pings are allowed when there's no outstanding streams */
464
428
  bool keepalive_permit_without_calls;
465
429
  /** keep-alive state machine state */
@@ -473,31 +437,12 @@ typedef enum {
473
437
  GPRC_METADATA_PUBLISHED_AT_CLOSE
474
438
  } grpc_published_metadata_method;
475
439
 
476
- typedef struct {
477
- /** window available for us to send to peer, over or under the initial window
478
- * size of the transport... ie:
479
- * remote_window = remote_window_delta + transport.initial_window_size */
480
- int64_t remote_window_delta;
481
-
482
- /** window available for peer to send to us (as a delta on
483
- * transport.initial_window_size)
484
- * local_window = local_window_delta + transport.initial_window_size */
485
- int64_t local_window_delta;
486
-
487
- /** window available for peer to send to us over this stream that we have
488
- * announced to the peer */
489
- int64_t announced_window_delta;
490
-
491
- // read only pointer back to stream for data
492
- const grpc_chttp2_stream *s;
493
- } grpc_chttp2_stream_flowctl;
494
-
495
440
  struct grpc_chttp2_stream {
496
- grpc_chttp2_transport *t;
497
- grpc_stream_refcount *refcount;
441
+ grpc_chttp2_transport* t;
442
+ grpc_stream_refcount* refcount;
498
443
 
499
444
  grpc_closure destroy_stream;
500
- grpc_closure *destroy_stream_arg;
445
+ grpc_closure* destroy_stream_arg;
501
446
 
502
447
  grpc_chttp2_stream_link links[STREAM_LIST_COUNT];
503
448
  uint8_t included[STREAM_LIST_COUNT];
@@ -506,29 +451,29 @@ struct grpc_chttp2_stream {
506
451
  uint32_t id;
507
452
 
508
453
  /** things the upper layers would like to send */
509
- grpc_metadata_batch *send_initial_metadata;
510
- grpc_closure *send_initial_metadata_finished;
511
- grpc_metadata_batch *send_trailing_metadata;
512
- grpc_closure *send_trailing_metadata_finished;
454
+ grpc_metadata_batch* send_initial_metadata;
455
+ grpc_closure* send_initial_metadata_finished;
456
+ grpc_metadata_batch* send_trailing_metadata;
457
+ grpc_closure* send_trailing_metadata_finished;
513
458
 
514
- grpc_byte_stream *fetching_send_message;
459
+ grpc_byte_stream* fetching_send_message;
515
460
  uint32_t fetched_send_message_length;
516
461
  grpc_slice fetching_slice;
517
462
  int64_t next_message_end_offset;
518
463
  int64_t flow_controlled_bytes_written;
519
464
  int64_t flow_controlled_bytes_flowed;
520
465
  grpc_closure complete_fetch_locked;
521
- grpc_closure *fetching_send_message_finished;
466
+ grpc_closure* fetching_send_message_finished;
522
467
 
523
- grpc_metadata_batch *recv_initial_metadata;
524
- grpc_closure *recv_initial_metadata_ready;
525
- bool *trailing_metadata_available;
526
- grpc_byte_stream **recv_message;
527
- grpc_closure *recv_message_ready;
528
- grpc_metadata_batch *recv_trailing_metadata;
529
- grpc_closure *recv_trailing_metadata_finished;
468
+ grpc_metadata_batch* recv_initial_metadata;
469
+ grpc_closure* recv_initial_metadata_ready;
470
+ bool* trailing_metadata_available;
471
+ grpc_byte_stream** recv_message;
472
+ grpc_closure* recv_message_ready;
473
+ grpc_metadata_batch* recv_trailing_metadata;
474
+ grpc_closure* recv_trailing_metadata_finished;
530
475
 
531
- grpc_transport_stream_stats *collecting_stats;
476
+ grpc_transport_stream_stats* collecting_stats;
532
477
  grpc_transport_stream_stats stats;
533
478
 
534
479
  /** Is this stream closed for writing. */
@@ -547,9 +492,9 @@ struct grpc_chttp2_stream {
547
492
  bool received_trailing_metadata;
548
493
 
549
494
  /** the error that resulted in this stream being read-closed */
550
- grpc_error *read_closed_error;
495
+ grpc_error* read_closed_error;
551
496
  /** the error that resulted in this stream being write-closed */
552
- grpc_error *write_closed_error;
497
+ grpc_error* write_closed_error;
553
498
 
554
499
  grpc_published_metadata_method published_metadata[2];
555
500
  bool final_metadata_requested;
@@ -562,16 +507,16 @@ struct grpc_chttp2_stream {
562
507
  * Accessed only by application thread when stream->pending_byte_stream ==
563
508
  * true */
564
509
  grpc_slice_buffer unprocessed_incoming_frames_buffer;
565
- grpc_closure *on_next; /* protected by t combiner */
510
+ grpc_closure* on_next; /* protected by t combiner */
566
511
  bool pending_byte_stream; /* protected by t combiner */
567
512
  grpc_closure reset_byte_stream;
568
- grpc_error *byte_stream_error; /* protected by t combiner */
513
+ grpc_error* byte_stream_error; /* protected by t combiner */
569
514
  bool received_last_frame; /* protected by t combiner */
570
515
 
571
- gpr_timespec deadline;
516
+ grpc_millis deadline;
572
517
 
573
518
  /** saw some stream level error */
574
- grpc_error *forced_close_error;
519
+ grpc_error* forced_close_error;
575
520
  /** how many header frames have we received? */
576
521
  uint8_t header_frames_received;
577
522
  /** parsing state for data frames */
@@ -585,13 +530,14 @@ struct grpc_chttp2_stream {
585
530
  bool sent_initial_metadata;
586
531
  bool sent_trailing_metadata;
587
532
 
588
- grpc_chttp2_stream_flowctl flow_control;
533
+ grpc_core::ManualConstructor<grpc_core::chttp2::StreamFlowControl>
534
+ flow_control;
589
535
 
590
536
  grpc_slice_buffer flow_controlled_buffer;
591
537
 
592
- grpc_chttp2_write_cb *on_flow_controlled_cbs;
593
- grpc_chttp2_write_cb *on_write_finished_cbs;
594
- grpc_chttp2_write_cb *finish_after_write;
538
+ grpc_chttp2_write_cb* on_flow_controlled_cbs;
539
+ grpc_chttp2_write_cb* on_write_finished_cbs;
540
+ grpc_chttp2_write_cb* finish_after_write;
595
541
  size_t sending_bytes;
596
542
 
597
543
  /* Stream compression method to be used. */
@@ -599,9 +545,9 @@ struct grpc_chttp2_stream {
599
545
  /* Stream decompression method to be used. */
600
546
  grpc_stream_compression_method stream_decompression_method;
601
547
  /** Stream compression decompress context */
602
- grpc_stream_compression_context *stream_decompression_ctx;
548
+ grpc_stream_compression_context* stream_decompression_ctx;
603
549
  /** Stream compression compress context */
604
- grpc_stream_compression_context *stream_compression_ctx;
550
+ grpc_stream_compression_context* stream_compression_ctx;
605
551
 
606
552
  /** Buffer storing data that is compressed but not sent */
607
553
  grpc_slice_buffer compressed_data_buffer;
@@ -629,8 +575,8 @@ struct grpc_chttp2_stream {
629
575
 
630
576
  The actual call chain is documented in the implementation of this function.
631
577
  */
632
- void grpc_chttp2_initiate_write(grpc_exec_ctx *exec_ctx,
633
- grpc_chttp2_transport *t,
578
+ void grpc_chttp2_initiate_write(grpc_exec_ctx* exec_ctx,
579
+ grpc_chttp2_transport* t,
634
580
  grpc_chttp2_initiate_write_reason reason);
635
581
 
636
582
  typedef struct {
@@ -643,151 +589,85 @@ typedef struct {
643
589
  } grpc_chttp2_begin_write_result;
644
590
 
645
591
  grpc_chttp2_begin_write_result grpc_chttp2_begin_write(
646
- grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t);
647
- void grpc_chttp2_end_write(grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t,
648
- grpc_error *error);
592
+ grpc_exec_ctx* exec_ctx, grpc_chttp2_transport* t);
593
+ void grpc_chttp2_end_write(grpc_exec_ctx* exec_ctx, grpc_chttp2_transport* t,
594
+ grpc_error* error);
649
595
 
650
596
  /** Process one slice of incoming data; return 1 if the connection is still
651
597
  viable after reading, or 0 if the connection should be torn down */
652
- grpc_error *grpc_chttp2_perform_read(grpc_exec_ctx *exec_ctx,
653
- grpc_chttp2_transport *t,
598
+ grpc_error* grpc_chttp2_perform_read(grpc_exec_ctx* exec_ctx,
599
+ grpc_chttp2_transport* t,
654
600
  grpc_slice slice);
655
601
 
656
- bool grpc_chttp2_list_add_writable_stream(grpc_chttp2_transport *t,
657
- grpc_chttp2_stream *s);
602
+ bool grpc_chttp2_list_add_writable_stream(grpc_chttp2_transport* t,
603
+ grpc_chttp2_stream* s);
658
604
  /** Get a writable stream
659
605
  returns non-zero if there was a stream available */
660
- bool grpc_chttp2_list_pop_writable_stream(grpc_chttp2_transport *t,
661
- grpc_chttp2_stream **s);
662
- bool grpc_chttp2_list_remove_writable_stream(
663
- grpc_chttp2_transport *t, grpc_chttp2_stream *s) GRPC_MUST_USE_RESULT;
664
-
665
- bool grpc_chttp2_list_add_writing_stream(grpc_chttp2_transport *t,
666
- grpc_chttp2_stream *s);
667
- bool grpc_chttp2_list_have_writing_streams(grpc_chttp2_transport *t);
668
- bool grpc_chttp2_list_pop_writing_stream(grpc_chttp2_transport *t,
669
- grpc_chttp2_stream **s);
670
-
671
- void grpc_chttp2_list_add_written_stream(grpc_chttp2_transport *t,
672
- grpc_chttp2_stream *s);
673
- bool grpc_chttp2_list_pop_written_stream(grpc_chttp2_transport *t,
674
- grpc_chttp2_stream **s);
675
-
676
- void grpc_chttp2_list_add_waiting_for_concurrency(grpc_chttp2_transport *t,
677
- grpc_chttp2_stream *s);
678
- bool grpc_chttp2_list_pop_waiting_for_concurrency(grpc_chttp2_transport *t,
679
- grpc_chttp2_stream **s);
680
- void grpc_chttp2_list_remove_waiting_for_concurrency(grpc_chttp2_transport *t,
681
- grpc_chttp2_stream *s);
682
-
683
- void grpc_chttp2_list_add_stalled_by_transport(grpc_chttp2_transport *t,
684
- grpc_chttp2_stream *s);
685
- bool grpc_chttp2_list_pop_stalled_by_transport(grpc_chttp2_transport *t,
686
- grpc_chttp2_stream **s);
687
- void grpc_chttp2_list_remove_stalled_by_transport(grpc_chttp2_transport *t,
688
- grpc_chttp2_stream *s);
689
-
690
- void grpc_chttp2_list_add_stalled_by_stream(grpc_chttp2_transport *t,
691
- grpc_chttp2_stream *s);
692
- bool grpc_chttp2_list_pop_stalled_by_stream(grpc_chttp2_transport *t,
693
- grpc_chttp2_stream **s);
694
- bool grpc_chttp2_list_remove_stalled_by_stream(grpc_chttp2_transport *t,
695
- grpc_chttp2_stream *s);
606
+ bool grpc_chttp2_list_pop_writable_stream(grpc_chttp2_transport* t,
607
+ grpc_chttp2_stream** s);
608
+ bool grpc_chttp2_list_remove_writable_stream(grpc_chttp2_transport* t,
609
+ grpc_chttp2_stream* s);
610
+
611
+ bool grpc_chttp2_list_add_writing_stream(grpc_chttp2_transport* t,
612
+ grpc_chttp2_stream* s);
613
+ bool grpc_chttp2_list_have_writing_streams(grpc_chttp2_transport* t);
614
+ bool grpc_chttp2_list_pop_writing_stream(grpc_chttp2_transport* t,
615
+ grpc_chttp2_stream** s);
616
+
617
+ void grpc_chttp2_list_add_written_stream(grpc_chttp2_transport* t,
618
+ grpc_chttp2_stream* s);
619
+ bool grpc_chttp2_list_pop_written_stream(grpc_chttp2_transport* t,
620
+ grpc_chttp2_stream** s);
621
+
622
+ void grpc_chttp2_list_add_waiting_for_concurrency(grpc_chttp2_transport* t,
623
+ grpc_chttp2_stream* s);
624
+ bool grpc_chttp2_list_pop_waiting_for_concurrency(grpc_chttp2_transport* t,
625
+ grpc_chttp2_stream** s);
626
+ void grpc_chttp2_list_remove_waiting_for_concurrency(grpc_chttp2_transport* t,
627
+ grpc_chttp2_stream* s);
628
+
629
+ void grpc_chttp2_list_add_stalled_by_transport(grpc_chttp2_transport* t,
630
+ grpc_chttp2_stream* s);
631
+ bool grpc_chttp2_list_pop_stalled_by_transport(grpc_chttp2_transport* t,
632
+ grpc_chttp2_stream** s);
633
+ void grpc_chttp2_list_remove_stalled_by_transport(grpc_chttp2_transport* t,
634
+ grpc_chttp2_stream* s);
635
+
636
+ void grpc_chttp2_list_add_stalled_by_stream(grpc_chttp2_transport* t,
637
+ grpc_chttp2_stream* s);
638
+ bool grpc_chttp2_list_pop_stalled_by_stream(grpc_chttp2_transport* t,
639
+ grpc_chttp2_stream** s);
640
+ bool grpc_chttp2_list_remove_stalled_by_stream(grpc_chttp2_transport* t,
641
+ grpc_chttp2_stream* s);
696
642
 
697
643
  /********* Flow Control ***************/
698
644
 
699
- // we have sent data on the wire
700
- void grpc_chttp2_flowctl_sent_data(grpc_chttp2_transport_flowctl *tfc,
701
- grpc_chttp2_stream_flowctl *sfc,
702
- int64_t size);
703
-
704
- // we have received data from the wire
705
- grpc_error *grpc_chttp2_flowctl_recv_data(grpc_chttp2_transport_flowctl *tfc,
706
- grpc_chttp2_stream_flowctl *sfc,
707
- int64_t incoming_frame_size);
708
-
709
- // returns an announce if we should send a transport update to our peer,
710
- // else returns zero
711
- uint32_t grpc_chttp2_flowctl_maybe_send_transport_update(
712
- grpc_chttp2_transport_flowctl *tfc);
713
-
714
- // returns an announce if we should send a stream update to our peer, else
715
- // returns zero
716
- uint32_t grpc_chttp2_flowctl_maybe_send_stream_update(
717
- grpc_chttp2_transport_flowctl *tfc, grpc_chttp2_stream_flowctl *sfc);
718
-
719
- // we have received a WINDOW_UPDATE frame for a transport
720
- void grpc_chttp2_flowctl_recv_transport_update(
721
- grpc_chttp2_transport_flowctl *tfc, uint32_t size);
722
-
723
- // we have received a WINDOW_UPDATE frame for a stream
724
- void grpc_chttp2_flowctl_recv_stream_update(grpc_chttp2_transport_flowctl *tfc,
725
- grpc_chttp2_stream_flowctl *sfc,
726
- uint32_t size);
727
-
728
- // the application is asking for a certain amount of bytes
729
- void grpc_chttp2_flowctl_incoming_bs_update(grpc_chttp2_transport_flowctl *tfc,
730
- grpc_chttp2_stream_flowctl *sfc,
731
- size_t max_size_hint,
732
- size_t have_already);
733
-
734
- void grpc_chttp2_flowctl_destroy_stream(grpc_chttp2_transport_flowctl *tfc,
735
- grpc_chttp2_stream_flowctl *sfc);
736
-
737
- typedef enum {
738
- // Nothing to be done.
739
- GRPC_CHTTP2_FLOWCTL_NO_ACTION_NEEDED = 0,
740
- // Initiate a write to update the initial window immediately.
741
- GRPC_CHTTP2_FLOWCTL_UPDATE_IMMEDIATELY,
742
- // Push the flow control update into a send buffer, to be sent
743
- // out the next time a write is initiated.
744
- GRPC_CHTTP2_FLOWCTL_QUEUE_UPDATE,
745
- } grpc_chttp2_flowctl_urgency;
746
-
747
- typedef struct {
748
- grpc_chttp2_flowctl_urgency send_stream_update;
749
- grpc_chttp2_flowctl_urgency send_transport_update;
750
- grpc_chttp2_flowctl_urgency send_setting_update;
751
- uint32_t initial_window_size;
752
- uint32_t max_frame_size;
753
- bool need_ping;
754
- } grpc_chttp2_flowctl_action;
755
-
756
- // Reads the flow control data and returns and actionable struct that will tell
757
- // chttp2 exactly what it needs to do
758
- grpc_chttp2_flowctl_action grpc_chttp2_flowctl_get_action(
759
- grpc_chttp2_transport_flowctl *tfc, grpc_chttp2_stream_flowctl *sfc);
760
-
761
- grpc_chttp2_flowctl_action grpc_chttp2_flowctl_get_bdp_action(
762
- grpc_chttp2_transport_flowctl *tfc);
763
-
764
645
  // Takes in a flow control action and performs all the needed operations.
765
- void grpc_chttp2_act_on_flowctl_action(grpc_exec_ctx *exec_ctx,
766
- grpc_chttp2_flowctl_action action,
767
- grpc_chttp2_transport *t,
768
- grpc_chttp2_stream *s);
646
+ void grpc_chttp2_act_on_flowctl_action(
647
+ grpc_exec_ctx* exec_ctx, const grpc_core::chttp2::FlowControlAction& action,
648
+ grpc_chttp2_transport* t, grpc_chttp2_stream* s);
769
649
 
770
650
  /********* End of Flow Control ***************/
771
651
 
772
- grpc_chttp2_stream *grpc_chttp2_parsing_lookup_stream(grpc_chttp2_transport *t,
652
+ grpc_chttp2_stream* grpc_chttp2_parsing_lookup_stream(grpc_chttp2_transport* t,
773
653
  uint32_t id);
774
- grpc_chttp2_stream *grpc_chttp2_parsing_accept_stream(grpc_exec_ctx *exec_ctx,
775
- grpc_chttp2_transport *t,
654
+ grpc_chttp2_stream* grpc_chttp2_parsing_accept_stream(grpc_exec_ctx* exec_ctx,
655
+ grpc_chttp2_transport* t,
776
656
  uint32_t id);
777
657
 
778
- void grpc_chttp2_add_incoming_goaway(grpc_exec_ctx *exec_ctx,
779
- grpc_chttp2_transport *t,
658
+ void grpc_chttp2_add_incoming_goaway(grpc_exec_ctx* exec_ctx,
659
+ grpc_chttp2_transport* t,
780
660
  uint32_t goaway_error,
781
661
  grpc_slice goaway_text);
782
662
 
783
- void grpc_chttp2_parsing_become_skip_parser(grpc_exec_ctx *exec_ctx,
784
- grpc_chttp2_transport *t);
663
+ void grpc_chttp2_parsing_become_skip_parser(grpc_exec_ctx* exec_ctx,
664
+ grpc_chttp2_transport* t);
785
665
 
786
- void grpc_chttp2_complete_closure_step(grpc_exec_ctx *exec_ctx,
787
- grpc_chttp2_transport *t,
788
- grpc_chttp2_stream *s,
789
- grpc_closure **pclosure,
790
- grpc_error *error, const char *desc);
666
+ void grpc_chttp2_complete_closure_step(grpc_exec_ctx* exec_ctx,
667
+ grpc_chttp2_transport* t,
668
+ grpc_chttp2_stream* s,
669
+ grpc_closure** pclosure,
670
+ grpc_error* error, const char* desc);
791
671
 
792
672
  #define GRPC_HEADER_SIZE_IN_BYTES 5
793
673
  #define MAX_SIZE_T (~(size_t)0)
@@ -796,48 +676,38 @@ void grpc_chttp2_complete_closure_step(grpc_exec_ctx *exec_ctx,
796
676
  #define GRPC_CHTTP2_CLIENT_CONNECT_STRLEN \
797
677
  (sizeof(GRPC_CHTTP2_CLIENT_CONNECT_STRING) - 1)
798
678
 
799
- extern grpc_tracer_flag grpc_http_trace;
800
- extern grpc_tracer_flag grpc_flowctl_trace;
679
+ // extern grpc_core::TraceFlag grpc_http_trace;
680
+ // extern grpc_core::TraceFlag grpc_flowctl_trace;
801
681
 
802
- #ifndef NDEBUG
803
- #define GRPC_FLOW_CONTROL_IF_TRACING(stmt) \
804
- if (!(GRPC_TRACER_ON(grpc_flowctl_trace))) \
805
- ; \
806
- else \
807
- stmt
808
- #else
809
- #define GRPC_FLOW_CONTROL_IF_TRACING(stmt)
810
- #endif
682
+ #define GRPC_CHTTP2_IF_TRACING(stmt) \
683
+ if (!(grpc_http_trace.enabled())) \
684
+ ; \
685
+ else \
686
+ stmt
811
687
 
812
- #define GRPC_CHTTP2_IF_TRACING(stmt) \
813
- if (!(GRPC_TRACER_ON(grpc_http_trace))) \
814
- ; \
815
- else \
816
- stmt
817
-
818
- void grpc_chttp2_fake_status(grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t,
819
- grpc_chttp2_stream *stream, grpc_error *error);
820
- void grpc_chttp2_mark_stream_closed(grpc_exec_ctx *exec_ctx,
821
- grpc_chttp2_transport *t,
822
- grpc_chttp2_stream *s, int close_reads,
823
- int close_writes, grpc_error *error);
824
- void grpc_chttp2_start_writing(grpc_exec_ctx *exec_ctx,
825
- grpc_chttp2_transport *t);
688
+ void grpc_chttp2_fake_status(grpc_exec_ctx* exec_ctx, grpc_chttp2_transport* t,
689
+ grpc_chttp2_stream* stream, grpc_error* error);
690
+ void grpc_chttp2_mark_stream_closed(grpc_exec_ctx* exec_ctx,
691
+ grpc_chttp2_transport* t,
692
+ grpc_chttp2_stream* s, int close_reads,
693
+ int close_writes, grpc_error* error);
694
+ void grpc_chttp2_start_writing(grpc_exec_ctx* exec_ctx,
695
+ grpc_chttp2_transport* t);
826
696
 
827
697
  #ifndef NDEBUG
828
698
  #define GRPC_CHTTP2_STREAM_REF(stream, reason) \
829
699
  grpc_chttp2_stream_ref(stream, reason)
830
700
  #define GRPC_CHTTP2_STREAM_UNREF(exec_ctx, stream, reason) \
831
701
  grpc_chttp2_stream_unref(exec_ctx, stream, reason)
832
- void grpc_chttp2_stream_ref(grpc_chttp2_stream *s, const char *reason);
833
- void grpc_chttp2_stream_unref(grpc_exec_ctx *exec_ctx, grpc_chttp2_stream *s,
834
- const char *reason);
702
+ void grpc_chttp2_stream_ref(grpc_chttp2_stream* s, const char* reason);
703
+ void grpc_chttp2_stream_unref(grpc_exec_ctx* exec_ctx, grpc_chttp2_stream* s,
704
+ const char* reason);
835
705
  #else
836
706
  #define GRPC_CHTTP2_STREAM_REF(stream, reason) grpc_chttp2_stream_ref(stream)
837
707
  #define GRPC_CHTTP2_STREAM_UNREF(exec_ctx, stream, reason) \
838
708
  grpc_chttp2_stream_unref(exec_ctx, stream)
839
- void grpc_chttp2_stream_ref(grpc_chttp2_stream *s);
840
- void grpc_chttp2_stream_unref(grpc_exec_ctx *exec_ctx, grpc_chttp2_stream *s);
709
+ void grpc_chttp2_stream_ref(grpc_chttp2_stream* s);
710
+ void grpc_chttp2_stream_unref(grpc_exec_ctx* exec_ctx, grpc_chttp2_stream* s);
841
711
  #endif
842
712
 
843
713
  #ifndef NDEBUG
@@ -845,69 +715,73 @@ void grpc_chttp2_stream_unref(grpc_exec_ctx *exec_ctx, grpc_chttp2_stream *s);
845
715
  grpc_chttp2_ref_transport(t, r, __FILE__, __LINE__)
846
716
  #define GRPC_CHTTP2_UNREF_TRANSPORT(cl, t, r) \
847
717
  grpc_chttp2_unref_transport(cl, t, r, __FILE__, __LINE__)
848
- void grpc_chttp2_unref_transport(grpc_exec_ctx *exec_ctx,
849
- grpc_chttp2_transport *t, const char *reason,
850
- const char *file, int line);
851
- void grpc_chttp2_ref_transport(grpc_chttp2_transport *t, const char *reason,
852
- const char *file, int line);
718
+ void grpc_chttp2_unref_transport(grpc_exec_ctx* exec_ctx,
719
+ grpc_chttp2_transport* t, const char* reason,
720
+ const char* file, int line);
721
+ void grpc_chttp2_ref_transport(grpc_chttp2_transport* t, const char* reason,
722
+ const char* file, int line);
853
723
  #else
854
724
  #define GRPC_CHTTP2_REF_TRANSPORT(t, r) grpc_chttp2_ref_transport(t)
855
725
  #define GRPC_CHTTP2_UNREF_TRANSPORT(cl, t, r) grpc_chttp2_unref_transport(cl, t)
856
- void grpc_chttp2_unref_transport(grpc_exec_ctx *exec_ctx,
857
- grpc_chttp2_transport *t);
858
- void grpc_chttp2_ref_transport(grpc_chttp2_transport *t);
726
+ void grpc_chttp2_unref_transport(grpc_exec_ctx* exec_ctx,
727
+ grpc_chttp2_transport* t);
728
+ void grpc_chttp2_ref_transport(grpc_chttp2_transport* t);
859
729
  #endif
860
730
 
861
- grpc_chttp2_incoming_byte_stream *grpc_chttp2_incoming_byte_stream_create(
862
- grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t, grpc_chttp2_stream *s,
731
+ grpc_chttp2_incoming_byte_stream* grpc_chttp2_incoming_byte_stream_create(
732
+ grpc_exec_ctx* exec_ctx, grpc_chttp2_transport* t, grpc_chttp2_stream* s,
863
733
  uint32_t frame_size, uint32_t flags);
864
- grpc_error *grpc_chttp2_incoming_byte_stream_push(
865
- grpc_exec_ctx *exec_ctx, grpc_chttp2_incoming_byte_stream *bs,
866
- grpc_slice slice, grpc_slice *slice_out);
867
- grpc_error *grpc_chttp2_incoming_byte_stream_finished(
868
- grpc_exec_ctx *exec_ctx, grpc_chttp2_incoming_byte_stream *bs,
869
- grpc_error *error, bool reset_on_error);
734
+ grpc_error* grpc_chttp2_incoming_byte_stream_push(
735
+ grpc_exec_ctx* exec_ctx, grpc_chttp2_incoming_byte_stream* bs,
736
+ grpc_slice slice, grpc_slice* slice_out);
737
+ grpc_error* grpc_chttp2_incoming_byte_stream_finished(
738
+ grpc_exec_ctx* exec_ctx, grpc_chttp2_incoming_byte_stream* bs,
739
+ grpc_error* error, bool reset_on_error);
870
740
  void grpc_chttp2_incoming_byte_stream_notify(
871
- grpc_exec_ctx *exec_ctx, grpc_chttp2_incoming_byte_stream *bs,
872
- grpc_error *error);
741
+ grpc_exec_ctx* exec_ctx, grpc_chttp2_incoming_byte_stream* bs,
742
+ grpc_error* error);
873
743
 
874
- void grpc_chttp2_ack_ping(grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t,
744
+ void grpc_chttp2_ack_ping(grpc_exec_ctx* exec_ctx, grpc_chttp2_transport* t,
875
745
  uint64_t id);
876
746
 
877
747
  /** Add a new ping strike to ping_recv_state.ping_strikes. If
878
748
  ping_recv_state.ping_strikes > ping_policy.max_ping_strikes, it sends GOAWAY
879
749
  with error code ENHANCE_YOUR_CALM and additional debug data resembling
880
750
  "too_many_pings" followed by immediately closing the connection. */
881
- void grpc_chttp2_add_ping_strike(grpc_exec_ctx *exec_ctx,
882
- grpc_chttp2_transport *t);
751
+ void grpc_chttp2_add_ping_strike(grpc_exec_ctx* exec_ctx,
752
+ grpc_chttp2_transport* t);
883
753
 
884
754
  /** add a ref to the stream and add it to the writable list;
885
755
  ref will be dropped in writing.c */
886
- void grpc_chttp2_mark_stream_writable(grpc_exec_ctx *exec_ctx,
887
- grpc_chttp2_transport *t,
888
- grpc_chttp2_stream *s);
889
-
890
- void grpc_chttp2_cancel_stream(grpc_exec_ctx *exec_ctx,
891
- grpc_chttp2_transport *t, grpc_chttp2_stream *s,
892
- grpc_error *due_to_error);
893
-
894
- void grpc_chttp2_maybe_complete_recv_initial_metadata(grpc_exec_ctx *exec_ctx,
895
- grpc_chttp2_transport *t,
896
- grpc_chttp2_stream *s);
897
- void grpc_chttp2_maybe_complete_recv_message(grpc_exec_ctx *exec_ctx,
898
- grpc_chttp2_transport *t,
899
- grpc_chttp2_stream *s);
900
- void grpc_chttp2_maybe_complete_recv_trailing_metadata(grpc_exec_ctx *exec_ctx,
901
- grpc_chttp2_transport *t,
902
- grpc_chttp2_stream *s);
903
-
904
- void grpc_chttp2_fail_pending_writes(grpc_exec_ctx *exec_ctx,
905
- grpc_chttp2_transport *t,
906
- grpc_chttp2_stream *s, grpc_error *error);
756
+ void grpc_chttp2_mark_stream_writable(grpc_exec_ctx* exec_ctx,
757
+ grpc_chttp2_transport* t,
758
+ grpc_chttp2_stream* s);
759
+
760
+ void grpc_chttp2_cancel_stream(grpc_exec_ctx* exec_ctx,
761
+ grpc_chttp2_transport* t, grpc_chttp2_stream* s,
762
+ grpc_error* due_to_error);
763
+
764
+ void grpc_chttp2_maybe_complete_recv_initial_metadata(grpc_exec_ctx* exec_ctx,
765
+ grpc_chttp2_transport* t,
766
+ grpc_chttp2_stream* s);
767
+ void grpc_chttp2_maybe_complete_recv_message(grpc_exec_ctx* exec_ctx,
768
+ grpc_chttp2_transport* t,
769
+ grpc_chttp2_stream* s);
770
+ void grpc_chttp2_maybe_complete_recv_trailing_metadata(grpc_exec_ctx* exec_ctx,
771
+ grpc_chttp2_transport* t,
772
+ grpc_chttp2_stream* s);
773
+
774
+ void grpc_chttp2_fail_pending_writes(grpc_exec_ctx* exec_ctx,
775
+ grpc_chttp2_transport* t,
776
+ grpc_chttp2_stream* s, grpc_error* error);
907
777
 
908
778
  /** Set the default keepalive configurations, must only be called at
909
779
  initialization */
910
- void grpc_chttp2_config_default_keepalive_args(grpc_channel_args *args,
780
+ void grpc_chttp2_config_default_keepalive_args(grpc_channel_args* args,
911
781
  bool is_client);
912
782
 
783
+ #ifdef __cplusplus
784
+ }
785
+ #endif
786
+
913
787
  #endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_INTERNAL_H */