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
@@ -23,11 +23,11 @@
23
23
  #include <grpc/support/log.h>
24
24
  #include <grpc/support/string_util.h>
25
25
 
26
+ #include "src/core/lib/gpr/string.h"
26
27
  #include "src/core/lib/json/json.h"
27
28
  #include "src/core/lib/slice/slice_hash_table.h"
28
29
  #include "src/core/lib/slice/slice_internal.h"
29
30
  #include "src/core/lib/slice/slice_string_helpers.h"
30
- #include "src/core/lib/support/string.h"
31
31
 
32
32
  // The main purpose of the code here is to parse the service config in
33
33
  // JSON form, which will look like this:
@@ -152,10 +152,8 @@ static char* parse_json_method_name(grpc_json* json) {
152
152
  // each name found, incrementing \a idx for each entry added.
153
153
  // Returns false on error.
154
154
  static bool parse_json_method_config(
155
- grpc_exec_ctx* exec_ctx, grpc_json* json,
156
- void* (*create_value)(const grpc_json* method_config_json),
157
- void* (*ref_value)(void* value),
158
- void (*unref_value)(grpc_exec_ctx* exec_ctx, void* value),
155
+ grpc_json* json, void* (*create_value)(const grpc_json* method_config_json),
156
+ void* (*ref_value)(void* value), void (*unref_value)(void* value),
159
157
  grpc_slice_hash_table_entry* entries, size_t* idx) {
160
158
  // Construct value.
161
159
  void* method_config = create_value(json);
@@ -184,16 +182,15 @@ static bool parse_json_method_config(
184
182
  }
185
183
  success = true;
186
184
  done:
187
- unref_value(exec_ctx, method_config);
185
+ unref_value(method_config);
188
186
  gpr_strvec_destroy(&paths);
189
187
  return success;
190
188
  }
191
189
 
192
190
  grpc_slice_hash_table* grpc_service_config_create_method_config_table(
193
- grpc_exec_ctx* exec_ctx, const grpc_service_config* service_config,
191
+ const grpc_service_config* service_config,
194
192
  void* (*create_value)(const grpc_json* method_config_json),
195
- void* (*ref_value)(void* value),
196
- void (*unref_value)(grpc_exec_ctx* exec_ctx, void* value)) {
193
+ void* (*ref_value)(void* value), void (*unref_value)(void* value)) {
197
194
  const grpc_json* json = service_config->json_tree;
198
195
  // Traverse parsed JSON tree.
199
196
  if (json->type != GRPC_JSON_OBJECT || json->key != nullptr) return nullptr;
@@ -217,11 +214,11 @@ grpc_slice_hash_table* grpc_service_config_create_method_config_table(
217
214
  size_t idx = 0;
218
215
  for (grpc_json* method = field->child; method != nullptr;
219
216
  method = method->next) {
220
- if (!parse_json_method_config(exec_ctx, method, create_value, ref_value,
217
+ if (!parse_json_method_config(method, create_value, ref_value,
221
218
  unref_value, entries, &idx)) {
222
219
  for (size_t i = 0; i < idx; ++i) {
223
- grpc_slice_unref_internal(exec_ctx, entries[i].key);
224
- unref_value(exec_ctx, entries[i].value);
220
+ grpc_slice_unref_internal(entries[i].key);
221
+ unref_value(entries[i].value);
225
222
  }
226
223
  gpr_free(entries);
227
224
  return nullptr;
@@ -240,8 +237,7 @@ grpc_slice_hash_table* grpc_service_config_create_method_config_table(
240
237
  return method_config_table;
241
238
  }
242
239
 
243
- void* grpc_method_config_table_get(grpc_exec_ctx* exec_ctx,
244
- const grpc_slice_hash_table* table,
240
+ void* grpc_method_config_table_get(const grpc_slice_hash_table* table,
245
241
  grpc_slice path) {
246
242
  void* value = grpc_slice_hash_table_get(table, path);
247
243
  // If we didn't find a match for the path, try looking for a wildcard
@@ -257,7 +253,7 @@ void* grpc_method_config_table_get(grpc_exec_ctx* exec_ctx,
257
253
  grpc_slice wildcard_path = grpc_slice_from_copied_string(buf);
258
254
  gpr_free(buf);
259
255
  value = grpc_slice_hash_table_get(table, wildcard_path);
260
- grpc_slice_unref_internal(exec_ctx, wildcard_path);
256
+ grpc_slice_unref_internal(wildcard_path);
261
257
  gpr_free(path_str);
262
258
  }
263
259
  return value;
@@ -22,10 +22,6 @@
22
22
  #include "src/core/lib/json/json.h"
23
23
  #include "src/core/lib/slice/slice_hash_table.h"
24
24
 
25
- #ifdef __cplusplus
26
- extern "C" {
27
- #endif
28
-
29
25
  typedef struct grpc_service_config grpc_service_config;
30
26
 
31
27
  grpc_service_config* grpc_service_config_create(const char* json_string);
@@ -49,10 +45,9 @@ const char* grpc_service_config_get_lb_policy_name(
49
45
  /// \a ref_value() and \a unref_value() are used to ref and unref values.
50
46
  /// Returns NULL on error.
51
47
  grpc_slice_hash_table* grpc_service_config_create_method_config_table(
52
- grpc_exec_ctx* exec_ctx, const grpc_service_config* service_config,
48
+ const grpc_service_config* service_config,
53
49
  void* (*create_value)(const grpc_json* method_config_json),
54
- void* (*ref_value)(void* value),
55
- void (*unref_value)(grpc_exec_ctx* exec_ctx, void* value));
50
+ void* (*ref_value)(void* value), void (*unref_value)(void* value));
56
51
 
57
52
  /// A helper function for looking up values in the table returned by
58
53
  /// \a grpc_service_config_create_method_config_table().
@@ -60,12 +55,7 @@ grpc_slice_hash_table* grpc_service_config_create_method_config_table(
60
55
  /// the form "/service/method".
61
56
  /// Returns NULL if the method has no config.
62
57
  /// Caller does NOT own a reference to the result.
63
- void* grpc_method_config_table_get(grpc_exec_ctx* exec_ctx,
64
- const grpc_slice_hash_table* table,
58
+ void* grpc_method_config_table_get(const grpc_slice_hash_table* table,
65
59
  grpc_slice path);
66
60
 
67
- #ifdef __cplusplus
68
- }
69
- #endif
70
-
71
61
  #endif /* GRPC_CORE_LIB_TRANSPORT_SERVICE_CONFIG_H */
@@ -104,7 +104,7 @@ static uint8_t g_bytes[] = {
104
104
  101, 44, 103, 122, 105, 112};
105
105
 
106
106
  static void static_ref(void* unused) {}
107
- static void static_unref(grpc_exec_ctx* exec_ctx, void* unused) {}
107
+ static void static_unref(void* unused) {}
108
108
  static const grpc_slice_refcount_vtable static_sub_vtable = {
109
109
  static_ref, static_unref, grpc_slice_default_eq_impl,
110
110
  grpc_slice_default_hash_impl};
@@ -27,10 +27,6 @@
27
27
  #ifndef GRPC_CORE_LIB_TRANSPORT_STATIC_METADATA_H
28
28
  #define GRPC_CORE_LIB_TRANSPORT_STATIC_METADATA_H
29
29
 
30
- #ifdef __cplusplus
31
- extern "C" {
32
- #endif
33
-
34
30
  #include "src/core/lib/transport/metadata.h"
35
31
 
36
32
  #define GRPC_STATIC_MDSTR_COUNT 100
@@ -588,7 +584,5 @@ extern const uint8_t grpc_static_accept_stream_encoding_metadata[4];
588
584
  (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table \
589
585
  [grpc_static_accept_stream_encoding_metadata[(algs)]], \
590
586
  GRPC_MDELEM_STORAGE_STATIC))
591
- #ifdef __cplusplus
592
- }
593
- #endif
587
+
594
588
  #endif /* GRPC_CORE_LIB_TRANSPORT_STATIC_METADATA_H */
@@ -37,8 +37,7 @@ grpc_http2_error_code grpc_status_to_http2_error(grpc_status_code status) {
37
37
  }
38
38
  }
39
39
 
40
- grpc_status_code grpc_http2_error_to_grpc_status(grpc_exec_ctx* exec_ctx,
41
- grpc_http2_error_code error,
40
+ grpc_status_code grpc_http2_error_to_grpc_status(grpc_http2_error_code error,
42
41
  grpc_millis deadline) {
43
42
  switch (error) {
44
43
  case GRPC_HTTP2_NO_ERROR:
@@ -47,7 +46,7 @@ grpc_status_code grpc_http2_error_to_grpc_status(grpc_exec_ctx* exec_ctx,
47
46
  case GRPC_HTTP2_CANCEL:
48
47
  /* http2 cancel translates to STATUS_CANCELLED iff deadline hasn't been
49
48
  * exceeded */
50
- return grpc_exec_ctx_now(exec_ctx) > deadline
49
+ return grpc_core::ExecCtx::Get()->Now() > deadline
51
50
  ? GRPC_STATUS_DEADLINE_EXCEEDED
52
51
  : GRPC_STATUS_CANCELLED;
53
52
  case GRPC_HTTP2_ENHANCE_YOUR_CALM:
@@ -23,22 +23,13 @@
23
23
  #include "src/core/lib/iomgr/exec_ctx.h"
24
24
  #include "src/core/lib/transport/http2_errors.h"
25
25
 
26
- #ifdef __cplusplus
27
- extern "C" {
28
- #endif
29
-
30
26
  /* Conversion of grpc status codes to http2 error codes (for RST_STREAM) */
31
27
  grpc_http2_error_code grpc_status_to_http2_error(grpc_status_code status);
32
- grpc_status_code grpc_http2_error_to_grpc_status(grpc_exec_ctx* exec_ctx,
33
- grpc_http2_error_code error,
28
+ grpc_status_code grpc_http2_error_to_grpc_status(grpc_http2_error_code error,
34
29
  grpc_millis deadline);
35
30
 
36
31
  /* Conversion of HTTP status codes (:status) to grpc status codes */
37
32
  grpc_status_code grpc_http2_status_to_grpc_status(int status);
38
33
  int grpc_status_to_http2_status(grpc_status_code status);
39
34
 
40
- #ifdef __cplusplus
41
- }
42
- #endif
43
-
44
35
  #endif /* GRPC_CORE_LIB_TRANSPORT_STATUS_CONVERSION_H */
@@ -22,7 +22,7 @@
22
22
  #include <string.h>
23
23
 
24
24
  #include <grpc/support/port_platform.h>
25
- #include "src/core/lib/support/string.h"
25
+ #include "src/core/lib/gpr/string.h"
26
26
 
27
27
  static int64_t round_up(int64_t x, int64_t divisor) {
28
28
  return (x / divisor + (x % divisor != 0)) * divisor;
@@ -22,22 +22,14 @@
22
22
  #include <grpc/slice.h>
23
23
  #include <grpc/support/time.h>
24
24
 
25
+ #include "src/core/lib/gpr/string.h"
25
26
  #include "src/core/lib/iomgr/exec_ctx.h"
26
- #include "src/core/lib/support/string.h"
27
27
 
28
28
  #define GRPC_HTTP2_TIMEOUT_ENCODE_MIN_BUFSIZE (GPR_LTOA_MIN_BUFSIZE + 1)
29
29
 
30
- #ifdef __cplusplus
31
- extern "C" {
32
- #endif
33
-
34
30
  /* Encode/decode timeouts to the GRPC over HTTP/2 format;
35
31
  encoding may round up arbitrarily */
36
32
  void grpc_http2_encode_timeout(grpc_millis timeout, char* buffer);
37
33
  int grpc_http2_decode_timeout(grpc_slice text, grpc_millis* timeout);
38
34
 
39
- #ifdef __cplusplus
40
- }
41
- #endif
42
-
43
35
  #endif /* GRPC_CORE_LIB_TRANSPORT_TIMEOUT_ENCODING_H */
@@ -25,10 +25,10 @@
25
25
  #include <grpc/support/log.h>
26
26
  #include <grpc/support/sync.h>
27
27
 
28
+ #include "src/core/lib/gpr/string.h"
28
29
  #include "src/core/lib/iomgr/executor.h"
29
30
  #include "src/core/lib/slice/slice_internal.h"
30
31
  #include "src/core/lib/slice/slice_string_helpers.h"
31
- #include "src/core/lib/support/string.h"
32
32
  #include "src/core/lib/transport/transport_impl.h"
33
33
 
34
34
  grpc_core::DebugOnlyTraceFlag grpc_trace_stream_refcount(false,
@@ -49,8 +49,7 @@ void grpc_stream_ref(grpc_stream_refcount* refcount) {
49
49
  }
50
50
 
51
51
  #ifndef NDEBUG
52
- void grpc_stream_unref(grpc_exec_ctx* exec_ctx, grpc_stream_refcount* refcount,
53
- const char* reason) {
52
+ void grpc_stream_unref(grpc_stream_refcount* refcount, const char* reason) {
54
53
  if (grpc_trace_stream_refcount.enabled()) {
55
54
  gpr_atm val = gpr_atm_no_barrier_load(&refcount->refs.count);
56
55
  gpr_log(GPR_DEBUG, "%s %p:%p UNREF %" PRIdPTR "->%" PRIdPTR " %s",
@@ -58,11 +57,11 @@ void grpc_stream_unref(grpc_exec_ctx* exec_ctx, grpc_stream_refcount* refcount,
58
57
  val - 1, reason);
59
58
  }
60
59
  #else
61
- void grpc_stream_unref(grpc_exec_ctx* exec_ctx,
62
- grpc_stream_refcount* refcount) {
60
+ void grpc_stream_unref(grpc_stream_refcount* refcount) {
63
61
  #endif
64
62
  if (gpr_unref(&refcount->refs)) {
65
- if (exec_ctx->flags & GRPC_EXEC_CTX_FLAG_THREAD_RESOURCE_LOOP) {
63
+ if (grpc_core::ExecCtx::Get()->flags() &
64
+ GRPC_EXEC_CTX_FLAG_THREAD_RESOURCE_LOOP) {
66
65
  /* Ick.
67
66
  The thread we're running on MAY be owned (indirectly) by a call-stack.
68
67
  If that's the case, destroying the call-stack MAY try to destroy the
@@ -73,7 +72,7 @@ void grpc_stream_unref(grpc_exec_ctx* exec_ctx,
73
72
  refcount->destroy.scheduler =
74
73
  grpc_executor_scheduler(GRPC_EXECUTOR_SHORT);
75
74
  }
76
- GRPC_CLOSURE_SCHED(exec_ctx, &refcount->destroy, GRPC_ERROR_NONE);
75
+ GRPC_CLOSURE_SCHED(&refcount->destroy, GRPC_ERROR_NONE);
77
76
  }
78
77
  }
79
78
 
@@ -89,11 +88,11 @@ static void slice_stream_ref(void* p) {
89
88
  #endif
90
89
  }
91
90
 
92
- static void slice_stream_unref(grpc_exec_ctx* exec_ctx, void* p) {
91
+ static void slice_stream_unref(void* p) {
93
92
  #ifndef NDEBUG
94
- grpc_stream_unref(exec_ctx, STREAM_REF_FROM_SLICE_REF(p), "slice");
93
+ grpc_stream_unref(STREAM_REF_FROM_SLICE_REF(p), "slice");
95
94
  #else
96
- grpc_stream_unref(exec_ctx, STREAM_REF_FROM_SLICE_REF(p));
95
+ grpc_stream_unref(STREAM_REF_FROM_SLICE_REF(p));
97
96
  #endif
98
97
  }
99
98
 
@@ -151,59 +150,50 @@ size_t grpc_transport_stream_size(grpc_transport* transport) {
151
150
  return transport->vtable->sizeof_stream;
152
151
  }
153
152
 
154
- void grpc_transport_destroy(grpc_exec_ctx* exec_ctx,
155
- grpc_transport* transport) {
156
- transport->vtable->destroy(exec_ctx, transport);
153
+ void grpc_transport_destroy(grpc_transport* transport) {
154
+ transport->vtable->destroy(transport);
157
155
  }
158
156
 
159
- int grpc_transport_init_stream(grpc_exec_ctx* exec_ctx,
160
- grpc_transport* transport, grpc_stream* stream,
157
+ int grpc_transport_init_stream(grpc_transport* transport, grpc_stream* stream,
161
158
  grpc_stream_refcount* refcount,
162
159
  const void* server_data, gpr_arena* arena) {
163
- return transport->vtable->init_stream(exec_ctx, transport, stream, refcount,
160
+ return transport->vtable->init_stream(transport, stream, refcount,
164
161
  server_data, arena);
165
162
  }
166
163
 
167
- void grpc_transport_perform_stream_op(grpc_exec_ctx* exec_ctx,
168
- grpc_transport* transport,
164
+ void grpc_transport_perform_stream_op(grpc_transport* transport,
169
165
  grpc_stream* stream,
170
166
  grpc_transport_stream_op_batch* op) {
171
- transport->vtable->perform_stream_op(exec_ctx, transport, stream, op);
167
+ transport->vtable->perform_stream_op(transport, stream, op);
172
168
  }
173
169
 
174
- void grpc_transport_perform_op(grpc_exec_ctx* exec_ctx,
175
- grpc_transport* transport,
170
+ void grpc_transport_perform_op(grpc_transport* transport,
176
171
  grpc_transport_op* op) {
177
- transport->vtable->perform_op(exec_ctx, transport, op);
172
+ transport->vtable->perform_op(transport, op);
178
173
  }
179
174
 
180
- void grpc_transport_set_pops(grpc_exec_ctx* exec_ctx, grpc_transport* transport,
181
- grpc_stream* stream,
175
+ void grpc_transport_set_pops(grpc_transport* transport, grpc_stream* stream,
182
176
  grpc_polling_entity* pollent) {
183
177
  grpc_pollset* pollset;
184
178
  grpc_pollset_set* pollset_set;
185
179
  if ((pollset = grpc_polling_entity_pollset(pollent)) != nullptr) {
186
- transport->vtable->set_pollset(exec_ctx, transport, stream, pollset);
180
+ transport->vtable->set_pollset(transport, stream, pollset);
187
181
  } else if ((pollset_set = grpc_polling_entity_pollset_set(pollent)) !=
188
182
  nullptr) {
189
- transport->vtable->set_pollset_set(exec_ctx, transport, stream,
190
- pollset_set);
183
+ transport->vtable->set_pollset_set(transport, stream, pollset_set);
191
184
  } else {
192
185
  abort();
193
186
  }
194
187
  }
195
188
 
196
- void grpc_transport_destroy_stream(grpc_exec_ctx* exec_ctx,
197
- grpc_transport* transport,
189
+ void grpc_transport_destroy_stream(grpc_transport* transport,
198
190
  grpc_stream* stream,
199
191
  grpc_closure* then_schedule_closure) {
200
- transport->vtable->destroy_stream(exec_ctx, transport, stream,
201
- then_schedule_closure);
192
+ transport->vtable->destroy_stream(transport, stream, then_schedule_closure);
202
193
  }
203
194
 
204
- grpc_endpoint* grpc_transport_get_endpoint(grpc_exec_ctx* exec_ctx,
205
- grpc_transport* transport) {
206
- return transport->vtable->get_endpoint(exec_ctx, transport);
195
+ grpc_endpoint* grpc_transport_get_endpoint(grpc_transport* transport) {
196
+ return transport->vtable->get_endpoint(transport);
207
197
  }
208
198
 
209
199
  // This comment should be sung to the tune of
@@ -214,25 +204,23 @@ grpc_endpoint* grpc_transport_get_endpoint(grpc_exec_ctx* exec_ctx,
214
204
  // though it lives in lib, it handles transport stream ops sure
215
205
  // it's grpc_transport_stream_op_batch_finish_with_failure
216
206
  void grpc_transport_stream_op_batch_finish_with_failure(
217
- grpc_exec_ctx* exec_ctx, grpc_transport_stream_op_batch* batch,
218
- grpc_error* error, grpc_call_combiner* call_combiner) {
207
+ grpc_transport_stream_op_batch* batch, grpc_error* error,
208
+ grpc_call_combiner* call_combiner) {
219
209
  if (batch->send_message) {
220
- grpc_byte_stream_destroy(exec_ctx,
221
- batch->payload->send_message.send_message);
210
+ grpc_byte_stream_destroy(batch->payload->send_message.send_message);
222
211
  }
223
212
  if (batch->recv_message) {
224
- GRPC_CALL_COMBINER_START(exec_ctx, call_combiner,
225
- batch->payload->recv_message.recv_message_ready,
226
- GRPC_ERROR_REF(error),
227
- "failing recv_message_ready");
213
+ GRPC_CALL_COMBINER_START(
214
+ call_combiner, batch->payload->recv_message.recv_message_ready,
215
+ GRPC_ERROR_REF(error), "failing recv_message_ready");
228
216
  }
229
217
  if (batch->recv_initial_metadata) {
230
218
  GRPC_CALL_COMBINER_START(
231
- exec_ctx, call_combiner,
219
+ call_combiner,
232
220
  batch->payload->recv_initial_metadata.recv_initial_metadata_ready,
233
221
  GRPC_ERROR_REF(error), "failing recv_initial_metadata_ready");
234
222
  }
235
- GRPC_CLOSURE_SCHED(exec_ctx, batch->on_complete, error);
223
+ GRPC_CLOSURE_SCHED(batch->on_complete, error);
236
224
  if (batch->cancel_stream) {
237
225
  GRPC_ERROR_UNREF(batch->payload->cancel_stream.cancel_error);
238
226
  }
@@ -244,10 +232,9 @@ typedef struct {
244
232
  grpc_transport_op op;
245
233
  } made_transport_op;
246
234
 
247
- static void destroy_made_transport_op(grpc_exec_ctx* exec_ctx, void* arg,
248
- grpc_error* error) {
235
+ static void destroy_made_transport_op(void* arg, grpc_error* error) {
249
236
  made_transport_op* op = (made_transport_op*)arg;
250
- GRPC_CLOSURE_SCHED(exec_ctx, op->inner_on_complete, GRPC_ERROR_REF(error));
237
+ GRPC_CLOSURE_SCHED(op->inner_on_complete, GRPC_ERROR_REF(error));
251
238
  gpr_free(op);
252
239
  }
253
240
 
@@ -268,12 +255,11 @@ typedef struct {
268
255
  grpc_transport_stream_op_batch_payload payload;
269
256
  } made_transport_stream_op;
270
257
 
271
- static void destroy_made_transport_stream_op(grpc_exec_ctx* exec_ctx, void* arg,
272
- grpc_error* error) {
258
+ static void destroy_made_transport_stream_op(void* arg, grpc_error* error) {
273
259
  made_transport_stream_op* op = (made_transport_stream_op*)arg;
274
260
  grpc_closure* c = op->inner_on_complete;
275
261
  gpr_free(op);
276
- GRPC_CLOSURE_RUN(exec_ctx, c, GRPC_ERROR_REF(error));
262
+ GRPC_CLOSURE_RUN(c, GRPC_ERROR_REF(error));
277
263
  }
278
264
 
279
265
  grpc_transport_stream_op_batch* grpc_make_transport_stream_op(
@@ -22,20 +22,23 @@
22
22
  #include <stddef.h>
23
23
 
24
24
  #include "src/core/lib/channel/context.h"
25
+ #include "src/core/lib/gpr/arena.h"
25
26
  #include "src/core/lib/iomgr/call_combiner.h"
26
27
  #include "src/core/lib/iomgr/endpoint.h"
27
28
  #include "src/core/lib/iomgr/polling_entity.h"
28
29
  #include "src/core/lib/iomgr/pollset.h"
29
30
  #include "src/core/lib/iomgr/pollset_set.h"
30
- #include "src/core/lib/support/arena.h"
31
31
  #include "src/core/lib/transport/byte_stream.h"
32
32
  #include "src/core/lib/transport/metadata_batch.h"
33
33
 
34
- #ifdef __cplusplus
35
- extern "C" {
36
- #endif
34
+ /* Minimum and maximum protocol accepted versions. */
35
+ #define GRPC_PROTOCOL_VERSION_MAX_MAJOR 2
36
+ #define GRPC_PROTOCOL_VERSION_MAX_MINOR 1
37
+ #define GRPC_PROTOCOL_VERSION_MIN_MAJOR 2
38
+ #define GRPC_PROTOCOL_VERSION_MIN_MINOR 1
37
39
 
38
40
  /* forward declarations */
41
+
39
42
  typedef struct grpc_transport grpc_transport;
40
43
 
41
44
  /* grpc_stream doesn't actually exist. It's used as a typesafe
@@ -59,15 +62,14 @@ void grpc_stream_ref_init(grpc_stream_refcount* refcount, int initial_refs,
59
62
  grpc_iomgr_cb_func cb, void* cb_arg,
60
63
  const char* object_type);
61
64
  void grpc_stream_ref(grpc_stream_refcount* refcount, const char* reason);
62
- void grpc_stream_unref(grpc_exec_ctx* exec_ctx, grpc_stream_refcount* refcount,
63
- const char* reason);
65
+ void grpc_stream_unref(grpc_stream_refcount* refcount, const char* reason);
64
66
  #define GRPC_STREAM_REF_INIT(rc, ir, cb, cb_arg, objtype) \
65
67
  grpc_stream_ref_init(rc, ir, cb, cb_arg, objtype)
66
68
  #else
67
69
  void grpc_stream_ref_init(grpc_stream_refcount* refcount, int initial_refs,
68
70
  grpc_iomgr_cb_func cb, void* cb_arg);
69
71
  void grpc_stream_ref(grpc_stream_refcount* refcount);
70
- void grpc_stream_unref(grpc_exec_ctx* exec_ctx, grpc_stream_refcount* refcount);
72
+ void grpc_stream_unref(grpc_stream_refcount* refcount);
71
73
  #define GRPC_STREAM_REF_INIT(rc, ir, cb, cb_arg, objtype) \
72
74
  grpc_stream_ref_init(rc, ir, cb, cb_arg)
73
75
  #endif
@@ -241,16 +243,21 @@ typedef struct grpc_transport_op {
241
243
  If true, the callback is set to set_accept_stream_fn, with its
242
244
  user_data argument set to set_accept_stream_user_data */
243
245
  bool set_accept_stream;
244
- void (*set_accept_stream_fn)(grpc_exec_ctx* exec_ctx, void* user_data,
245
- grpc_transport* transport,
246
+ void (*set_accept_stream_fn)(void* user_data, grpc_transport* transport,
246
247
  const void* server_data);
247
248
  void* set_accept_stream_user_data;
248
249
  /** add this transport to a pollset */
249
250
  grpc_pollset* bind_pollset;
250
251
  /** add this transport to a pollset_set */
251
252
  grpc_pollset_set* bind_pollset_set;
252
- /** send a ping, call this back if not NULL */
253
- grpc_closure* send_ping;
253
+ /** send a ping, if either on_initiate or on_ack is not NULL */
254
+ struct {
255
+ /** Ping may be delayed by the transport, on_initiate callback will be
256
+ called when the ping is actually being sent. */
257
+ grpc_closure* on_initiate;
258
+ /** Called when the ping ack is received */
259
+ grpc_closure* on_ack;
260
+ } send_ping;
254
261
 
255
262
  /***************************************************************************
256
263
  * remaining fields are initialized and used at the discretion of the
@@ -273,13 +280,12 @@ size_t grpc_transport_stream_size(grpc_transport* transport);
273
280
  stream - a pointer to uninitialized memory to initialize
274
281
  server_data - either NULL for a client initiated stream, or a pointer
275
282
  supplied from the accept_stream callback function */
276
- int grpc_transport_init_stream(grpc_exec_ctx* exec_ctx,
277
- grpc_transport* transport, grpc_stream* stream,
283
+ int grpc_transport_init_stream(grpc_transport* transport, grpc_stream* stream,
278
284
  grpc_stream_refcount* refcount,
279
285
  const void* server_data, gpr_arena* arena);
280
286
 
281
- void grpc_transport_set_pops(grpc_exec_ctx* exec_ctx, grpc_transport* transport,
282
- grpc_stream* stream, grpc_polling_entity* pollent);
287
+ void grpc_transport_set_pops(grpc_transport* transport, grpc_stream* stream,
288
+ grpc_polling_entity* pollent);
283
289
 
284
290
  /* Destroy transport data for a stream.
285
291
 
@@ -291,14 +297,13 @@ void grpc_transport_set_pops(grpc_exec_ctx* exec_ctx, grpc_transport* transport,
291
297
  transport - the transport on which to create this stream
292
298
  stream - the grpc_stream to destroy (memory is still owned by the
293
299
  caller, but any child memory must be cleaned up) */
294
- void grpc_transport_destroy_stream(grpc_exec_ctx* exec_ctx,
295
- grpc_transport* transport,
300
+ void grpc_transport_destroy_stream(grpc_transport* transport,
296
301
  grpc_stream* stream,
297
302
  grpc_closure* then_schedule_closure);
298
303
 
299
304
  void grpc_transport_stream_op_batch_finish_with_failure(
300
- grpc_exec_ctx* exec_ctx, grpc_transport_stream_op_batch* op,
301
- grpc_error* error, grpc_call_combiner* call_combiner);
305
+ grpc_transport_stream_op_batch* op, grpc_error* error,
306
+ grpc_call_combiner* call_combiner);
302
307
 
303
308
  char* grpc_transport_stream_op_batch_string(grpc_transport_stream_op_batch* op);
304
309
  char* grpc_transport_op_string(grpc_transport_op* op);
@@ -313,13 +318,11 @@ char* grpc_transport_op_string(grpc_transport_op* op);
313
318
  non-NULL and previously initialized by the same transport.
314
319
  op - a grpc_transport_stream_op_batch specifying the op to perform
315
320
  */
316
- void grpc_transport_perform_stream_op(grpc_exec_ctx* exec_ctx,
317
- grpc_transport* transport,
321
+ void grpc_transport_perform_stream_op(grpc_transport* transport,
318
322
  grpc_stream* stream,
319
323
  grpc_transport_stream_op_batch* op);
320
324
 
321
- void grpc_transport_perform_op(grpc_exec_ctx* exec_ctx,
322
- grpc_transport* transport,
325
+ void grpc_transport_perform_op(grpc_transport* transport,
323
326
  grpc_transport_op* op);
324
327
 
325
328
  /* Send a ping on a transport
@@ -332,11 +335,10 @@ void grpc_transport_goaway(grpc_transport* transport, grpc_status_code status,
332
335
  grpc_slice debug_data);
333
336
 
334
337
  /* Destroy the transport */
335
- void grpc_transport_destroy(grpc_exec_ctx* exec_ctx, grpc_transport* transport);
338
+ void grpc_transport_destroy(grpc_transport* transport);
336
339
 
337
340
  /* Get the endpoint used by \a transport */
338
- grpc_endpoint* grpc_transport_get_endpoint(grpc_exec_ctx* exec_ctx,
339
- grpc_transport* transport);
341
+ grpc_endpoint* grpc_transport_get_endpoint(grpc_transport* transport);
340
342
 
341
343
  /* Allocate a grpc_transport_op, and preconfigure the on_consumed closure to
342
344
  \a on_consumed and then delete the returned transport op */
@@ -347,8 +349,4 @@ grpc_transport_op* grpc_make_transport_op(grpc_closure* on_consumed);
347
349
  grpc_transport_stream_op_batch* grpc_make_transport_stream_op(
348
350
  grpc_closure* on_consumed);
349
351
 
350
- #ifdef __cplusplus
351
- }
352
- #endif
353
-
354
352
  #endif /* GRPC_CORE_LIB_TRANSPORT_TRANSPORT_H */