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
@@ -28,8 +28,7 @@
28
28
  #include "src/core/lib/iomgr/sockaddr_utils.h"
29
29
  #include "src/core/lib/transport/connectivity_state.h"
30
30
 
31
- void grpc_lb_subchannel_data_unref_subchannel(grpc_exec_ctx* exec_ctx,
32
- grpc_lb_subchannel_data* sd,
31
+ void grpc_lb_subchannel_data_unref_subchannel(grpc_lb_subchannel_data* sd,
33
32
  const char* reason) {
34
33
  if (sd->subchannel != nullptr) {
35
34
  if (sd->subchannel_list->tracer->enabled()) {
@@ -41,23 +40,19 @@ void grpc_lb_subchannel_data_unref_subchannel(grpc_exec_ctx* exec_ctx,
41
40
  (size_t)(sd - sd->subchannel_list->subchannels),
42
41
  sd->subchannel_list->num_subchannels, sd->subchannel);
43
42
  }
44
- GRPC_SUBCHANNEL_UNREF(exec_ctx, sd->subchannel, reason);
43
+ GRPC_SUBCHANNEL_UNREF(sd->subchannel, reason);
45
44
  sd->subchannel = nullptr;
46
- if (sd->connected_subchannel != nullptr) {
47
- GRPC_CONNECTED_SUBCHANNEL_UNREF(exec_ctx, sd->connected_subchannel,
48
- reason);
49
- sd->connected_subchannel = nullptr;
50
- }
45
+ sd->connected_subchannel.reset();
51
46
  if (sd->user_data != nullptr) {
52
47
  GPR_ASSERT(sd->user_data_vtable != nullptr);
53
- sd->user_data_vtable->destroy(exec_ctx, sd->user_data);
48
+ sd->user_data_vtable->destroy(sd->user_data);
54
49
  sd->user_data = nullptr;
55
50
  }
56
51
  }
57
52
  }
58
53
 
59
54
  void grpc_lb_subchannel_data_start_connectivity_watch(
60
- grpc_exec_ctx* exec_ctx, grpc_lb_subchannel_data* sd) {
55
+ grpc_lb_subchannel_data* sd) {
61
56
  if (sd->subchannel_list->tracer->enabled()) {
62
57
  gpr_log(GPR_DEBUG,
63
58
  "[%s %p] subchannel list %p index %" PRIuPTR " of %" PRIuPTR
@@ -69,13 +64,13 @@ void grpc_lb_subchannel_data_start_connectivity_watch(
69
64
  }
70
65
  sd->connectivity_notification_pending = true;
71
66
  grpc_subchannel_notify_on_state_change(
72
- exec_ctx, sd->subchannel, sd->subchannel_list->policy->interested_parties,
67
+ sd->subchannel, sd->subchannel_list->policy->interested_parties,
73
68
  &sd->pending_connectivity_state_unsafe,
74
69
  &sd->connectivity_changed_closure);
75
70
  }
76
71
 
77
72
  void grpc_lb_subchannel_data_stop_connectivity_watch(
78
- grpc_exec_ctx* exec_ctx, grpc_lb_subchannel_data* sd) {
73
+ grpc_lb_subchannel_data* sd) {
79
74
  if (sd->subchannel_list->tracer->enabled()) {
80
75
  gpr_log(GPR_DEBUG,
81
76
  "[%s %p] subchannel list %p index %" PRIuPTR " of %" PRIuPTR
@@ -90,7 +85,7 @@ void grpc_lb_subchannel_data_stop_connectivity_watch(
90
85
  }
91
86
 
92
87
  grpc_lb_subchannel_list* grpc_lb_subchannel_list_create(
93
- grpc_exec_ctx* exec_ctx, grpc_lb_policy* p, grpc_core::TraceFlag* tracer,
88
+ grpc_lb_policy* p, grpc_core::TraceFlag* tracer,
94
89
  const grpc_lb_addresses* addresses, const grpc_lb_policy_args* args,
95
90
  grpc_iomgr_cb_func connectivity_changed_cb) {
96
91
  grpc_lb_subchannel_list* subchannel_list =
@@ -124,8 +119,8 @@ grpc_lb_subchannel_list* grpc_lb_subchannel_list_create(
124
119
  gpr_free(addr_arg.value.string);
125
120
  sc_args.args = new_args;
126
121
  grpc_subchannel* subchannel = grpc_client_channel_factory_create_subchannel(
127
- exec_ctx, args->client_channel_factory, &sc_args);
128
- grpc_channel_args_destroy(exec_ctx, new_args);
122
+ args->client_channel_factory, &sc_args);
123
+ grpc_channel_args_destroy(new_args);
129
124
  if (subchannel == nullptr) {
130
125
  // Subchannel could not be created.
131
126
  if (tracer->enabled()) {
@@ -172,8 +167,7 @@ grpc_lb_subchannel_list* grpc_lb_subchannel_list_create(
172
167
  return subchannel_list;
173
168
  }
174
169
 
175
- static void subchannel_list_destroy(grpc_exec_ctx* exec_ctx,
176
- grpc_lb_subchannel_list* subchannel_list) {
170
+ static void subchannel_list_destroy(grpc_lb_subchannel_list* subchannel_list) {
177
171
  if (subchannel_list->tracer->enabled()) {
178
172
  gpr_log(GPR_DEBUG, "[%s %p] Destroying subchannel_list %p",
179
173
  subchannel_list->tracer->name(), subchannel_list->policy,
@@ -181,8 +175,7 @@ static void subchannel_list_destroy(grpc_exec_ctx* exec_ctx,
181
175
  }
182
176
  for (size_t i = 0; i < subchannel_list->num_subchannels; i++) {
183
177
  grpc_lb_subchannel_data* sd = &subchannel_list->subchannels[i];
184
- grpc_lb_subchannel_data_unref_subchannel(exec_ctx, sd,
185
- "subchannel_list_destroy");
178
+ grpc_lb_subchannel_data_unref_subchannel(sd, "subchannel_list_destroy");
186
179
  }
187
180
  gpr_free(subchannel_list->subchannels);
188
181
  gpr_free(subchannel_list);
@@ -200,8 +193,7 @@ void grpc_lb_subchannel_list_ref(grpc_lb_subchannel_list* subchannel_list,
200
193
  }
201
194
  }
202
195
 
203
- void grpc_lb_subchannel_list_unref(grpc_exec_ctx* exec_ctx,
204
- grpc_lb_subchannel_list* subchannel_list,
196
+ void grpc_lb_subchannel_list_unref(grpc_lb_subchannel_list* subchannel_list,
205
197
  const char* reason) {
206
198
  const bool done = gpr_unref(&subchannel_list->refcount);
207
199
  if (subchannel_list->tracer->enabled()) {
@@ -212,25 +204,24 @@ void grpc_lb_subchannel_list_unref(grpc_exec_ctx* exec_ctx,
212
204
  reason);
213
205
  }
214
206
  if (done) {
215
- subchannel_list_destroy(exec_ctx, subchannel_list);
207
+ subchannel_list_destroy(subchannel_list);
216
208
  }
217
209
  }
218
210
 
219
211
  void grpc_lb_subchannel_list_ref_for_connectivity_watch(
220
212
  grpc_lb_subchannel_list* subchannel_list, const char* reason) {
221
- GRPC_LB_POLICY_WEAK_REF(subchannel_list->policy, reason);
213
+ GRPC_LB_POLICY_REF(subchannel_list->policy, reason);
222
214
  grpc_lb_subchannel_list_ref(subchannel_list, reason);
223
215
  }
224
216
 
225
217
  void grpc_lb_subchannel_list_unref_for_connectivity_watch(
226
- grpc_exec_ctx* exec_ctx, grpc_lb_subchannel_list* subchannel_list,
227
- const char* reason) {
228
- GRPC_LB_POLICY_WEAK_UNREF(exec_ctx, subchannel_list->policy, reason);
229
- grpc_lb_subchannel_list_unref(exec_ctx, subchannel_list, reason);
218
+ grpc_lb_subchannel_list* subchannel_list, const char* reason) {
219
+ GRPC_LB_POLICY_UNREF(subchannel_list->policy, reason);
220
+ grpc_lb_subchannel_list_unref(subchannel_list, reason);
230
221
  }
231
222
 
232
223
  static void subchannel_data_cancel_connectivity_watch(
233
- grpc_exec_ctx* exec_ctx, grpc_lb_subchannel_data* sd, const char* reason) {
224
+ grpc_lb_subchannel_data* sd, const char* reason) {
234
225
  if (sd->subchannel_list->tracer->enabled()) {
235
226
  gpr_log(GPR_DEBUG,
236
227
  "[%s %p] subchannel list %p index %" PRIuPTR " of %" PRIuPTR
@@ -240,14 +231,12 @@ static void subchannel_data_cancel_connectivity_watch(
240
231
  (size_t)(sd - sd->subchannel_list->subchannels),
241
232
  sd->subchannel_list->num_subchannels, sd->subchannel, reason);
242
233
  }
243
- grpc_subchannel_notify_on_state_change(exec_ctx, sd->subchannel, nullptr,
244
- nullptr,
234
+ grpc_subchannel_notify_on_state_change(sd->subchannel, nullptr, nullptr,
245
235
  &sd->connectivity_changed_closure);
246
236
  }
247
237
 
248
238
  void grpc_lb_subchannel_list_shutdown_and_unref(
249
- grpc_exec_ctx* exec_ctx, grpc_lb_subchannel_list* subchannel_list,
250
- const char* reason) {
239
+ grpc_lb_subchannel_list* subchannel_list, const char* reason) {
251
240
  if (subchannel_list->tracer->enabled()) {
252
241
  gpr_log(GPR_DEBUG, "[%s %p] Shutting down subchannel_list %p (%s)",
253
242
  subchannel_list->tracer->name(), subchannel_list->policy,
@@ -261,10 +250,10 @@ void grpc_lb_subchannel_list_shutdown_and_unref(
261
250
  // the callback is responsible for unreffing the subchannel.
262
251
  // Otherwise, unref the subchannel directly.
263
252
  if (sd->connectivity_notification_pending) {
264
- subchannel_data_cancel_connectivity_watch(exec_ctx, sd, reason);
253
+ subchannel_data_cancel_connectivity_watch(sd, reason);
265
254
  } else if (sd->subchannel != nullptr) {
266
- grpc_lb_subchannel_data_unref_subchannel(exec_ctx, sd, reason);
255
+ grpc_lb_subchannel_data_unref_subchannel(sd, reason);
267
256
  }
268
257
  }
269
- grpc_lb_subchannel_list_unref(exec_ctx, subchannel_list, reason);
258
+ grpc_lb_subchannel_list_unref(subchannel_list, reason);
270
259
  }
@@ -22,6 +22,7 @@
22
22
  #include "src/core/ext/filters/client_channel/lb_policy_registry.h"
23
23
  #include "src/core/ext/filters/client_channel/subchannel.h"
24
24
  #include "src/core/lib/debug/trace.h"
25
+ #include "src/core/lib/gpr++/ref_counted_ptr.h"
25
26
  #include "src/core/lib/transport/connectivity_state.h"
26
27
 
27
28
  // TODO(roth): This code is intended to be shared between pick_first and
@@ -36,10 +37,6 @@
36
37
  // round_robin that could be refactored and moved here. In a future PR,
37
38
  // need to clean this up.
38
39
 
39
- #ifdef __cplusplus
40
- extern "C" {
41
- #endif
42
-
43
40
  typedef struct grpc_lb_subchannel_list grpc_lb_subchannel_list;
44
41
 
45
42
  typedef struct {
@@ -47,7 +44,7 @@ typedef struct {
47
44
  grpc_lb_subchannel_list* subchannel_list;
48
45
  /** subchannel itself */
49
46
  grpc_subchannel* subchannel;
50
- grpc_connected_subchannel* connected_subchannel;
47
+ grpc_core::RefCountedPtr<grpc_core::ConnectedSubchannel> connected_subchannel;
51
48
  /** Is a connectivity notification pending? */
52
49
  bool connectivity_notification_pending;
53
50
  /** notification that connectivity has changed on subchannel */
@@ -69,8 +66,7 @@ typedef struct {
69
66
  } grpc_lb_subchannel_data;
70
67
 
71
68
  /// Unrefs the subchannel contained in sd.
72
- void grpc_lb_subchannel_data_unref_subchannel(grpc_exec_ctx* exec_ctx,
73
- grpc_lb_subchannel_data* sd,
69
+ void grpc_lb_subchannel_data_unref_subchannel(grpc_lb_subchannel_data* sd,
74
70
  const char* reason);
75
71
 
76
72
  /// Starts watching the connectivity state of the subchannel.
@@ -78,11 +74,11 @@ void grpc_lb_subchannel_data_unref_subchannel(grpc_exec_ctx* exec_ctx,
78
74
  /// grpc_lb_subchannel_data_stop_connectivity_watch() or again call
79
75
  /// grpc_lb_subchannel_data_start_connectivity_watch().
80
76
  void grpc_lb_subchannel_data_start_connectivity_watch(
81
- grpc_exec_ctx* exec_ctx, grpc_lb_subchannel_data* sd);
77
+ grpc_lb_subchannel_data* sd);
82
78
 
83
79
  /// Stops watching the connectivity state of the subchannel.
84
80
  void grpc_lb_subchannel_data_stop_connectivity_watch(
85
- grpc_exec_ctx* exec_ctx, grpc_lb_subchannel_data* sd);
81
+ grpc_lb_subchannel_data* sd);
86
82
 
87
83
  struct grpc_lb_subchannel_list {
88
84
  /** backpointer to owning policy */
@@ -121,15 +117,14 @@ struct grpc_lb_subchannel_list {
121
117
  };
122
118
 
123
119
  grpc_lb_subchannel_list* grpc_lb_subchannel_list_create(
124
- grpc_exec_ctx* exec_ctx, grpc_lb_policy* p, grpc_core::TraceFlag* tracer,
120
+ grpc_lb_policy* p, grpc_core::TraceFlag* tracer,
125
121
  const grpc_lb_addresses* addresses, const grpc_lb_policy_args* args,
126
122
  grpc_iomgr_cb_func connectivity_changed_cb);
127
123
 
128
124
  void grpc_lb_subchannel_list_ref(grpc_lb_subchannel_list* subchannel_list,
129
125
  const char* reason);
130
126
 
131
- void grpc_lb_subchannel_list_unref(grpc_exec_ctx* exec_ctx,
132
- grpc_lb_subchannel_list* subchannel_list,
127
+ void grpc_lb_subchannel_list_unref(grpc_lb_subchannel_list* subchannel_list,
133
128
  const char* reason);
134
129
 
135
130
  /// Takes and releases refs needed for a connectivity notification.
@@ -137,17 +132,11 @@ void grpc_lb_subchannel_list_unref(grpc_exec_ctx* exec_ctx,
137
132
  void grpc_lb_subchannel_list_ref_for_connectivity_watch(
138
133
  grpc_lb_subchannel_list* subchannel_list, const char* reason);
139
134
  void grpc_lb_subchannel_list_unref_for_connectivity_watch(
140
- grpc_exec_ctx* exec_ctx, grpc_lb_subchannel_list* subchannel_list,
141
- const char* reason);
135
+ grpc_lb_subchannel_list* subchannel_list, const char* reason);
142
136
 
143
137
  /// Mark subchannel_list as discarded. Unsubscribes all its subchannels. The
144
138
  /// connectivity state notification callback will ultimately unref it.
145
139
  void grpc_lb_subchannel_list_shutdown_and_unref(
146
- grpc_exec_ctx* exec_ctx, grpc_lb_subchannel_list* subchannel_list,
147
- const char* reason);
148
-
149
- #ifdef __cplusplus
150
- }
151
- #endif
140
+ grpc_lb_subchannel_list* subchannel_list, const char* reason);
152
141
 
153
142
  #endif /* GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_LB_POLICY_SUBCHANNEL_LIST_H */
@@ -112,13 +112,11 @@ int grpc_lb_addresses_cmp(const grpc_lb_addresses* addresses1,
112
112
  return 0;
113
113
  }
114
114
 
115
- void grpc_lb_addresses_destroy(grpc_exec_ctx* exec_ctx,
116
- grpc_lb_addresses* addresses) {
115
+ void grpc_lb_addresses_destroy(grpc_lb_addresses* addresses) {
117
116
  for (size_t i = 0; i < addresses->num_addresses; ++i) {
118
117
  gpr_free(addresses->addresses[i].balancer_name);
119
118
  if (addresses->addresses[i].user_data != nullptr) {
120
- addresses->user_data_vtable->destroy(exec_ctx,
121
- addresses->addresses[i].user_data);
119
+ addresses->user_data_vtable->destroy(addresses->addresses[i].user_data);
122
120
  }
123
121
  }
124
122
  gpr_free(addresses->addresses);
@@ -128,8 +126,8 @@ void grpc_lb_addresses_destroy(grpc_exec_ctx* exec_ctx,
128
126
  static void* lb_addresses_copy(void* addresses) {
129
127
  return grpc_lb_addresses_copy((grpc_lb_addresses*)addresses);
130
128
  }
131
- static void lb_addresses_destroy(grpc_exec_ctx* exec_ctx, void* addresses) {
132
- grpc_lb_addresses_destroy(exec_ctx, (grpc_lb_addresses*)addresses);
129
+ static void lb_addresses_destroy(void* addresses) {
130
+ grpc_lb_addresses_destroy((grpc_lb_addresses*)addresses);
133
131
  }
134
132
  static int lb_addresses_cmp(void* addresses1, void* addresses2) {
135
133
  return grpc_lb_addresses_cmp((grpc_lb_addresses*)addresses1,
@@ -162,8 +160,7 @@ void grpc_lb_policy_factory_unref(grpc_lb_policy_factory* factory) {
162
160
  }
163
161
 
164
162
  grpc_lb_policy* grpc_lb_policy_factory_create_lb_policy(
165
- grpc_exec_ctx* exec_ctx, grpc_lb_policy_factory* factory,
166
- grpc_lb_policy_args* args) {
163
+ grpc_lb_policy_factory* factory, grpc_lb_policy_args* args) {
167
164
  if (factory == nullptr) return nullptr;
168
- return factory->vtable->create_lb_policy(exec_ctx, factory, args);
165
+ return factory->vtable->create_lb_policy(factory, args);
169
166
  }
@@ -29,10 +29,6 @@
29
29
  // Channel arg key for grpc_lb_addresses.
30
30
  #define GRPC_ARG_LB_ADDRESSES "grpc.lb_addresses"
31
31
 
32
- #ifdef __cplusplus
33
- extern "C" {
34
- #endif
35
-
36
32
  typedef struct grpc_lb_policy_factory grpc_lb_policy_factory;
37
33
  typedef struct grpc_lb_policy_factory_vtable grpc_lb_policy_factory_vtable;
38
34
 
@@ -54,7 +50,7 @@ typedef struct grpc_lb_address {
54
50
 
55
51
  typedef struct grpc_lb_user_data_vtable {
56
52
  void* (*copy)(void*);
57
- void (*destroy)(grpc_exec_ctx* exec_ctx, void*);
53
+ void (*destroy)(void*);
58
54
  int (*cmp)(void*, void*);
59
55
  } grpc_lb_user_data_vtable;
60
56
 
@@ -95,8 +91,7 @@ int grpc_lb_addresses_cmp(const grpc_lb_addresses* addresses1,
95
91
  const grpc_lb_addresses* addresses2);
96
92
 
97
93
  /** Destroys \a addresses. */
98
- void grpc_lb_addresses_destroy(grpc_exec_ctx* exec_ctx,
99
- grpc_lb_addresses* addresses);
94
+ void grpc_lb_addresses_destroy(grpc_lb_addresses* addresses);
100
95
 
101
96
  /** Returns a channel arg containing \a addresses. */
102
97
  grpc_arg grpc_lb_addresses_create_channel_arg(
@@ -118,8 +113,7 @@ struct grpc_lb_policy_factory_vtable {
118
113
  void (*unref)(grpc_lb_policy_factory* factory);
119
114
 
120
115
  /** Implementation of grpc_lb_policy_factory_create_lb_policy */
121
- grpc_lb_policy* (*create_lb_policy)(grpc_exec_ctx* exec_ctx,
122
- grpc_lb_policy_factory* factory,
116
+ grpc_lb_policy* (*create_lb_policy)(grpc_lb_policy_factory* factory,
123
117
  grpc_lb_policy_args* args);
124
118
 
125
119
  /** Name for the LB policy this factory implements */
@@ -131,11 +125,6 @@ void grpc_lb_policy_factory_unref(grpc_lb_policy_factory* factory);
131
125
 
132
126
  /** Create a lb_policy instance. */
133
127
  grpc_lb_policy* grpc_lb_policy_factory_create_lb_policy(
134
- grpc_exec_ctx* exec_ctx, grpc_lb_policy_factory* factory,
135
- grpc_lb_policy_args* args);
136
-
137
- #ifdef __cplusplus
138
- }
139
- #endif
128
+ grpc_lb_policy_factory* factory, grpc_lb_policy_args* args);
140
129
 
141
130
  #endif /* GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_LB_POLICY_FACTORY_H */
@@ -20,7 +20,7 @@
20
20
 
21
21
  #include <string.h>
22
22
 
23
- #include "src/core/lib/support/string.h"
23
+ #include "src/core/lib/gpr/string.h"
24
24
 
25
25
  #define MAX_POLICIES 10
26
26
 
@@ -61,10 +61,10 @@ static grpc_lb_policy_factory* lookup_factory(const char* name) {
61
61
  return nullptr;
62
62
  }
63
63
 
64
- grpc_lb_policy* grpc_lb_policy_create(grpc_exec_ctx* exec_ctx, const char* name,
64
+ grpc_lb_policy* grpc_lb_policy_create(const char* name,
65
65
  grpc_lb_policy_args* args) {
66
66
  grpc_lb_policy_factory* factory = lookup_factory(name);
67
67
  grpc_lb_policy* lb_policy =
68
- grpc_lb_policy_factory_create_lb_policy(exec_ctx, factory, args);
68
+ grpc_lb_policy_factory_create_lb_policy(factory, args);
69
69
  return lb_policy;
70
70
  }
@@ -22,10 +22,6 @@
22
22
  #include "src/core/ext/filters/client_channel/lb_policy_factory.h"
23
23
  #include "src/core/lib/iomgr/exec_ctx.h"
24
24
 
25
- #ifdef __cplusplus
26
- extern "C" {
27
- #endif
28
-
29
25
  /** Initialize the registry and set \a default_factory as the factory to be
30
26
  * returned when no name is provided in a lookup */
31
27
  void grpc_lb_policy_registry_init(void);
@@ -38,11 +34,7 @@ void grpc_register_lb_policy(grpc_lb_policy_factory* factory);
38
34
  *
39
35
  * If \a name is NULL, the default factory from \a grpc_lb_policy_registry_init
40
36
  * will be returned. */
41
- grpc_lb_policy* grpc_lb_policy_create(grpc_exec_ctx* exec_ctx, const char* name,
37
+ grpc_lb_policy* grpc_lb_policy_create(const char* name,
42
38
  grpc_lb_policy_args* args);
43
39
 
44
- #ifdef __cplusplus
45
- }
46
- #endif
47
-
48
40
  #endif /* GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_LB_POLICY_REGISTRY_H */
@@ -29,7 +29,7 @@
29
29
  #include <grpc/support/host_port.h>
30
30
  #include <grpc/support/log.h>
31
31
  #include <grpc/support/string_util.h>
32
- #include "src/core/lib/support/string.h"
32
+ #include "src/core/lib/gpr/string.h"
33
33
 
34
34
  #ifdef GRPC_HAVE_UNIX_SOCKET
35
35
 
@@ -24,10 +24,6 @@
24
24
  #include "src/core/ext/filters/client_channel/uri_parser.h"
25
25
  #include "src/core/lib/iomgr/resolve_address.h"
26
26
 
27
- #ifdef __cplusplus
28
- extern "C" {
29
- #endif
30
-
31
27
  /** Populate \a resolved_addr from \a uri, whose path is expected to contain a
32
28
  * unix socket path. Returns true upon success. */
33
29
  bool grpc_parse_unix(const grpc_uri* uri, grpc_resolved_address* resolved_addr);
@@ -49,8 +45,4 @@ bool grpc_parse_ipv4_hostport(const char* hostport, grpc_resolved_address* addr,
49
45
  bool grpc_parse_ipv6_hostport(const char* hostport, grpc_resolved_address* addr,
50
46
  bool log_errors);
51
47
 
52
- #ifdef __cplusplus
53
- }
54
- #endif
55
-
56
48
  #endif /* GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_PARSE_ADDRESS_H */
@@ -23,24 +23,22 @@ void grpc_proxy_mapper_init(const grpc_proxy_mapper_vtable* vtable,
23
23
  mapper->vtable = vtable;
24
24
  }
25
25
 
26
- bool grpc_proxy_mapper_map_name(grpc_exec_ctx* exec_ctx,
27
- grpc_proxy_mapper* mapper,
26
+ bool grpc_proxy_mapper_map_name(grpc_proxy_mapper* mapper,
28
27
  const char* server_uri,
29
28
  const grpc_channel_args* args,
30
29
  char** name_to_resolve,
31
30
  grpc_channel_args** new_args) {
32
- return mapper->vtable->map_name(exec_ctx, mapper, server_uri, args,
33
- name_to_resolve, new_args);
31
+ return mapper->vtable->map_name(mapper, server_uri, args, name_to_resolve,
32
+ new_args);
34
33
  }
35
34
 
36
- bool grpc_proxy_mapper_map_address(grpc_exec_ctx* exec_ctx,
37
- grpc_proxy_mapper* mapper,
35
+ bool grpc_proxy_mapper_map_address(grpc_proxy_mapper* mapper,
38
36
  const grpc_resolved_address* address,
39
37
  const grpc_channel_args* args,
40
38
  grpc_resolved_address** new_address,
41
39
  grpc_channel_args** new_args) {
42
- return mapper->vtable->map_address(exec_ctx, mapper, address, args,
43
- new_address, new_args);
40
+ return mapper->vtable->map_address(mapper, address, args, new_address,
41
+ new_args);
44
42
  }
45
43
 
46
44
  void grpc_proxy_mapper_destroy(grpc_proxy_mapper* mapper) {
@@ -25,10 +25,6 @@
25
25
 
26
26
  #include "src/core/lib/iomgr/resolve_address.h"
27
27
 
28
- #ifdef __cplusplus
29
- extern "C" {
30
- #endif
31
-
32
28
  typedef struct grpc_proxy_mapper grpc_proxy_mapper;
33
29
 
34
30
  typedef struct {
@@ -36,14 +32,14 @@ typedef struct {
36
32
  /// If no proxy is needed, returns false.
37
33
  /// Otherwise, sets \a name_to_resolve, optionally sets \a new_args,
38
34
  /// and returns true.
39
- bool (*map_name)(grpc_exec_ctx* exec_ctx, grpc_proxy_mapper* mapper,
40
- const char* server_uri, const grpc_channel_args* args,
41
- char** name_to_resolve, grpc_channel_args** new_args);
35
+ bool (*map_name)(grpc_proxy_mapper* mapper, const char* server_uri,
36
+ const grpc_channel_args* args, char** name_to_resolve,
37
+ grpc_channel_args** new_args);
42
38
  /// Determines the proxy address to use to contact \a address.
43
39
  /// If no proxy is needed, returns false.
44
40
  /// Otherwise, sets \a new_address, optionally sets \a new_args, and
45
41
  /// returns true.
46
- bool (*map_address)(grpc_exec_ctx* exec_ctx, grpc_proxy_mapper* mapper,
42
+ bool (*map_address)(grpc_proxy_mapper* mapper,
47
43
  const grpc_resolved_address* address,
48
44
  const grpc_channel_args* args,
49
45
  grpc_resolved_address** new_address,
@@ -59,15 +55,13 @@ struct grpc_proxy_mapper {
59
55
  void grpc_proxy_mapper_init(const grpc_proxy_mapper_vtable* vtable,
60
56
  grpc_proxy_mapper* mapper);
61
57
 
62
- bool grpc_proxy_mapper_map_name(grpc_exec_ctx* exec_ctx,
63
- grpc_proxy_mapper* mapper,
58
+ bool grpc_proxy_mapper_map_name(grpc_proxy_mapper* mapper,
64
59
  const char* server_uri,
65
60
  const grpc_channel_args* args,
66
61
  char** name_to_resolve,
67
62
  grpc_channel_args** new_args);
68
63
 
69
- bool grpc_proxy_mapper_map_address(grpc_exec_ctx* exec_ctx,
70
- grpc_proxy_mapper* mapper,
64
+ bool grpc_proxy_mapper_map_address(grpc_proxy_mapper* mapper,
71
65
  const grpc_resolved_address* address,
72
66
  const grpc_channel_args* args,
73
67
  grpc_resolved_address** new_address,
@@ -75,8 +69,4 @@ bool grpc_proxy_mapper_map_address(grpc_exec_ctx* exec_ctx,
75
69
 
76
70
  void grpc_proxy_mapper_destroy(grpc_proxy_mapper* mapper);
77
71
 
78
- #ifdef __cplusplus
79
- }
80
- #endif
81
-
82
72
  #endif /* GRPC_CORE_EXT_FILTERS_CLIENT_CHANNEL_PROXY_MAPPER_H */