grpc 1.8.7 → 1.9.0.pre1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of grpc might be problematic. Click here for more details.

Files changed (488) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +549 -325
  3. data/include/grpc/impl/codegen/grpc_types.h +1 -2
  4. data/include/grpc/impl/codegen/port_platform.h +46 -5
  5. data/include/grpc/impl/codegen/slice.h +1 -2
  6. data/include/grpc/module.modulemap +0 -2
  7. data/include/grpc/slice_buffer.h +1 -2
  8. data/include/grpc/support/log.h +4 -2
  9. data/include/grpc/support/thd.h +4 -1
  10. data/include/grpc/support/tls.h +6 -0
  11. data/include/grpc/support/tls_gcc.h +5 -40
  12. data/include/grpc/support/tls_msvc.h +9 -0
  13. data/include/grpc/support/tls_pthread.h +9 -0
  14. data/src/core/ext/filters/client_channel/backup_poller.cc +32 -29
  15. data/src/core/ext/filters/client_channel/backup_poller.h +2 -2
  16. data/src/core/ext/filters/client_channel/channel_connectivity.cc +26 -32
  17. data/src/core/ext/filters/client_channel/client_channel.cc +325 -356
  18. data/src/core/ext/filters/client_channel/client_channel.h +4 -12
  19. data/src/core/ext/filters/client_channel/client_channel_factory.cc +9 -14
  20. data/src/core/ext/filters/client_channel/client_channel_factory.h +7 -20
  21. data/src/core/ext/filters/client_channel/client_channel_plugin.cc +7 -10
  22. data/src/core/ext/filters/client_channel/connector.cc +6 -7
  23. data/src/core/ext/filters/client_channel/connector.h +6 -16
  24. data/src/core/ext/filters/client_channel/http_connect_handshaker.cc +38 -50
  25. data/src/core/ext/filters/client_channel/http_connect_handshaker.h +0 -8
  26. data/src/core/ext/filters/client_channel/http_proxy.cc +9 -13
  27. data/src/core/ext/filters/client_channel/http_proxy.h +0 -8
  28. data/src/core/ext/filters/client_channel/lb_policy.cc +72 -94
  29. data/src/core/ext/filters/client_channel/lb_policy.h +83 -92
  30. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.cc +14 -19
  31. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +0 -8
  32. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.cc +474 -591
  33. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +0 -8
  34. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +2 -10
  35. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel_secure.cc +6 -6
  36. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +0 -8
  37. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.cc +0 -9
  38. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +0 -9
  39. data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c +3 -4
  40. data/src/core/ext/filters/client_channel/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h +9 -12
  41. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +160 -182
  42. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +182 -221
  43. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.cc +24 -35
  44. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +9 -20
  45. data/src/core/ext/filters/client_channel/lb_policy_factory.cc +6 -9
  46. data/src/core/ext/filters/client_channel/lb_policy_factory.h +4 -15
  47. data/src/core/ext/filters/client_channel/lb_policy_registry.cc +3 -3
  48. data/src/core/ext/filters/client_channel/lb_policy_registry.h +1 -9
  49. data/src/core/ext/filters/client_channel/parse_address.cc +1 -1
  50. data/src/core/ext/filters/client_channel/parse_address.h +0 -8
  51. data/src/core/ext/filters/client_channel/proxy_mapper.cc +6 -8
  52. data/src/core/ext/filters/client_channel/proxy_mapper.h +6 -16
  53. data/src/core/ext/filters/client_channel/proxy_mapper_registry.cc +13 -17
  54. data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +2 -12
  55. data/src/core/ext/filters/client_channel/resolver.cc +11 -13
  56. data/src/core/ext/filters/client_channel/resolver.h +14 -25
  57. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/dns_resolver_ares.cc +57 -70
  58. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +2 -12
  59. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver_posix.cc +23 -31
  60. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.cc +27 -45
  61. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +5 -15
  62. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +9 -11
  63. data/src/core/ext/filters/client_channel/resolver/dns/native/dns_resolver.cc +53 -66
  64. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.cc +25 -33
  65. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +1 -9
  66. data/src/core/ext/filters/client_channel/resolver/sockaddr/sockaddr_resolver.cc +26 -35
  67. data/src/core/ext/filters/client_channel/resolver_factory.cc +2 -3
  68. data/src/core/ext/filters/client_channel/resolver_factory.h +2 -12
  69. data/src/core/ext/filters/client_channel/resolver_registry.cc +12 -15
  70. data/src/core/ext/filters/client_channel/resolver_registry.h +3 -12
  71. data/src/core/ext/filters/client_channel/retry_throttle.h +0 -8
  72. data/src/core/ext/filters/client_channel/subchannel.cc +289 -301
  73. data/src/core/ext/filters/client_channel/subchannel.h +57 -84
  74. data/src/core/ext/filters/client_channel/subchannel_index.cc +30 -33
  75. data/src/core/ext/filters/client_channel/subchannel_index.h +4 -16
  76. data/src/core/ext/filters/client_channel/uri_parser.cc +13 -17
  77. data/src/core/ext/filters/client_channel/uri_parser.h +1 -10
  78. data/src/core/ext/filters/deadline/deadline_filter.cc +49 -67
  79. data/src/core/ext/filters/deadline/deadline_filter.h +4 -14
  80. data/src/core/ext/filters/http/client/http_client_filter.cc +60 -77
  81. data/src/core/ext/filters/http/client/http_client_filter.h +0 -8
  82. data/src/core/ext/filters/http/http_filters_plugin.cc +4 -6
  83. data/src/core/ext/filters/http/message_compress/message_compress_filter.cc +63 -79
  84. data/src/core/ext/filters/http/message_compress/message_compress_filter.h +0 -8
  85. data/src/core/ext/filters/http/server/http_server_filter.cc +57 -71
  86. data/src/core/ext/filters/http/server/http_server_filter.h +0 -8
  87. data/src/core/ext/filters/load_reporting/server_load_reporting_filter.cc +19 -24
  88. data/src/core/ext/filters/load_reporting/server_load_reporting_filter.h +0 -8
  89. data/src/core/ext/filters/load_reporting/server_load_reporting_plugin.cc +3 -3
  90. data/src/core/ext/filters/load_reporting/server_load_reporting_plugin.h +0 -8
  91. data/src/core/ext/filters/max_age/max_age_filter.cc +49 -62
  92. data/src/core/ext/filters/max_age/max_age_filter.h +0 -8
  93. data/src/core/ext/filters/message_size/message_size_filter.cc +23 -29
  94. data/src/core/ext/filters/message_size/message_size_filter.h +0 -8
  95. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.cc +15 -18
  96. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.h +0 -8
  97. data/src/core/ext/filters/workarounds/workaround_utils.h +0 -8
  98. data/src/core/ext/transport/chttp2/alpn/alpn.h +0 -8
  99. data/src/core/ext/transport/chttp2/client/chttp2_connector.cc +33 -40
  100. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +0 -8
  101. data/src/core/ext/transport/chttp2/client/insecure/channel_create.cc +15 -17
  102. data/src/core/ext/transport/chttp2/client/insecure/channel_create_posix.cc +8 -8
  103. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.cc +23 -28
  104. data/src/core/ext/transport/chttp2/server/chttp2_server.cc +50 -57
  105. data/src/core/ext/transport/chttp2/server/chttp2_server.h +1 -10
  106. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.cc +3 -3
  107. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.cc +7 -10
  108. data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.cc +5 -6
  109. data/src/core/ext/transport/chttp2/transport/bin_decoder.cc +7 -9
  110. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +2 -11
  111. data/src/core/ext/transport/chttp2/transport/bin_encoder.h +1 -9
  112. data/src/core/ext/transport/chttp2/transport/chttp2_plugin.cc +10 -2
  113. data/src/core/ext/transport/chttp2/transport/chttp2_transport.cc +516 -636
  114. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +4 -11
  115. data/src/core/ext/transport/chttp2/transport/flow_control.cc +29 -13
  116. data/src/core/ext/transport/chttp2/transport/flow_control.h +196 -53
  117. data/src/core/ext/transport/chttp2/transport/frame.h +0 -8
  118. data/src/core/ext/transport/chttp2/transport/frame_data.cc +31 -33
  119. data/src/core/ext/transport/chttp2/transport/frame_data.h +3 -12
  120. data/src/core/ext/transport/chttp2/transport/frame_goaway.cc +2 -3
  121. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +1 -10
  122. data/src/core/ext/transport/chttp2/transport/frame_ping.cc +5 -6
  123. data/src/core/ext/transport/chttp2/transport/frame_ping.h +1 -9
  124. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.cc +2 -3
  125. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +1 -10
  126. data/src/core/ext/transport/chttp2/transport/frame_settings.cc +8 -3
  127. data/src/core/ext/transport/chttp2/transport/frame_settings.h +1 -10
  128. data/src/core/ext/transport/chttp2/transport/frame_window_update.cc +8 -8
  129. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +5 -11
  130. data/src/core/ext/transport/chttp2/transport/hpack_encoder.cc +63 -81
  131. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +2 -12
  132. data/src/core/ext/transport/chttp2/transport/hpack_parser.cc +230 -318
  133. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +6 -19
  134. data/src/core/ext/transport/chttp2/transport/hpack_table.cc +14 -20
  135. data/src/core/ext/transport/chttp2/transport/hpack_table.h +5 -16
  136. data/src/core/ext/transport/chttp2/transport/http2_settings.h +0 -7
  137. data/src/core/ext/transport/chttp2/transport/huffsyms.h +0 -8
  138. data/src/core/ext/transport/chttp2/transport/incoming_metadata.cc +8 -11
  139. data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +4 -13
  140. data/src/core/ext/transport/chttp2/transport/internal.h +51 -75
  141. data/src/core/ext/transport/chttp2/transport/parsing.cc +83 -109
  142. data/src/core/ext/transport/chttp2/transport/stream_lists.cc +2 -0
  143. data/src/core/ext/transport/chttp2/transport/stream_map.h +0 -8
  144. data/src/core/ext/transport/chttp2/transport/varint.h +0 -8
  145. data/src/core/ext/transport/chttp2/transport/writing.cc +61 -65
  146. data/src/core/ext/transport/inproc/inproc_plugin.cc +2 -4
  147. data/src/core/ext/transport/inproc/inproc_transport.cc +177 -188
  148. data/src/core/ext/transport/inproc/inproc_transport.h +0 -8
  149. data/src/core/lib/backoff/backoff.cc +39 -44
  150. data/src/core/lib/backoff/backoff.h +61 -57
  151. data/src/core/lib/channel/channel_args.cc +8 -10
  152. data/src/core/lib/channel/channel_args.h +4 -13
  153. data/src/core/lib/channel/channel_stack.cc +19 -27
  154. data/src/core/lib/channel/channel_stack.h +27 -47
  155. data/src/core/lib/channel/channel_stack_builder.cc +11 -14
  156. data/src/core/lib/channel/channel_stack_builder.h +4 -15
  157. data/src/core/lib/channel/connected_channel.cc +23 -36
  158. data/src/core/lib/channel/connected_channel.h +1 -10
  159. data/src/core/lib/channel/handshaker.cc +31 -40
  160. data/src/core/lib/channel/handshaker.h +14 -25
  161. data/src/core/lib/channel/handshaker_factory.cc +6 -6
  162. data/src/core/lib/channel/handshaker_factory.h +5 -15
  163. data/src/core/lib/channel/handshaker_registry.cc +9 -13
  164. data/src/core/lib/channel/handshaker_registry.h +2 -11
  165. data/src/core/lib/compression/algorithm_metadata.h +0 -8
  166. data/src/core/lib/compression/message_compress.cc +19 -23
  167. data/src/core/lib/compression/message_compress.h +2 -12
  168. data/src/core/lib/compression/stream_compression.cc +1 -1
  169. data/src/core/lib/compression/stream_compression.h +0 -8
  170. data/src/core/lib/compression/stream_compression_gzip.cc +12 -11
  171. data/src/core/lib/compression/stream_compression_gzip.h +0 -8
  172. data/src/core/lib/compression/stream_compression_identity.h +0 -8
  173. data/src/core/lib/debug/stats.cc +4 -4
  174. data/src/core/lib/debug/stats.h +9 -19
  175. data/src/core/lib/debug/stats_data.cc +85 -116
  176. data/src/core/lib/debug/stats_data.h +236 -312
  177. data/src/core/lib/debug/trace.cc +1 -1
  178. data/src/core/lib/debug/trace.h +0 -12
  179. data/src/core/lib/{support → gpr++}/abstract.h +8 -3
  180. data/src/core/lib/{support → gpr++}/atomic.h +5 -5
  181. data/src/core/lib/{support → gpr++}/atomic_with_atm.h +3 -3
  182. data/src/core/lib/{support → gpr++}/atomic_with_std.h +3 -3
  183. data/src/core/lib/gpr++/debug_location.h +52 -0
  184. data/src/core/lib/gpr++/inlined_vector.h +112 -0
  185. data/src/core/lib/{support → gpr++}/manual_constructor.h +2 -2
  186. data/src/core/lib/{support → gpr++}/memory.h +3 -3
  187. data/src/core/lib/gpr++/orphanable.h +171 -0
  188. data/src/core/lib/gpr++/ref_counted.h +133 -0
  189. data/src/core/lib/gpr++/ref_counted_ptr.h +99 -0
  190. data/src/core/lib/{support → gpr}/alloc.cc +0 -0
  191. data/src/core/lib/{support → gpr}/arena.cc +1 -1
  192. data/src/core/lib/{support → gpr}/arena.h +3 -11
  193. data/src/core/lib/{support → gpr}/atm.cc +0 -0
  194. data/src/core/lib/{support → gpr}/avl.cc +0 -0
  195. data/src/core/lib/{support → gpr}/cmdline.cc +1 -1
  196. data/src/core/lib/{support → gpr}/cpu_iphone.cc +0 -0
  197. data/src/core/lib/{support → gpr}/cpu_linux.cc +0 -0
  198. data/src/core/lib/{support → gpr}/cpu_posix.cc +0 -0
  199. data/src/core/lib/{support → gpr}/cpu_windows.cc +0 -0
  200. data/src/core/lib/{support → gpr}/env.h +3 -11
  201. data/src/core/lib/{support → gpr}/env_linux.cc +2 -2
  202. data/src/core/lib/{support → gpr}/env_posix.cc +4 -4
  203. data/src/core/lib/{support → gpr}/env_windows.cc +3 -3
  204. data/src/core/lib/{support → gpr}/fork.cc +3 -3
  205. data/src/core/lib/{support → gpr}/fork.h +3 -3
  206. data/src/core/lib/{support → gpr}/host_port.cc +1 -1
  207. data/src/core/lib/{support → gpr}/log.cc +3 -3
  208. data/src/core/lib/{support → gpr}/log_android.cc +3 -3
  209. data/src/core/lib/{support → gpr}/log_linux.cc +1 -1
  210. data/src/core/lib/{support → gpr}/log_posix.cc +5 -5
  211. data/src/core/lib/{support → gpr}/log_windows.cc +3 -3
  212. data/src/core/lib/{support → gpr}/mpscq.cc +1 -1
  213. data/src/core/lib/{support → gpr}/mpscq.h +3 -10
  214. data/src/core/lib/{support → gpr}/murmur_hash.cc +1 -1
  215. data/src/core/lib/{support → gpr}/murmur_hash.h +3 -11
  216. data/src/core/lib/{support → gpr}/spinlock.h +3 -3
  217. data/src/core/lib/{support → gpr}/string.cc +1 -1
  218. data/src/core/lib/{support → gpr}/string.h +3 -10
  219. data/src/core/lib/{support → gpr}/string_posix.cc +0 -0
  220. data/src/core/lib/{support → gpr}/string_util_windows.cc +2 -2
  221. data/src/core/lib/{support → gpr}/string_windows.cc +1 -1
  222. data/src/core/lib/{support → gpr}/string_windows.h +3 -11
  223. data/src/core/lib/{support → gpr}/subprocess_posix.cc +0 -0
  224. data/src/core/lib/{support → gpr}/subprocess_windows.cc +2 -2
  225. data/src/core/lib/{support → gpr}/sync.cc +0 -0
  226. data/src/core/lib/{support → gpr}/sync_posix.cc +10 -1
  227. data/src/core/lib/{support → gpr}/sync_windows.cc +0 -0
  228. data/src/core/lib/{support → gpr}/thd.cc +0 -0
  229. data/src/core/lib/{support → gpr}/thd_internal.h +3 -3
  230. data/src/core/lib/{support → gpr}/thd_posix.cc +18 -2
  231. data/src/core/lib/{support → gpr}/thd_windows.cc +2 -1
  232. data/src/core/lib/{support → gpr}/time.cc +0 -0
  233. data/src/core/lib/{support → gpr}/time_posix.cc +2 -4
  234. data/src/core/lib/{support → gpr}/time_precise.cc +1 -1
  235. data/src/core/lib/{support → gpr}/time_precise.h +3 -11
  236. data/src/core/lib/{support → gpr}/time_windows.cc +1 -3
  237. data/src/core/lib/{support → gpr}/tls_pthread.cc +0 -0
  238. data/src/core/lib/{support → gpr}/tmpfile.h +3 -11
  239. data/src/core/lib/{support → gpr}/tmpfile_msys.cc +2 -2
  240. data/src/core/lib/{support → gpr}/tmpfile_posix.cc +2 -2
  241. data/src/core/lib/{support → gpr}/tmpfile_windows.cc +2 -2
  242. data/src/core/lib/{support → gpr}/wrap_memcpy.cc +0 -0
  243. data/src/core/lib/http/format_request.cc +1 -1
  244. data/src/core/lib/http/format_request.h +0 -8
  245. data/src/core/lib/http/httpcli.cc +55 -74
  246. data/src/core/lib/http/httpcli.h +13 -22
  247. data/src/core/lib/http/httpcli_security_connector.cc +27 -33
  248. data/src/core/lib/http/parser.h +0 -8
  249. data/src/core/lib/iomgr/block_annotate.h +10 -17
  250. data/src/core/lib/iomgr/call_combiner.cc +14 -17
  251. data/src/core/lib/iomgr/call_combiner.h +16 -34
  252. data/src/core/lib/iomgr/closure.h +24 -37
  253. data/src/core/lib/iomgr/combiner.cc +62 -66
  254. data/src/core/lib/iomgr/combiner.h +6 -16
  255. data/src/core/lib/iomgr/endpoint.cc +15 -21
  256. data/src/core/lib/iomgr/endpoint.h +16 -33
  257. data/src/core/lib/iomgr/endpoint_pair.h +0 -8
  258. data/src/core/lib/iomgr/endpoint_pair_posix.cc +4 -5
  259. data/src/core/lib/iomgr/endpoint_pair_windows.cc +4 -6
  260. data/src/core/lib/iomgr/error.cc +2 -6
  261. data/src/core/lib/iomgr/error.h +4 -9
  262. data/src/core/lib/iomgr/error_internal.h +0 -8
  263. data/src/core/lib/iomgr/ev_epoll1_linux.cc +110 -117
  264. data/src/core/lib/iomgr/ev_epoll1_linux.h +0 -8
  265. data/src/core/lib/iomgr/ev_epollex_linux.cc +111 -141
  266. data/src/core/lib/iomgr/ev_epollex_linux.h +0 -8
  267. data/src/core/lib/iomgr/ev_epollsig_linux.cc +83 -109
  268. data/src/core/lib/iomgr/ev_epollsig_linux.h +2 -10
  269. data/src/core/lib/iomgr/ev_poll_posix.cc +103 -125
  270. data/src/core/lib/iomgr/ev_poll_posix.h +0 -8
  271. data/src/core/lib/iomgr/ev_posix.cc +35 -50
  272. data/src/core/lib/iomgr/ev_posix.h +27 -53
  273. data/src/core/lib/iomgr/exec_ctx.cc +46 -78
  274. data/src/core/lib/iomgr/exec_ctx.h +127 -60
  275. data/src/core/lib/iomgr/executor.cc +34 -38
  276. data/src/core/lib/iomgr/executor.h +3 -11
  277. data/src/core/lib/iomgr/fork_posix.cc +13 -12
  278. data/src/core/lib/iomgr/gethostname.h +0 -8
  279. data/src/core/lib/iomgr/gethostname_sysconf.cc +1 -1
  280. data/src/core/lib/iomgr/iocp_windows.cc +14 -16
  281. data/src/core/lib/iomgr/iocp_windows.h +1 -10
  282. data/src/core/lib/iomgr/iomgr.cc +60 -59
  283. data/src/core/lib/iomgr/iomgr.h +3 -12
  284. data/src/core/lib/iomgr/iomgr_internal.h +0 -8
  285. data/src/core/lib/iomgr/iomgr_uv.cc +2 -3
  286. data/src/core/lib/iomgr/iomgr_uv.h +0 -8
  287. data/src/core/lib/iomgr/is_epollexclusive_available.cc +1 -1
  288. data/src/core/lib/iomgr/load_file.cc +1 -1
  289. data/src/core/lib/iomgr/load_file.h +0 -8
  290. data/src/core/lib/iomgr/lockfree_event.cc +7 -8
  291. data/src/core/lib/iomgr/lockfree_event.h +3 -3
  292. data/src/core/lib/iomgr/polling_entity.cc +6 -10
  293. data/src/core/lib/iomgr/polling_entity.h +2 -11
  294. data/src/core/lib/iomgr/pollset.h +4 -13
  295. data/src/core/lib/iomgr/pollset_set.h +5 -18
  296. data/src/core/lib/iomgr/pollset_set_uv.cc +5 -10
  297. data/src/core/lib/iomgr/pollset_set_windows.cc +5 -10
  298. data/src/core/lib/iomgr/pollset_uv.cc +8 -9
  299. data/src/core/lib/iomgr/pollset_uv.h +0 -8
  300. data/src/core/lib/iomgr/pollset_windows.cc +14 -15
  301. data/src/core/lib/iomgr/pollset_windows.h +0 -8
  302. data/src/core/lib/iomgr/port.h +6 -1
  303. data/src/core/lib/iomgr/resolve_address.h +1 -10
  304. data/src/core/lib/iomgr/resolve_address_posix.cc +10 -12
  305. data/src/core/lib/iomgr/resolve_address_uv.cc +7 -8
  306. data/src/core/lib/iomgr/resolve_address_windows.cc +8 -9
  307. data/src/core/lib/iomgr/resource_quota.cc +77 -107
  308. data/src/core/lib/iomgr/resource_quota.h +8 -25
  309. data/src/core/lib/iomgr/sockaddr_utils.cc +1 -1
  310. data/src/core/lib/iomgr/sockaddr_utils.h +0 -8
  311. data/src/core/lib/iomgr/socket_factory_posix.cc +1 -1
  312. data/src/core/lib/iomgr/socket_factory_posix.h +0 -8
  313. data/src/core/lib/iomgr/socket_mutator.cc +1 -1
  314. data/src/core/lib/iomgr/socket_mutator.h +1 -9
  315. data/src/core/lib/iomgr/socket_utils.h +0 -8
  316. data/src/core/lib/iomgr/socket_utils_common_posix.cc +1 -1
  317. data/src/core/lib/iomgr/socket_utils_posix.h +0 -8
  318. data/src/core/lib/iomgr/socket_windows.cc +8 -11
  319. data/src/core/lib/iomgr/socket_windows.h +3 -14
  320. data/src/core/lib/iomgr/tcp_client.h +1 -10
  321. data/src/core/lib/iomgr/tcp_client_posix.cc +94 -78
  322. data/src/core/lib/iomgr/tcp_client_posix.h +36 -8
  323. data/src/core/lib/iomgr/tcp_client_uv.cc +16 -23
  324. data/src/core/lib/iomgr/tcp_client_windows.cc +22 -25
  325. data/src/core/lib/iomgr/tcp_posix.cc +131 -153
  326. data/src/core/lib/iomgr/tcp_posix.h +3 -12
  327. data/src/core/lib/iomgr/tcp_server.h +6 -17
  328. data/src/core/lib/iomgr/tcp_server_posix.cc +31 -35
  329. data/src/core/lib/iomgr/tcp_server_utils_posix.h +0 -8
  330. data/src/core/lib/iomgr/tcp_server_utils_posix_common.cc +1 -1
  331. data/src/core/lib/iomgr/tcp_server_uv.cc +23 -34
  332. data/src/core/lib/iomgr/tcp_server_windows.cc +24 -34
  333. data/src/core/lib/iomgr/tcp_uv.cc +42 -56
  334. data/src/core/lib/iomgr/tcp_uv.h +0 -8
  335. data/src/core/lib/iomgr/tcp_windows.cc +43 -50
  336. data/src/core/lib/iomgr/tcp_windows.h +1 -9
  337. data/src/core/lib/iomgr/time_averaged_stats.h +0 -8
  338. data/src/core/lib/iomgr/timer.h +6 -15
  339. data/src/core/lib/iomgr/timer_generic.cc +22 -27
  340. data/src/core/lib/iomgr/timer_heap.h +0 -8
  341. data/src/core/lib/iomgr/timer_manager.cc +17 -19
  342. data/src/core/lib/iomgr/timer_manager.h +0 -8
  343. data/src/core/lib/iomgr/timer_uv.cc +12 -14
  344. data/src/core/lib/iomgr/udp_server.cc +148 -54
  345. data/src/core/lib/iomgr/udp_server.h +16 -21
  346. data/src/core/lib/iomgr/unix_sockets_posix.h +0 -8
  347. data/src/core/lib/iomgr/wakeup_fd_cv.cc +4 -4
  348. data/src/core/lib/iomgr/wakeup_fd_cv.h +12 -20
  349. data/src/core/lib/iomgr/wakeup_fd_nospecial.cc +1 -1
  350. data/src/core/lib/iomgr/wakeup_fd_pipe.h +0 -8
  351. data/src/core/lib/iomgr/wakeup_fd_posix.h +0 -8
  352. data/src/core/lib/json/json.h +0 -8
  353. data/src/core/lib/json/json_reader.h +0 -8
  354. data/src/core/lib/json/json_writer.h +0 -8
  355. data/src/core/lib/profiling/basic_timers.cc +3 -2
  356. data/src/core/lib/profiling/timers.h +0 -8
  357. data/src/core/lib/security/context/security_context.cc +9 -10
  358. data/src/core/lib/security/context/security_context.h +0 -8
  359. data/src/core/lib/security/credentials/composite/composite_credentials.cc +23 -28
  360. data/src/core/lib/security/credentials/composite/composite_credentials.h +0 -8
  361. data/src/core/lib/security/credentials/credentials.cc +33 -42
  362. data/src/core/lib/security/credentials/credentials.h +24 -43
  363. data/src/core/lib/security/credentials/credentials_metadata.cc +2 -2
  364. data/src/core/lib/security/credentials/fake/fake_credentials.cc +16 -22
  365. data/src/core/lib/security/credentials/fake/fake_credentials.h +0 -8
  366. data/src/core/lib/security/credentials/google_default/credentials_generic.cc +3 -3
  367. data/src/core/lib/security/credentials/google_default/google_default_credentials.cc +28 -34
  368. data/src/core/lib/security/credentials/google_default/google_default_credentials.h +0 -8
  369. data/src/core/lib/security/credentials/iam/iam_credentials.cc +9 -13
  370. data/src/core/lib/security/credentials/jwt/json_token.cc +1 -1
  371. data/src/core/lib/security/credentials/jwt/json_token.h +0 -8
  372. data/src/core/lib/security/credentials/jwt/jwt_credentials.cc +14 -20
  373. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +1 -10
  374. data/src/core/lib/security/credentials/jwt/jwt_verifier.cc +56 -72
  375. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +5 -17
  376. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.cc +47 -55
  377. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +3 -12
  378. data/src/core/lib/security/credentials/plugin/plugin_credentials.cc +23 -28
  379. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +8 -13
  380. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +0 -8
  381. data/src/core/lib/security/transport/auth_filters.h +0 -8
  382. data/src/core/lib/security/transport/client_auth_filter.cc +45 -54
  383. data/src/core/lib/security/transport/lb_targets_info.cc +2 -2
  384. data/src/core/lib/security/transport/lb_targets_info.h +0 -8
  385. data/src/core/lib/security/transport/secure_endpoint.cc +54 -68
  386. data/src/core/lib/security/transport/secure_endpoint.h +0 -8
  387. data/src/core/lib/security/transport/security_connector.cc +62 -86
  388. data/src/core/lib/security/transport/security_connector.h +22 -39
  389. data/src/core/lib/security/transport/security_handshaker.cc +83 -106
  390. data/src/core/lib/security/transport/security_handshaker.h +1 -10
  391. data/src/core/lib/security/transport/server_auth_filter.cc +31 -38
  392. data/src/core/lib/security/transport/tsi_error.h +0 -8
  393. data/src/core/lib/security/util/json_util.h +0 -8
  394. data/src/core/lib/slice/b64.cc +5 -6
  395. data/src/core/lib/slice/b64.h +3 -12
  396. data/src/core/lib/slice/percent_encoding.h +0 -8
  397. data/src/core/lib/slice/slice.cc +8 -9
  398. data/src/core/lib/slice/slice_buffer.cc +11 -16
  399. data/src/core/lib/slice/slice_hash_table.cc +5 -7
  400. data/src/core/lib/slice/slice_hash_table.h +2 -12
  401. data/src/core/lib/slice/slice_intern.cc +4 -5
  402. data/src/core/lib/slice/slice_internal.h +4 -15
  403. data/src/core/lib/slice/slice_string_helpers.cc +1 -1
  404. data/src/core/lib/slice/slice_string_helpers.h +1 -9
  405. data/src/core/lib/surface/alarm.cc +11 -14
  406. data/src/core/lib/surface/alarm_internal.h +0 -8
  407. data/src/core/lib/surface/byte_buffer.cc +2 -3
  408. data/src/core/lib/surface/byte_buffer_reader.cc +7 -9
  409. data/src/core/lib/surface/call.cc +198 -241
  410. data/src/core/lib/surface/call.h +9 -23
  411. data/src/core/lib/surface/call_details.cc +3 -4
  412. data/src/core/lib/surface/call_log_batch.cc +1 -1
  413. data/src/core/lib/surface/call_test_only.h +0 -8
  414. data/src/core/lib/surface/channel.cc +53 -64
  415. data/src/core/lib/surface/channel.h +12 -23
  416. data/src/core/lib/surface/channel_init.cc +2 -3
  417. data/src/core/lib/surface/channel_init.h +2 -12
  418. data/src/core/lib/surface/channel_ping.cc +7 -9
  419. data/src/core/lib/surface/channel_stack_type.h +0 -8
  420. data/src/core/lib/surface/completion_queue.cc +158 -176
  421. data/src/core/lib/surface/completion_queue.h +9 -20
  422. data/src/core/lib/surface/completion_queue_factory.h +0 -8
  423. data/src/core/lib/surface/event_string.cc +1 -1
  424. data/src/core/lib/surface/event_string.h +0 -8
  425. data/src/core/lib/surface/init.cc +27 -25
  426. data/src/core/lib/surface/init.h +0 -8
  427. data/src/core/lib/surface/init_secure.cc +2 -2
  428. data/src/core/lib/surface/lame_client.cc +30 -33
  429. data/src/core/lib/surface/lame_client.h +0 -8
  430. data/src/core/lib/surface/server.cc +151 -203
  431. data/src/core/lib/surface/server.h +7 -16
  432. data/src/core/lib/surface/validate_metadata.h +0 -8
  433. data/src/core/lib/surface/version.cc +2 -2
  434. data/src/core/lib/transport/bdp_estimator.cc +2 -2
  435. data/src/core/lib/transport/bdp_estimator.h +1 -1
  436. data/src/core/lib/transport/byte_stream.cc +24 -38
  437. data/src/core/lib/transport/byte_stream.h +10 -25
  438. data/src/core/lib/transport/connectivity_state.cc +9 -13
  439. data/src/core/lib/transport/connectivity_state.h +4 -14
  440. data/src/core/lib/transport/error_utils.cc +6 -6
  441. data/src/core/lib/transport/error_utils.h +2 -11
  442. data/src/core/lib/transport/metadata.cc +21 -23
  443. data/src/core/lib/transport/metadata.h +8 -20
  444. data/src/core/lib/transport/metadata_batch.cc +34 -45
  445. data/src/core/lib/transport/metadata_batch.h +18 -32
  446. data/src/core/lib/transport/service_config.cc +11 -15
  447. data/src/core/lib/transport/service_config.h +3 -13
  448. data/src/core/lib/transport/static_metadata.cc +1 -1
  449. data/src/core/lib/transport/static_metadata.h +1 -7
  450. data/src/core/lib/transport/status_conversion.cc +2 -3
  451. data/src/core/lib/transport/status_conversion.h +1 -10
  452. data/src/core/lib/transport/timeout_encoding.cc +1 -1
  453. data/src/core/lib/transport/timeout_encoding.h +1 -9
  454. data/src/core/lib/transport/transport.cc +36 -50
  455. data/src/core/lib/transport/transport.h +28 -30
  456. data/src/core/lib/transport/transport_impl.h +12 -23
  457. data/src/core/lib/transport/transport_op_string.cc +2 -2
  458. data/src/core/plugin_registry/grpc_plugin_registry.cc +34 -34
  459. data/src/core/tsi/fake_transport_security.cc +7 -10
  460. data/src/core/tsi/fake_transport_security.h +0 -8
  461. data/src/core/tsi/gts_transport_security.cc +2 -2
  462. data/src/core/tsi/gts_transport_security.h +0 -8
  463. data/src/core/tsi/ssl_transport_security.cc +3 -0
  464. data/src/core/tsi/ssl_transport_security.h +0 -8
  465. data/src/core/tsi/ssl_types.h +0 -8
  466. data/src/core/tsi/transport_security.h +1 -9
  467. data/src/core/tsi/transport_security_adapter.h +0 -8
  468. data/src/core/tsi/transport_security_grpc.cc +11 -18
  469. data/src/core/tsi/transport_security_grpc.h +9 -21
  470. data/src/core/tsi/transport_security_interface.h +0 -8
  471. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +0 -30
  472. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +2 -48
  473. data/src/ruby/lib/grpc/version.rb +1 -1
  474. data/src/ruby/spec/channel_connection_spec.rb +2 -1
  475. data/src/ruby/spec/client_auth_spec.rb +1 -1
  476. data/src/ruby/spec/client_server_spec.rb +2 -2
  477. data/src/ruby/spec/generic/active_call_spec.rb +1 -1
  478. data/src/ruby/spec/generic/client_stub_spec.rb +4 -4
  479. data/src/ruby/spec/generic/interceptor_registry_spec.rb +1 -1
  480. data/src/ruby/spec/generic/rpc_server_spec.rb +12 -12
  481. data/src/ruby/spec/google_rpc_status_utils_spec.rb +3 -2
  482. data/src/ruby/spec/pb/health/checker_spec.rb +1 -1
  483. data/src/ruby/spec/server_spec.rb +9 -9
  484. data/src/ruby/spec/support/helpers.rb +35 -1
  485. metadata +68 -66
  486. data/include/grpc/impl/codegen/exec_ctx_fwd.h +0 -26
  487. data/include/grpc/support/histogram.h +0 -64
  488. data/src/core/lib/support/histogram.cc +0 -227
@@ -25,10 +25,6 @@
25
25
  #include "src/core/ext/transport/chttp2/transport/http2_settings.h"
26
26
  #include "src/core/lib/iomgr/exec_ctx.h"
27
27
 
28
- #ifdef __cplusplus
29
- extern "C" {
30
- #endif
31
-
32
28
  typedef enum {
33
29
  GRPC_CHTTP2_SPS_ID0,
34
30
  GRPC_CHTTP2_SPS_ID1,
@@ -56,14 +52,9 @@ grpc_slice grpc_chttp2_settings_ack_create(void);
56
52
  grpc_error* grpc_chttp2_settings_parser_begin_frame(
57
53
  grpc_chttp2_settings_parser* parser, uint32_t length, uint8_t flags,
58
54
  uint32_t* settings);
59
- grpc_error* grpc_chttp2_settings_parser_parse(grpc_exec_ctx* exec_ctx,
60
- void* parser,
55
+ grpc_error* grpc_chttp2_settings_parser_parse(void* parser,
61
56
  grpc_chttp2_transport* t,
62
57
  grpc_chttp2_stream* s,
63
58
  grpc_slice slice, int is_last);
64
59
 
65
- #ifdef __cplusplus
66
- }
67
- #endif
68
-
69
60
  #endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_FRAME_SETTINGS_H */
@@ -64,9 +64,11 @@ grpc_error* grpc_chttp2_window_update_parser_begin_frame(
64
64
  return GRPC_ERROR_NONE;
65
65
  }
66
66
 
67
- grpc_error* grpc_chttp2_window_update_parser_parse(
68
- grpc_exec_ctx* exec_ctx, void* parser, grpc_chttp2_transport* t,
69
- grpc_chttp2_stream* s, grpc_slice slice, int is_last) {
67
+ grpc_error* grpc_chttp2_window_update_parser_parse(void* parser,
68
+ grpc_chttp2_transport* t,
69
+ grpc_chttp2_stream* s,
70
+ grpc_slice slice,
71
+ int is_last) {
70
72
  uint8_t* const beg = GRPC_SLICE_START_PTR(slice);
71
73
  uint8_t* const end = GRPC_SLICE_END_PTR(slice);
72
74
  uint8_t* cur = beg;
@@ -98,10 +100,9 @@ grpc_error* grpc_chttp2_window_update_parser_parse(
98
100
  if (s != nullptr) {
99
101
  s->flow_control->RecvUpdate(received_update);
100
102
  if (grpc_chttp2_list_remove_stalled_by_stream(t, s)) {
101
- grpc_chttp2_mark_stream_writable(exec_ctx, t, s);
103
+ grpc_chttp2_mark_stream_writable(t, s);
102
104
  grpc_chttp2_initiate_write(
103
- exec_ctx, t,
104
- GRPC_CHTTP2_INITIATE_WRITE_FLOW_CONTROL_UNSTALLED_BY_UPDATE);
105
+ t, GRPC_CHTTP2_INITIATE_WRITE_FLOW_CONTROL_UNSTALLED_BY_UPDATE);
105
106
  }
106
107
  }
107
108
  } else {
@@ -110,8 +111,7 @@ grpc_error* grpc_chttp2_window_update_parser_parse(
110
111
  bool is_zero = t->flow_control->remote_window() <= 0;
111
112
  if (was_zero && !is_zero) {
112
113
  grpc_chttp2_initiate_write(
113
- exec_ctx, t,
114
- GRPC_CHTTP2_INITIATE_WRITE_TRANSPORT_FLOW_CONTROL_UNSTALLED);
114
+ t, GRPC_CHTTP2_INITIATE_WRITE_TRANSPORT_FLOW_CONTROL_UNSTALLED);
115
115
  }
116
116
  }
117
117
  }
@@ -24,10 +24,6 @@
24
24
  #include "src/core/lib/iomgr/exec_ctx.h"
25
25
  #include "src/core/lib/transport/transport.h"
26
26
 
27
- #ifdef __cplusplus
28
- extern "C" {
29
- #endif
30
-
31
27
  typedef struct {
32
28
  uint8_t byte;
33
29
  uint8_t is_connection_update;
@@ -39,12 +35,10 @@ grpc_slice grpc_chttp2_window_update_create(
39
35
 
40
36
  grpc_error* grpc_chttp2_window_update_parser_begin_frame(
41
37
  grpc_chttp2_window_update_parser* parser, uint32_t length, uint8_t flags);
42
- grpc_error* grpc_chttp2_window_update_parser_parse(
43
- grpc_exec_ctx* exec_ctx, void* parser, grpc_chttp2_transport* t,
44
- grpc_chttp2_stream* s, grpc_slice slice, int is_last);
45
-
46
- #ifdef __cplusplus
47
- }
48
- #endif
38
+ grpc_error* grpc_chttp2_window_update_parser_parse(void* parser,
39
+ grpc_chttp2_transport* t,
40
+ grpc_chttp2_stream* s,
41
+ grpc_slice slice,
42
+ int is_last);
49
43
 
50
44
  #endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_FRAME_WINDOW_UPDATE_H */
@@ -206,14 +206,12 @@ static uint32_t prepare_space_for_new_elem(grpc_chttp2_hpack_compressor* c,
206
206
  }
207
207
 
208
208
  /* dummy function */
209
- static void add_nothing(grpc_exec_ctx* exec_ctx,
210
- grpc_chttp2_hpack_compressor* c, grpc_mdelem elem,
209
+ static void add_nothing(grpc_chttp2_hpack_compressor* c, grpc_mdelem elem,
211
210
  size_t elem_size) {}
212
211
 
213
212
  // Add a key to the dynamic table. Both key and value will be added to table at
214
213
  // the decoder.
215
- static void add_key_with_index(grpc_exec_ctx* exec_ctx,
216
- grpc_chttp2_hpack_compressor* c,
214
+ static void add_key_with_index(grpc_chttp2_hpack_compressor* c,
217
215
  grpc_mdelem elem, uint32_t new_index) {
218
216
  if (new_index == 0) {
219
217
  return;
@@ -240,14 +238,12 @@ static void add_key_with_index(grpc_exec_ctx* exec_ctx,
240
238
  c->indices_keys[HASH_FRAGMENT_3(key_hash)] = new_index;
241
239
  } else if (c->indices_keys[HASH_FRAGMENT_2(key_hash)] <
242
240
  c->indices_keys[HASH_FRAGMENT_3(key_hash)]) {
243
- grpc_slice_unref_internal(exec_ctx,
244
- c->entries_keys[HASH_FRAGMENT_2(key_hash)]);
241
+ grpc_slice_unref_internal(c->entries_keys[HASH_FRAGMENT_2(key_hash)]);
245
242
  c->entries_keys[HASH_FRAGMENT_2(key_hash)] =
246
243
  grpc_slice_ref_internal(GRPC_MDKEY(elem));
247
244
  c->indices_keys[HASH_FRAGMENT_2(key_hash)] = new_index;
248
245
  } else {
249
- grpc_slice_unref_internal(exec_ctx,
250
- c->entries_keys[HASH_FRAGMENT_3(key_hash)]);
246
+ grpc_slice_unref_internal(c->entries_keys[HASH_FRAGMENT_3(key_hash)]);
251
247
  c->entries_keys[HASH_FRAGMENT_3(key_hash)] =
252
248
  grpc_slice_ref_internal(GRPC_MDKEY(elem));
253
249
  c->indices_keys[HASH_FRAGMENT_3(key_hash)] = new_index;
@@ -255,8 +251,7 @@ static void add_key_with_index(grpc_exec_ctx* exec_ctx,
255
251
  }
256
252
 
257
253
  /* add an element to the decoder table */
258
- static void add_elem_with_index(grpc_exec_ctx* exec_ctx,
259
- grpc_chttp2_hpack_compressor* c,
254
+ static void add_elem_with_index(grpc_chttp2_hpack_compressor* c,
260
255
  grpc_mdelem elem, uint32_t new_index) {
261
256
  if (new_index == 0) {
262
257
  return;
@@ -286,35 +281,34 @@ static void add_elem_with_index(grpc_exec_ctx* exec_ctx,
286
281
  } else if (c->indices_elems[HASH_FRAGMENT_2(elem_hash)] <
287
282
  c->indices_elems[HASH_FRAGMENT_3(elem_hash)]) {
288
283
  /* not there: replace oldest */
289
- GRPC_MDELEM_UNREF(exec_ctx, c->entries_elems[HASH_FRAGMENT_2(elem_hash)]);
284
+ GRPC_MDELEM_UNREF(c->entries_elems[HASH_FRAGMENT_2(elem_hash)]);
290
285
  c->entries_elems[HASH_FRAGMENT_2(elem_hash)] = GRPC_MDELEM_REF(elem);
291
286
  c->indices_elems[HASH_FRAGMENT_2(elem_hash)] = new_index;
292
287
  } else {
293
288
  /* not there: replace oldest */
294
- GRPC_MDELEM_UNREF(exec_ctx, c->entries_elems[HASH_FRAGMENT_3(elem_hash)]);
289
+ GRPC_MDELEM_UNREF(c->entries_elems[HASH_FRAGMENT_3(elem_hash)]);
295
290
  c->entries_elems[HASH_FRAGMENT_3(elem_hash)] = GRPC_MDELEM_REF(elem);
296
291
  c->indices_elems[HASH_FRAGMENT_3(elem_hash)] = new_index;
297
292
  }
298
293
 
299
- add_key_with_index(exec_ctx, c, elem, new_index);
294
+ add_key_with_index(c, elem, new_index);
300
295
  }
301
296
 
302
- static void add_elem(grpc_exec_ctx* exec_ctx, grpc_chttp2_hpack_compressor* c,
303
- grpc_mdelem elem, size_t elem_size) {
297
+ static void add_elem(grpc_chttp2_hpack_compressor* c, grpc_mdelem elem,
298
+ size_t elem_size) {
304
299
  uint32_t new_index = prepare_space_for_new_elem(c, elem_size);
305
- add_elem_with_index(exec_ctx, c, elem, new_index);
300
+ add_elem_with_index(c, elem, new_index);
306
301
  }
307
302
 
308
- static void add_key(grpc_exec_ctx* exec_ctx, grpc_chttp2_hpack_compressor* c,
309
- grpc_mdelem elem, size_t elem_size) {
303
+ static void add_key(grpc_chttp2_hpack_compressor* c, grpc_mdelem elem,
304
+ size_t elem_size) {
310
305
  uint32_t new_index = prepare_space_for_new_elem(c, elem_size);
311
- add_key_with_index(exec_ctx, c, elem, new_index);
306
+ add_key_with_index(c, elem, new_index);
312
307
  }
313
308
 
314
- static void emit_indexed(grpc_exec_ctx* exec_ctx,
315
- grpc_chttp2_hpack_compressor* c, uint32_t elem_index,
309
+ static void emit_indexed(grpc_chttp2_hpack_compressor* c, uint32_t elem_index,
316
310
  framer_state* st) {
317
- GRPC_STATS_INC_HPACK_SEND_INDEXED(exec_ctx);
311
+ GRPC_STATS_INC_HPACK_SEND_INDEXED();
318
312
  uint32_t len = GRPC_CHTTP2_VARINT_LENGTH(elem_index, 1);
319
313
  GRPC_CHTTP2_WRITE_VARINT(elem_index, 1, 0x80, add_tiny_header_data(st, len),
320
314
  len);
@@ -326,18 +320,17 @@ typedef struct {
326
320
  bool insert_null_before_wire_value;
327
321
  } wire_value;
328
322
 
329
- static wire_value get_wire_value(grpc_exec_ctx* exec_ctx, grpc_mdelem elem,
330
- bool true_binary_enabled) {
323
+ static wire_value get_wire_value(grpc_mdelem elem, bool true_binary_enabled) {
331
324
  wire_value wire_val;
332
325
  if (grpc_is_binary_header(GRPC_MDKEY(elem))) {
333
326
  if (true_binary_enabled) {
334
- GRPC_STATS_INC_HPACK_SEND_BINARY(exec_ctx);
327
+ GRPC_STATS_INC_HPACK_SEND_BINARY();
335
328
  wire_val.huffman_prefix = 0x00;
336
329
  wire_val.insert_null_before_wire_value = true;
337
330
  wire_val.data = grpc_slice_ref_internal(GRPC_MDVALUE(elem));
338
331
 
339
332
  } else {
340
- GRPC_STATS_INC_HPACK_SEND_BINARY_BASE64(exec_ctx);
333
+ GRPC_STATS_INC_HPACK_SEND_BINARY_BASE64();
341
334
  wire_val.huffman_prefix = 0x80;
342
335
  wire_val.insert_null_before_wire_value = false;
343
336
  wire_val.data =
@@ -345,7 +338,7 @@ static wire_value get_wire_value(grpc_exec_ctx* exec_ctx, grpc_mdelem elem,
345
338
  }
346
339
  } else {
347
340
  /* TODO(ctiller): opportunistically compress non-binary headers */
348
- GRPC_STATS_INC_HPACK_SEND_UNCOMPRESSED(exec_ctx);
341
+ GRPC_STATS_INC_HPACK_SEND_UNCOMPRESSED();
349
342
  wire_val.huffman_prefix = 0x00;
350
343
  wire_val.insert_null_before_wire_value = false;
351
344
  wire_val.data = grpc_slice_ref_internal(GRPC_MDVALUE(elem));
@@ -362,14 +355,12 @@ static void add_wire_value(framer_state* st, wire_value v) {
362
355
  add_header_data(st, v.data);
363
356
  }
364
357
 
365
- static void emit_lithdr_incidx(grpc_exec_ctx* exec_ctx,
366
- grpc_chttp2_hpack_compressor* c,
358
+ static void emit_lithdr_incidx(grpc_chttp2_hpack_compressor* c,
367
359
  uint32_t key_index, grpc_mdelem elem,
368
360
  framer_state* st) {
369
- GRPC_STATS_INC_HPACK_SEND_LITHDR_INCIDX(exec_ctx);
361
+ GRPC_STATS_INC_HPACK_SEND_LITHDR_INCIDX();
370
362
  uint32_t len_pfx = GRPC_CHTTP2_VARINT_LENGTH(key_index, 2);
371
- wire_value value =
372
- get_wire_value(exec_ctx, elem, st->use_true_binary_metadata);
363
+ wire_value value = get_wire_value(elem, st->use_true_binary_metadata);
373
364
  size_t len_val = wire_value_length(value);
374
365
  uint32_t len_val_len;
375
366
  GPR_ASSERT(len_val <= UINT32_MAX);
@@ -381,14 +372,12 @@ static void emit_lithdr_incidx(grpc_exec_ctx* exec_ctx,
381
372
  add_wire_value(st, value);
382
373
  }
383
374
 
384
- static void emit_lithdr_noidx(grpc_exec_ctx* exec_ctx,
385
- grpc_chttp2_hpack_compressor* c,
375
+ static void emit_lithdr_noidx(grpc_chttp2_hpack_compressor* c,
386
376
  uint32_t key_index, grpc_mdelem elem,
387
377
  framer_state* st) {
388
- GRPC_STATS_INC_HPACK_SEND_LITHDR_NOTIDX(exec_ctx);
378
+ GRPC_STATS_INC_HPACK_SEND_LITHDR_NOTIDX();
389
379
  uint32_t len_pfx = GRPC_CHTTP2_VARINT_LENGTH(key_index, 4);
390
- wire_value value =
391
- get_wire_value(exec_ctx, elem, st->use_true_binary_metadata);
380
+ wire_value value = get_wire_value(elem, st->use_true_binary_metadata);
392
381
  size_t len_val = wire_value_length(value);
393
382
  uint32_t len_val_len;
394
383
  GPR_ASSERT(len_val <= UINT32_MAX);
@@ -400,16 +389,14 @@ static void emit_lithdr_noidx(grpc_exec_ctx* exec_ctx,
400
389
  add_wire_value(st, value);
401
390
  }
402
391
 
403
- static void emit_lithdr_incidx_v(grpc_exec_ctx* exec_ctx,
404
- grpc_chttp2_hpack_compressor* c,
392
+ static void emit_lithdr_incidx_v(grpc_chttp2_hpack_compressor* c,
405
393
  uint32_t unused_index, grpc_mdelem elem,
406
394
  framer_state* st) {
407
395
  GPR_ASSERT(unused_index == 0);
408
- GRPC_STATS_INC_HPACK_SEND_LITHDR_INCIDX_V(exec_ctx);
409
- GRPC_STATS_INC_HPACK_SEND_UNCOMPRESSED(exec_ctx);
396
+ GRPC_STATS_INC_HPACK_SEND_LITHDR_INCIDX_V();
397
+ GRPC_STATS_INC_HPACK_SEND_UNCOMPRESSED();
410
398
  uint32_t len_key = (uint32_t)GRPC_SLICE_LENGTH(GRPC_MDKEY(elem));
411
- wire_value value =
412
- get_wire_value(exec_ctx, elem, st->use_true_binary_metadata);
399
+ wire_value value = get_wire_value(elem, st->use_true_binary_metadata);
413
400
  uint32_t len_val = (uint32_t)wire_value_length(value);
414
401
  uint32_t len_key_len = GRPC_CHTTP2_VARINT_LENGTH(len_key, 1);
415
402
  uint32_t len_val_len = GRPC_CHTTP2_VARINT_LENGTH(len_val, 1);
@@ -424,16 +411,14 @@ static void emit_lithdr_incidx_v(grpc_exec_ctx* exec_ctx,
424
411
  add_wire_value(st, value);
425
412
  }
426
413
 
427
- static void emit_lithdr_noidx_v(grpc_exec_ctx* exec_ctx,
428
- grpc_chttp2_hpack_compressor* c,
414
+ static void emit_lithdr_noidx_v(grpc_chttp2_hpack_compressor* c,
429
415
  uint32_t unused_index, grpc_mdelem elem,
430
416
  framer_state* st) {
431
417
  GPR_ASSERT(unused_index == 0);
432
- GRPC_STATS_INC_HPACK_SEND_LITHDR_NOTIDX_V(exec_ctx);
433
- GRPC_STATS_INC_HPACK_SEND_UNCOMPRESSED(exec_ctx);
418
+ GRPC_STATS_INC_HPACK_SEND_LITHDR_NOTIDX_V();
419
+ GRPC_STATS_INC_HPACK_SEND_UNCOMPRESSED();
434
420
  uint32_t len_key = (uint32_t)GRPC_SLICE_LENGTH(GRPC_MDKEY(elem));
435
- wire_value value =
436
- get_wire_value(exec_ctx, elem, st->use_true_binary_metadata);
421
+ wire_value value = get_wire_value(elem, st->use_true_binary_metadata);
437
422
  uint32_t len_val = (uint32_t)wire_value_length(value);
438
423
  uint32_t len_key_len = GRPC_CHTTP2_VARINT_LENGTH(len_key, 1);
439
424
  uint32_t len_val_len = GRPC_CHTTP2_VARINT_LENGTH(len_val, 1);
@@ -462,8 +447,8 @@ static uint32_t dynidx(grpc_chttp2_hpack_compressor* c, uint32_t elem_index) {
462
447
  }
463
448
 
464
449
  /* encode an mdelem */
465
- static void hpack_enc(grpc_exec_ctx* exec_ctx, grpc_chttp2_hpack_compressor* c,
466
- grpc_mdelem elem, framer_state* st) {
450
+ static void hpack_enc(grpc_chttp2_hpack_compressor* c, grpc_mdelem elem,
451
+ framer_state* st) {
467
452
  GPR_ASSERT(GRPC_SLICE_LENGTH(GRPC_MDKEY(elem)) > 0);
468
453
  if (GRPC_SLICE_START_PTR(GRPC_MDKEY(elem))[0] != ':') { /* regular header */
469
454
  st->seen_regular_header = 1;
@@ -496,7 +481,7 @@ static void hpack_enc(grpc_exec_ctx* exec_ctx, grpc_chttp2_hpack_compressor* c,
496
481
 
497
482
  // Key is not interned, emit literals.
498
483
  if (!key_interned) {
499
- emit_lithdr_noidx_v(exec_ctx, c, 0, elem, st);
484
+ emit_lithdr_noidx_v(c, 0, elem, st);
500
485
  return;
501
486
  }
502
487
 
@@ -515,16 +500,16 @@ static void hpack_enc(grpc_exec_ctx* exec_ctx, grpc_chttp2_hpack_compressor* c,
515
500
  if (grpc_mdelem_eq(c->entries_elems[HASH_FRAGMENT_2(elem_hash)], elem) &&
516
501
  c->indices_elems[HASH_FRAGMENT_2(elem_hash)] > c->tail_remote_index) {
517
502
  /* HIT: complete element (first cuckoo hash) */
518
- emit_indexed(exec_ctx, c,
519
- dynidx(c, c->indices_elems[HASH_FRAGMENT_2(elem_hash)]), st);
503
+ emit_indexed(c, dynidx(c, c->indices_elems[HASH_FRAGMENT_2(elem_hash)]),
504
+ st);
520
505
  return;
521
506
  }
522
507
 
523
508
  if (grpc_mdelem_eq(c->entries_elems[HASH_FRAGMENT_3(elem_hash)], elem) &&
524
509
  c->indices_elems[HASH_FRAGMENT_3(elem_hash)] > c->tail_remote_index) {
525
510
  /* HIT: complete element (second cuckoo hash) */
526
- emit_indexed(exec_ctx, c,
527
- dynidx(c, c->indices_elems[HASH_FRAGMENT_3(elem_hash)]), st);
511
+ emit_indexed(c, dynidx(c, c->indices_elems[HASH_FRAGMENT_3(elem_hash)]),
512
+ st);
528
513
  return;
529
514
  }
530
515
  }
@@ -538,10 +523,10 @@ static void hpack_enc(grpc_exec_ctx* exec_ctx, grpc_chttp2_hpack_compressor* c,
538
523
  decoder_space_usage < MAX_DECODER_SPACE_USAGE &&
539
524
  c->filter_elems[HASH_FRAGMENT_1(elem_hash)] >=
540
525
  c->filter_elems_sum / ONE_ON_ADD_PROBABILITY;
541
- void (*maybe_add)(grpc_exec_ctx*, grpc_chttp2_hpack_compressor*, grpc_mdelem,
542
- size_t) = should_add_elem ? add_elem : add_nothing;
543
- void (*emit)(grpc_exec_ctx*, grpc_chttp2_hpack_compressor*, uint32_t,
544
- grpc_mdelem, framer_state*) =
526
+ void (*maybe_add)(grpc_chttp2_hpack_compressor*, grpc_mdelem, size_t) =
527
+ should_add_elem ? add_elem : add_nothing;
528
+ void (*emit)(grpc_chttp2_hpack_compressor*, uint32_t, grpc_mdelem,
529
+ framer_state*) =
545
530
  should_add_elem ? emit_lithdr_incidx : emit_lithdr_noidx;
546
531
 
547
532
  /* no hits for the elem... maybe there's a key? */
@@ -550,8 +535,8 @@ static void hpack_enc(grpc_exec_ctx* exec_ctx, grpc_chttp2_hpack_compressor* c,
550
535
  GRPC_MDKEY(elem)) &&
551
536
  indices_key > c->tail_remote_index) {
552
537
  /* HIT: key (first cuckoo hash) */
553
- emit(exec_ctx, c, dynidx(c, indices_key), elem, st);
554
- maybe_add(exec_ctx, c, elem, decoder_space_usage);
538
+ emit(c, dynidx(c, indices_key), elem, st);
539
+ maybe_add(c, elem, decoder_space_usage);
555
540
  return;
556
541
  }
557
542
 
@@ -560,8 +545,8 @@ static void hpack_enc(grpc_exec_ctx* exec_ctx, grpc_chttp2_hpack_compressor* c,
560
545
  GRPC_MDKEY(elem)) &&
561
546
  indices_key > c->tail_remote_index) {
562
547
  /* HIT: key (first cuckoo hash) */
563
- emit(exec_ctx, c, dynidx(c, indices_key), elem, st);
564
- maybe_add(exec_ctx, c, elem, decoder_space_usage);
548
+ emit(c, dynidx(c, indices_key), elem, st);
549
+ maybe_add(c, elem, decoder_space_usage);
565
550
  return;
566
551
  }
567
552
 
@@ -572,24 +557,23 @@ static void hpack_enc(grpc_exec_ctx* exec_ctx, grpc_chttp2_hpack_compressor* c,
572
557
  : emit_lithdr_noidx_v;
573
558
  maybe_add =
574
559
  should_add_elem ? add_elem : (should_add_key ? add_key : add_nothing);
575
- emit(exec_ctx, c, 0, elem, st);
576
- maybe_add(exec_ctx, c, elem, decoder_space_usage);
560
+ emit(c, 0, elem, st);
561
+ maybe_add(c, elem, decoder_space_usage);
577
562
  }
578
563
 
579
564
  #define STRLEN_LIT(x) (sizeof(x) - 1)
580
565
  #define TIMEOUT_KEY "grpc-timeout"
581
566
 
582
- static void deadline_enc(grpc_exec_ctx* exec_ctx,
583
- grpc_chttp2_hpack_compressor* c, grpc_millis deadline,
567
+ static void deadline_enc(grpc_chttp2_hpack_compressor* c, grpc_millis deadline,
584
568
  framer_state* st) {
585
569
  char timeout_str[GRPC_HTTP2_TIMEOUT_ENCODE_MIN_BUFSIZE];
586
570
  grpc_mdelem mdelem;
587
- grpc_http2_encode_timeout(deadline - grpc_exec_ctx_now(exec_ctx),
571
+ grpc_http2_encode_timeout(deadline - grpc_core::ExecCtx::Get()->Now(),
588
572
  timeout_str);
589
- mdelem = grpc_mdelem_from_slices(exec_ctx, GRPC_MDSTR_GRPC_TIMEOUT,
573
+ mdelem = grpc_mdelem_from_slices(GRPC_MDSTR_GRPC_TIMEOUT,
590
574
  grpc_slice_from_copied_string(timeout_str));
591
- hpack_enc(exec_ctx, c, mdelem, st);
592
- GRPC_MDELEM_UNREF(exec_ctx, mdelem);
575
+ hpack_enc(c, mdelem, st);
576
+ GRPC_MDELEM_UNREF(mdelem);
593
577
  }
594
578
 
595
579
  static uint32_t elems_for_bytes(uint32_t bytes) { return (bytes + 31) / 32; }
@@ -609,14 +593,13 @@ void grpc_chttp2_hpack_compressor_init(grpc_chttp2_hpack_compressor* c) {
609
593
  }
610
594
  }
611
595
 
612
- void grpc_chttp2_hpack_compressor_destroy(grpc_exec_ctx* exec_ctx,
613
- grpc_chttp2_hpack_compressor* c) {
596
+ void grpc_chttp2_hpack_compressor_destroy(grpc_chttp2_hpack_compressor* c) {
614
597
  int i;
615
598
  for (i = 0; i < GRPC_CHTTP2_HPACKC_NUM_VALUES; i++) {
616
599
  if (c->entries_keys[i].refcount != &terminal_slice_refcount) {
617
- grpc_slice_unref_internal(exec_ctx, c->entries_keys[i]);
600
+ grpc_slice_unref_internal(c->entries_keys[i]);
618
601
  }
619
- GRPC_MDELEM_UNREF(exec_ctx, c->entries_elems[i]);
602
+ GRPC_MDELEM_UNREF(c->entries_elems[i]);
620
603
  }
621
604
  gpr_free(c->table_elem_size);
622
605
  }
@@ -672,8 +655,7 @@ void grpc_chttp2_hpack_compressor_set_max_table_size(
672
655
  }
673
656
  }
674
657
 
675
- void grpc_chttp2_encode_header(grpc_exec_ctx* exec_ctx,
676
- grpc_chttp2_hpack_compressor* c,
658
+ void grpc_chttp2_encode_header(grpc_chttp2_hpack_compressor* c,
677
659
  grpc_mdelem** extra_headers,
678
660
  size_t extra_headers_size,
679
661
  grpc_metadata_batch* metadata,
@@ -699,15 +681,15 @@ void grpc_chttp2_encode_header(grpc_exec_ctx* exec_ctx,
699
681
  emit_advertise_table_size_change(c, &st);
700
682
  }
701
683
  for (size_t i = 0; i < extra_headers_size; ++i) {
702
- hpack_enc(exec_ctx, c, *extra_headers[i], &st);
684
+ hpack_enc(c, *extra_headers[i], &st);
703
685
  }
704
686
  grpc_metadata_batch_assert_ok(metadata);
705
687
  for (grpc_linked_mdelem* l = metadata->list.head; l; l = l->next) {
706
- hpack_enc(exec_ctx, c, l->md, &st);
688
+ hpack_enc(c, l->md, &st);
707
689
  }
708
690
  grpc_millis deadline = metadata->deadline;
709
691
  if (deadline != GRPC_MILLIS_INF_FUTURE) {
710
- deadline_enc(exec_ctx, c, deadline, &st);
692
+ deadline_enc(c, deadline, &st);
711
693
  }
712
694
 
713
695
  finish_frame(&st, 1, options->is_eof);
@@ -36,10 +36,6 @@
36
36
 
37
37
  extern grpc_core::TraceFlag grpc_http_trace;
38
38
 
39
- #ifdef __cplusplus
40
- extern "C" {
41
- #endif
42
-
43
39
  typedef struct {
44
40
  uint32_t filter_elems_sum;
45
41
  uint32_t max_table_size;
@@ -74,8 +70,7 @@ typedef struct {
74
70
  } grpc_chttp2_hpack_compressor;
75
71
 
76
72
  void grpc_chttp2_hpack_compressor_init(grpc_chttp2_hpack_compressor* c);
77
- void grpc_chttp2_hpack_compressor_destroy(grpc_exec_ctx* exec_ctx,
78
- grpc_chttp2_hpack_compressor* c);
73
+ void grpc_chttp2_hpack_compressor_destroy(grpc_chttp2_hpack_compressor* c);
79
74
  void grpc_chttp2_hpack_compressor_set_max_table_size(
80
75
  grpc_chttp2_hpack_compressor* c, uint32_t max_table_size);
81
76
  void grpc_chttp2_hpack_compressor_set_max_usable_size(
@@ -89,16 +84,11 @@ typedef struct {
89
84
  grpc_transport_one_way_stats* stats;
90
85
  } grpc_encode_header_options;
91
86
 
92
- void grpc_chttp2_encode_header(grpc_exec_ctx* exec_ctx,
93
- grpc_chttp2_hpack_compressor* c,
87
+ void grpc_chttp2_encode_header(grpc_chttp2_hpack_compressor* c,
94
88
  grpc_mdelem** extra_headers,
95
89
  size_t extra_headers_size,
96
90
  grpc_metadata_batch* metadata,
97
91
  const grpc_encode_header_options* options,
98
92
  grpc_slice_buffer* outbuf);
99
93
 
100
- #ifdef __cplusplus
101
- }
102
- #endif
103
-
104
94
  #endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HPACK_ENCODER_H */