grpc 1.7.3 → 1.8.0

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

Potentially problematic release.


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

Files changed (616) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +2106 -2116
  3. data/include/grpc/census.h +1 -432
  4. data/include/grpc/compression.h +9 -9
  5. data/include/grpc/grpc.h +115 -98
  6. data/include/grpc/grpc_cronet.h +3 -3
  7. data/include/grpc/grpc_posix.h +4 -4
  8. data/include/grpc/grpc_security.h +160 -88
  9. data/include/grpc/grpc_security_constants.h +7 -0
  10. data/include/grpc/impl/codegen/atm.h +9 -1
  11. data/include/grpc/impl/codegen/atm_gcc_atomic.h +13 -4
  12. data/include/grpc/impl/codegen/atm_gcc_sync.h +6 -5
  13. data/include/grpc/impl/codegen/atm_windows.h +23 -22
  14. data/include/grpc/impl/codegen/byte_buffer.h +14 -14
  15. data/include/grpc/impl/codegen/byte_buffer_reader.h +2 -2
  16. data/include/grpc/impl/codegen/connectivity_state.h +0 -2
  17. data/include/grpc/impl/codegen/grpc_types.h +32 -28
  18. data/include/grpc/impl/codegen/port_platform.h +48 -0
  19. data/include/grpc/impl/codegen/slice.h +10 -10
  20. data/include/grpc/impl/codegen/sync_generic.h +9 -3
  21. data/include/grpc/slice.h +16 -17
  22. data/include/grpc/slice_buffer.h +22 -22
  23. data/include/grpc/support/alloc.h +11 -11
  24. data/include/grpc/support/avl.h +28 -20
  25. data/include/grpc/support/cmdline.h +13 -13
  26. data/include/grpc/support/histogram.h +17 -17
  27. data/include/grpc/support/host_port.h +2 -2
  28. data/include/grpc/support/log.h +9 -9
  29. data/include/grpc/support/log_windows.h +1 -1
  30. data/include/grpc/support/string_util.h +2 -2
  31. data/include/grpc/support/subprocess.h +5 -5
  32. data/include/grpc/support/sync.h +43 -27
  33. data/include/grpc/support/thd.h +6 -6
  34. data/include/grpc/support/tls_gcc.h +1 -1
  35. data/include/grpc/support/tls_pthread.h +1 -1
  36. data/src/core/ext/census/{grpc_context.c → grpc_context.cc} +5 -8
  37. data/src/core/ext/filters/client_channel/backup_poller.cc +165 -0
  38. data/src/core/ext/{census/grpc_filter.h → filters/client_channel/backup_poller.h} +12 -7
  39. data/src/core/ext/filters/client_channel/{channel_connectivity.c → channel_connectivity.cc} +45 -42
  40. data/src/core/ext/filters/client_channel/{client_channel.c → client_channel.cc} +452 -417
  41. data/src/core/ext/filters/client_channel/client_channel.h +16 -8
  42. data/src/core/ext/filters/client_channel/{client_channel_factory.c → client_channel_factory.cc} +0 -0
  43. data/src/core/ext/filters/client_channel/client_channel_factory.h +29 -21
  44. data/src/core/ext/filters/client_channel/{client_channel_plugin.c → client_channel_plugin.cc} +15 -19
  45. data/src/core/ext/filters/client_channel/{connector.c → connector.cc} +0 -0
  46. data/src/core/ext/filters/client_channel/connector.h +29 -21
  47. data/src/core/ext/filters/client_channel/{http_connect_handshaker.c → http_connect_handshaker.cc} +10 -10
  48. data/src/core/ext/filters/client_channel/http_connect_handshaker.h +8 -0
  49. data/src/core/ext/filters/client_channel/{http_proxy.c → http_proxy.cc} +14 -14
  50. data/src/core/ext/filters/client_channel/http_proxy.h +8 -0
  51. data/src/core/ext/filters/client_channel/{lb_policy.c → lb_policy.cc} +47 -48
  52. data/src/core/ext/filters/client_channel/lb_policy.h +76 -70
  53. data/src/core/ext/filters/client_channel/lb_policy/grpclb/{client_load_reporting_filter.c → client_load_reporting_filter.cc} +28 -29
  54. data/src/core/ext/filters/client_channel/lb_policy/grpclb/client_load_reporting_filter.h +9 -1
  55. data/src/core/ext/filters/client_channel/lb_policy/grpclb/{grpclb.c → grpclb.cc} +554 -563
  56. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb.h +9 -1
  57. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_channel.h +17 -9
  58. data/src/core/ext/filters/client_channel/lb_policy/grpclb/{grpclb_channel_secure.c → grpclb_channel_secure.cc} +17 -17
  59. data/src/core/ext/filters/client_channel/lb_policy/grpclb/{grpclb_client_stats.c → grpclb_client_stats.cc} +3 -3
  60. data/src/core/ext/filters/client_channel/lb_policy/grpclb/grpclb_client_stats.h +9 -1
  61. data/src/core/ext/filters/client_channel/lb_policy/grpclb/{load_balancer_api.c → load_balancer_api.cc} +64 -67
  62. data/src/core/ext/filters/client_channel/lb_policy/grpclb/load_balancer_api.h +20 -21
  63. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc +599 -0
  64. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.cc +695 -0
  65. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.cc +270 -0
  66. data/src/core/ext/filters/client_channel/lb_policy/subchannel_list.h +153 -0
  67. data/src/core/ext/filters/client_channel/{lb_policy_factory.c → lb_policy_factory.cc} +10 -10
  68. data/src/core/ext/filters/client_channel/lb_policy_factory.h +48 -40
  69. data/src/core/ext/filters/client_channel/{lb_policy_registry.c → lb_policy_registry.cc} +9 -9
  70. data/src/core/ext/filters/client_channel/lb_policy_registry.h +11 -3
  71. data/src/core/ext/filters/client_channel/{parse_address.c → parse_address.cc} +24 -24
  72. data/src/core/ext/filters/client_channel/parse_address.h +14 -6
  73. data/src/core/ext/filters/client_channel/{proxy_mapper.c → proxy_mapper.cc} +0 -0
  74. data/src/core/ext/filters/client_channel/proxy_mapper.h +8 -0
  75. data/src/core/ext/filters/client_channel/{proxy_mapper_registry.c → proxy_mapper_registry.cc} +0 -0
  76. data/src/core/ext/filters/client_channel/proxy_mapper_registry.h +8 -0
  77. data/src/core/ext/filters/client_channel/{resolver.c → resolver.cc} +21 -23
  78. data/src/core/ext/filters/client_channel/resolver.h +33 -27
  79. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/{dns_resolver_ares.c → dns_resolver_ares.cc} +133 -133
  80. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_ev_driver.h +18 -9
  81. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/{grpc_ares_ev_driver_posix.c → grpc_ares_ev_driver_posix.cc} +58 -56
  82. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/{grpc_ares_wrapper.c → grpc_ares_wrapper.cc} +118 -115
  83. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper.h +23 -15
  84. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.cc +60 -0
  85. data/src/core/ext/filters/client_channel/resolver/dns/native/{dns_resolver.c → dns_resolver.cc} +100 -94
  86. data/src/core/ext/filters/client_channel/resolver/fake/{fake_resolver.c → fake_resolver.cc} +14 -14
  87. data/src/core/ext/filters/client_channel/resolver/fake/fake_resolver.h +9 -1
  88. data/src/core/ext/filters/client_channel/resolver/sockaddr/{sockaddr_resolver.c → sockaddr_resolver.cc} +60 -60
  89. data/src/core/ext/filters/client_channel/{resolver_factory.c → resolver_factory.cc} +2 -2
  90. data/src/core/ext/filters/client_channel/resolver_factory.h +27 -19
  91. data/src/core/ext/filters/client_channel/{resolver_registry.c → resolver_registry.cc} +35 -35
  92. data/src/core/ext/filters/client_channel/resolver_registry.h +18 -10
  93. data/src/core/ext/filters/client_channel/{retry_throttle.c → retry_throttle.cc} +10 -10
  94. data/src/core/ext/filters/client_channel/retry_throttle.h +8 -0
  95. data/src/core/ext/filters/client_channel/{subchannel.c → subchannel.cc} +210 -213
  96. data/src/core/ext/filters/client_channel/subchannel.h +68 -60
  97. data/src/core/ext/filters/client_channel/{subchannel_index.c → subchannel_index.cc} +52 -52
  98. data/src/core/ext/filters/client_channel/subchannel_index.h +22 -14
  99. data/src/core/ext/filters/client_channel/{uri_parser.c → uri_parser.cc} +29 -27
  100. data/src/core/ext/filters/client_channel/uri_parser.h +18 -10
  101. data/src/core/ext/filters/deadline/{deadline_filter.c → deadline_filter.cc} +12 -15
  102. data/src/core/ext/filters/deadline/deadline_filter.h +11 -2
  103. data/src/core/ext/filters/http/client/{http_client_filter.c → http_client_filter.cc} +83 -83
  104. data/src/core/ext/filters/http/client/http_client_filter.h +8 -0
  105. data/src/core/ext/filters/http/{http_filters_plugin.c → http_filters_plugin.cc} +20 -21
  106. data/src/core/ext/filters/http/message_compress/{message_compress_filter.c → message_compress_filter.cc} +84 -83
  107. data/src/core/ext/filters/http/message_compress/message_compress_filter.h +9 -1
  108. data/src/core/ext/filters/http/server/{http_server_filter.c → http_server_filter.cc} +80 -78
  109. data/src/core/ext/filters/http/server/http_server_filter.h +8 -0
  110. data/src/core/ext/filters/load_reporting/{server_load_reporting_filter.c → server_load_reporting_filter.cc} +29 -29
  111. data/src/core/ext/filters/load_reporting/server_load_reporting_filter.h +9 -1
  112. data/src/core/ext/filters/load_reporting/{server_load_reporting_plugin.c → server_load_reporting_plugin.cc} +11 -11
  113. data/src/core/ext/filters/load_reporting/server_load_reporting_plugin.h +13 -5
  114. data/src/core/ext/filters/max_age/{max_age_filter.c → max_age_filter.cc} +46 -56
  115. data/src/core/ext/filters/max_age/max_age_filter.h +8 -0
  116. data/src/core/ext/filters/message_size/{message_size_filter.c → message_size_filter.cc} +62 -40
  117. data/src/core/ext/filters/message_size/message_size_filter.h +8 -0
  118. data/src/core/ext/filters/workarounds/{workaround_cronet_compression_filter.c → workaround_cronet_compression_filter.cc} +11 -11
  119. data/src/core/ext/filters/workarounds/workaround_cronet_compression_filter.h +8 -0
  120. data/src/core/ext/filters/workarounds/{workaround_utils.c → workaround_utils.cc} +7 -7
  121. data/src/core/ext/filters/workarounds/workaround_utils.h +9 -1
  122. data/src/core/ext/transport/chttp2/alpn/{alpn.c → alpn.cc} +3 -3
  123. data/src/core/ext/transport/chttp2/alpn/alpn.h +10 -2
  124. data/src/core/ext/transport/chttp2/client/{chttp2_connector.c → chttp2_connector.cc} +49 -45
  125. data/src/core/ext/transport/chttp2/client/chttp2_connector.h +8 -0
  126. data/src/core/ext/transport/chttp2/client/insecure/{channel_create.c → channel_create.cc} +28 -27
  127. data/src/core/ext/transport/chttp2/client/insecure/{channel_create_posix.c → channel_create_posix.cc} +14 -13
  128. data/src/core/ext/transport/chttp2/client/secure/{secure_channel_create.c → secure_channel_create.cc} +68 -66
  129. data/src/core/ext/transport/chttp2/server/{chttp2_server.c → chttp2_server.cc} +76 -77
  130. data/src/core/ext/transport/chttp2/server/chttp2_server.h +11 -3
  131. data/src/core/ext/transport/chttp2/server/insecure/{server_chttp2.c → server_chttp2.cc} +3 -3
  132. data/src/core/ext/transport/chttp2/server/insecure/{server_chttp2_posix.c → server_chttp2_posix.cc} +13 -12
  133. data/src/core/ext/transport/chttp2/server/secure/{server_secure_chttp2.c → server_secure_chttp2.cc} +12 -10
  134. data/src/core/ext/transport/chttp2/transport/{bin_decoder.c → bin_decoder.cc} +7 -7
  135. data/src/core/ext/transport/chttp2/transport/bin_decoder.h +15 -7
  136. data/src/core/ext/transport/chttp2/transport/{bin_encoder.c → bin_encoder.cc} +11 -11
  137. data/src/core/ext/transport/chttp2/transport/bin_encoder.h +8 -0
  138. data/src/core/ext/transport/chttp2/transport/{chttp2_plugin.c → chttp2_plugin.cc} +2 -9
  139. data/src/core/ext/transport/chttp2/transport/{chttp2_transport.c → chttp2_transport.cc} +778 -778
  140. data/src/core/ext/transport/chttp2/transport/chttp2_transport.h +14 -10
  141. data/src/core/ext/transport/chttp2/transport/flow_control.cc +385 -0
  142. data/src/core/ext/transport/chttp2/transport/flow_control.h +337 -0
  143. data/src/core/ext/transport/chttp2/transport/frame.h +8 -0
  144. data/src/core/ext/transport/chttp2/transport/{frame_data.c → frame_data.cc} +34 -34
  145. data/src/core/ext/transport/chttp2/transport/frame_data.h +25 -17
  146. data/src/core/ext/transport/chttp2/transport/{frame_goaway.c → frame_goaway.cc} +18 -18
  147. data/src/core/ext/transport/chttp2/transport/frame_goaway.h +18 -10
  148. data/src/core/ext/transport/chttp2/transport/{frame_ping.c → frame_ping.cc} +18 -19
  149. data/src/core/ext/transport/chttp2/transport/frame_ping.h +12 -4
  150. data/src/core/ext/transport/chttp2/transport/{frame_rst_stream.c → frame_rst_stream.cc} +16 -16
  151. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.h +16 -8
  152. data/src/core/ext/transport/chttp2/transport/{frame_settings.c → frame_settings.cc} +23 -24
  153. data/src/core/ext/transport/chttp2/transport/frame_settings.h +17 -9
  154. data/src/core/ext/transport/chttp2/transport/{frame_window_update.c → frame_window_update.cc} +22 -24
  155. data/src/core/ext/transport/chttp2/transport/frame_window_update.h +14 -6
  156. data/src/core/ext/transport/chttp2/transport/{hpack_encoder.c → hpack_encoder.cc} +206 -161
  157. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +23 -13
  158. data/src/core/ext/transport/chttp2/transport/{hpack_parser.c → hpack_parser.cc} +340 -334
  159. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +30 -22
  160. data/src/core/ext/transport/chttp2/transport/{hpack_table.c → hpack_table.cc} +25 -25
  161. data/src/core/ext/transport/chttp2/transport/hpack_table.h +19 -11
  162. data/src/core/ext/transport/chttp2/transport/{http2_settings.c → http2_settings.cc} +1 -1
  163. data/src/core/ext/transport/chttp2/transport/http2_settings.h +10 -2
  164. data/src/core/ext/transport/chttp2/transport/{huffsyms.c → huffsyms.cc} +0 -0
  165. data/src/core/ext/transport/chttp2/transport/huffsyms.h +8 -0
  166. data/src/core/ext/transport/chttp2/transport/{incoming_metadata.c → incoming_metadata.cc} +14 -13
  167. data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +18 -10
  168. data/src/core/ext/transport/chttp2/transport/internal.h +214 -340
  169. data/src/core/ext/transport/chttp2/transport/{parsing.c → parsing.cc} +152 -141
  170. data/src/core/ext/transport/chttp2/transport/{stream_lists.c → stream_lists.cc} +53 -53
  171. data/src/core/ext/transport/chttp2/transport/{stream_map.c → stream_map.cc} +35 -34
  172. data/src/core/ext/transport/chttp2/transport/stream_map.h +22 -14
  173. data/src/core/ext/transport/chttp2/transport/{varint.c → varint.cc} +0 -0
  174. data/src/core/ext/transport/chttp2/transport/varint.h +8 -0
  175. data/src/core/ext/transport/chttp2/transport/writing.cc +636 -0
  176. data/src/core/ext/transport/inproc/{inproc_plugin.c → inproc_plugin.cc} +5 -6
  177. data/src/core/ext/transport/inproc/{inproc_transport.c → inproc_transport.cc} +479 -544
  178. data/src/core/ext/transport/inproc/inproc_transport.h +4 -4
  179. data/src/core/lib/backoff/backoff.cc +80 -0
  180. data/src/core/lib/backoff/backoff.h +83 -0
  181. data/src/core/lib/channel/{channel_args.c → channel_args.cc} +92 -92
  182. data/src/core/lib/channel/channel_args.h +45 -37
  183. data/src/core/lib/channel/{channel_stack.c → channel_stack.cc} +67 -68
  184. data/src/core/lib/channel/channel_stack.h +76 -75
  185. data/src/core/lib/channel/{channel_stack_builder.c → channel_stack_builder.cc} +91 -91
  186. data/src/core/lib/channel/channel_stack_builder.h +45 -45
  187. data/src/core/lib/channel/{connected_channel.c → connected_channel.cc} +70 -70
  188. data/src/core/lib/channel/connected_channel.h +12 -4
  189. data/src/core/lib/channel/context.h +2 -2
  190. data/src/core/lib/channel/{handshaker.c → handshaker.cc} +7 -9
  191. data/src/core/lib/channel/handshaker.h +9 -1
  192. data/src/core/lib/channel/{handshaker_factory.c → handshaker_factory.cc} +7 -7
  193. data/src/core/lib/channel/handshaker_factory.h +18 -10
  194. data/src/core/lib/channel/{handshaker_registry.c → handshaker_registry.cc} +0 -0
  195. data/src/core/lib/channel/handshaker_registry.h +8 -0
  196. data/src/core/lib/compression/algorithm_metadata.h +8 -0
  197. data/src/core/lib/compression/{compression.c → compression.cc} +9 -9
  198. data/src/core/lib/compression/{message_compress.c → message_compress.cc} +0 -0
  199. data/src/core/lib/compression/message_compress.h +8 -0
  200. data/src/core/lib/compression/{stream_compression.c → stream_compression.cc} +12 -12
  201. data/src/core/lib/compression/stream_compression.h +27 -19
  202. data/src/core/lib/compression/{stream_compression_gzip.c → stream_compression_gzip.cc} +35 -36
  203. data/src/core/lib/compression/stream_compression_gzip.h +8 -0
  204. data/src/core/lib/compression/{stream_compression_identity.c → stream_compression_identity.cc} +19 -20
  205. data/src/core/lib/compression/stream_compression_identity.h +8 -0
  206. data/src/core/lib/debug/{stats.c → stats.cc} +19 -19
  207. data/src/core/lib/debug/stats.h +17 -9
  208. data/src/core/lib/debug/{stats_data.c → stats_data.cc} +45 -22
  209. data/src/core/lib/debug/stats_data.h +58 -19
  210. data/src/core/lib/debug/trace.cc +142 -0
  211. data/src/core/lib/debug/trace.h +74 -14
  212. data/src/core/lib/http/{format_request.c → format_request.cc} +10 -10
  213. data/src/core/lib/http/format_request.h +12 -4
  214. data/src/core/lib/http/{httpcli.c → httpcli.cc} +80 -80
  215. data/src/core/lib/http/httpcli.h +41 -33
  216. data/src/core/lib/http/{httpcli_security_connector.c → httpcli_security_connector.cc} +69 -55
  217. data/src/core/lib/http/{parser.c → parser.cc} +42 -42
  218. data/src/core/lib/http/parser.h +28 -20
  219. data/src/core/lib/{support → iomgr}/block_annotate.h +17 -8
  220. data/src/core/lib/iomgr/{call_combiner.c → call_combiner.cc} +29 -17
  221. data/src/core/lib/iomgr/call_combiner.h +9 -1
  222. data/src/core/lib/iomgr/closure.h +220 -62
  223. data/src/core/lib/iomgr/{combiner.c → combiner.cc} +63 -62
  224. data/src/core/lib/iomgr/combiner.h +16 -8
  225. data/src/core/lib/iomgr/{endpoint.c → endpoint.cc} +6 -0
  226. data/src/core/lib/iomgr/endpoint.h +47 -32
  227. data/src/core/lib/iomgr/endpoint_pair.h +12 -4
  228. data/src/core/lib/iomgr/{endpoint_pair_posix.c → endpoint_pair_posix.cc} +3 -3
  229. data/src/core/lib/iomgr/{endpoint_pair_uv.c → endpoint_pair_uv.cc} +2 -2
  230. data/src/core/lib/iomgr/{endpoint_pair_windows.c → endpoint_pair_windows.cc} +6 -6
  231. data/src/core/lib/iomgr/{error.c → error.cc} +125 -124
  232. data/src/core/lib/iomgr/error.h +32 -27
  233. data/src/core/lib/iomgr/error_internal.h +11 -2
  234. data/src/core/lib/iomgr/{ev_epoll1_linux.c → ev_epoll1_linux.cc} +214 -215
  235. data/src/core/lib/iomgr/ev_epoll1_linux.h +9 -1
  236. data/src/core/lib/iomgr/ev_epollex_linux.cc +1488 -0
  237. data/src/core/lib/iomgr/ev_epollex_linux.h +9 -1
  238. data/src/core/lib/iomgr/{ev_epollsig_linux.c → ev_epollsig_linux.cc} +304 -305
  239. data/src/core/lib/iomgr/ev_epollsig_linux.h +12 -4
  240. data/src/core/lib/iomgr/{ev_poll_posix.c → ev_poll_posix.cc} +272 -283
  241. data/src/core/lib/iomgr/ev_poll_posix.h +10 -2
  242. data/src/core/lib/iomgr/ev_posix.cc +288 -0
  243. data/src/core/lib/iomgr/ev_posix.h +75 -67
  244. data/src/core/lib/iomgr/{ev_windows.c → ev_windows.cc} +2 -2
  245. data/src/core/lib/iomgr/exec_ctx.cc +177 -0
  246. data/src/core/lib/iomgr/exec_ctx.h +35 -13
  247. data/src/core/lib/iomgr/{executor.c → executor.cc} +34 -35
  248. data/src/core/lib/iomgr/executor.h +12 -4
  249. data/src/core/lib/iomgr/{fork_posix.c → fork_posix.cc} +0 -0
  250. data/src/core/lib/iomgr/{fork_windows.c → fork_windows.cc} +0 -0
  251. data/src/core/lib/iomgr/gethostname.h +9 -1
  252. data/src/core/lib/iomgr/{gethostname_fallback.c → gethostname_fallback.cc} +2 -1
  253. data/src/core/lib/iomgr/{gethostname_host_name_max.c → gethostname_host_name_max.cc} +4 -3
  254. data/src/core/lib/iomgr/{gethostname_sysconf.c → gethostname_sysconf.cc} +3 -2
  255. data/src/core/lib/iomgr/{iocp_windows.c → iocp_windows.cc} +23 -25
  256. data/src/core/lib/iomgr/iocp_windows.h +17 -3
  257. data/src/core/lib/iomgr/{iomgr.c → iomgr.cc} +25 -19
  258. data/src/core/lib/iomgr/iomgr.h +11 -3
  259. data/src/core/lib/iomgr/iomgr_internal.h +13 -5
  260. data/src/core/lib/iomgr/{iomgr_posix.c → iomgr_posix.cc} +0 -1
  261. data/src/core/lib/iomgr/{iomgr_uv.c → iomgr_uv.cc} +1 -1
  262. data/src/core/lib/iomgr/iomgr_uv.h +8 -0
  263. data/src/core/lib/iomgr/{iomgr_windows.c → iomgr_windows.cc} +0 -0
  264. data/src/core/lib/iomgr/{is_epollexclusive_available.c → is_epollexclusive_available.cc} +1 -1
  265. data/src/core/lib/iomgr/is_epollexclusive_available.h +8 -0
  266. data/src/core/lib/iomgr/{load_file.c → load_file.cc} +12 -12
  267. data/src/core/lib/iomgr/load_file.h +2 -2
  268. data/src/core/lib/iomgr/{lockfree_event.c → lockfree_event.cc} +76 -68
  269. data/src/core/lib/iomgr/lockfree_event.h +30 -11
  270. data/src/core/lib/iomgr/{network_status_tracker.c → network_status_tracker.cc} +3 -2
  271. data/src/core/lib/iomgr/network_status_tracker.h +2 -2
  272. data/src/core/lib/iomgr/{polling_entity.c → polling_entity.cc} +18 -18
  273. data/src/core/lib/iomgr/polling_entity.h +21 -13
  274. data/src/core/lib/iomgr/pollset.h +17 -11
  275. data/src/core/lib/iomgr/pollset_set.h +23 -15
  276. data/src/core/lib/iomgr/{pollset_set_uv.c → pollset_set_uv.cc} +0 -0
  277. data/src/core/lib/iomgr/{pollset_set_windows.c → pollset_set_windows.cc} +0 -0
  278. data/src/core/lib/iomgr/{pollset_uv.c → pollset_uv.cc} +31 -29
  279. data/src/core/lib/iomgr/pollset_uv.h +8 -0
  280. data/src/core/lib/iomgr/{pollset_windows.c → pollset_windows.cc} +24 -24
  281. data/src/core/lib/iomgr/pollset_windows.h +17 -4
  282. data/src/core/lib/iomgr/port.h +10 -0
  283. data/src/core/lib/iomgr/resolve_address.h +18 -10
  284. data/src/core/lib/iomgr/{resolve_address_posix.c → resolve_address_posix.cc} +40 -40
  285. data/src/core/lib/iomgr/{resolve_address_uv.c → resolve_address_uv.cc} +61 -56
  286. data/src/core/lib/iomgr/{resolve_address_windows.c → resolve_address_windows.cc} +36 -34
  287. data/src/core/lib/iomgr/{resource_quota.c → resource_quota.cc} +209 -180
  288. data/src/core/lib/iomgr/resource_quota.h +45 -37
  289. data/src/core/lib/iomgr/{sockaddr_utils.c → sockaddr_utils.cc} +61 -61
  290. data/src/core/lib/iomgr/sockaddr_utils.h +23 -15
  291. data/src/core/lib/iomgr/sockaddr_windows.h +6 -0
  292. data/src/core/lib/iomgr/{socket_factory_posix.c → socket_factory_posix.cc} +20 -20
  293. data/src/core/lib/iomgr/socket_factory_posix.h +15 -15
  294. data/src/core/lib/iomgr/{socket_mutator.c → socket_mutator.cc} +18 -18
  295. data/src/core/lib/iomgr/socket_mutator.h +11 -11
  296. data/src/core/lib/iomgr/socket_utils.h +9 -1
  297. data/src/core/lib/iomgr/{socket_utils_common_posix.c → socket_utils_common_posix.cc} +28 -28
  298. data/src/core/lib/iomgr/{socket_utils_linux.c → socket_utils_linux.cc} +3 -3
  299. data/src/core/lib/iomgr/{socket_utils_posix.c → socket_utils_posix.cc} +3 -3
  300. data/src/core/lib/iomgr/socket_utils_posix.h +26 -18
  301. data/src/core/lib/iomgr/{socket_utils_uv.c → socket_utils_uv.cc} +1 -1
  302. data/src/core/lib/iomgr/{socket_utils_windows.c → socket_utils_windows.cc} +2 -2
  303. data/src/core/lib/iomgr/{socket_windows.c → socket_windows.cc} +18 -18
  304. data/src/core/lib/iomgr/socket_windows.h +26 -13
  305. data/src/core/lib/iomgr/tcp_client.h +14 -6
  306. data/src/core/lib/iomgr/{tcp_client_posix.c → tcp_client_posix.cc} +69 -70
  307. data/src/core/lib/iomgr/tcp_client_posix.h +11 -3
  308. data/src/core/lib/iomgr/{tcp_client_uv.c → tcp_client_uv.cc} +47 -48
  309. data/src/core/lib/iomgr/{tcp_client_windows.c → tcp_client_windows.cc} +46 -44
  310. data/src/core/lib/iomgr/{tcp_posix.c → tcp_posix.cc} +198 -175
  311. data/src/core/lib/iomgr/tcp_posix.h +15 -7
  312. data/src/core/lib/iomgr/tcp_server.h +31 -23
  313. data/src/core/lib/iomgr/{tcp_server_posix.c → tcp_server_posix.cc} +78 -77
  314. data/src/core/lib/iomgr/tcp_server_utils_posix.h +27 -19
  315. data/src/core/lib/iomgr/{tcp_server_utils_posix_common.c → tcp_server_utils_posix_common.cc} +27 -27
  316. data/src/core/lib/iomgr/{tcp_server_utils_posix_ifaddrs.c → tcp_server_utils_posix_ifaddrs.cc} +25 -25
  317. data/src/core/lib/iomgr/{tcp_server_utils_posix_noifaddrs.c → tcp_server_utils_posix_noifaddrs.cc} +2 -2
  318. data/src/core/lib/iomgr/{tcp_server_uv.c → tcp_server_uv.cc} +133 -105
  319. data/src/core/lib/iomgr/{tcp_server_windows.c → tcp_server_windows.cc} +81 -77
  320. data/src/core/lib/iomgr/tcp_uv.cc +420 -0
  321. data/src/core/lib/iomgr/tcp_uv.h +18 -4
  322. data/src/core/lib/iomgr/{tcp_windows.c → tcp_windows.cc} +90 -79
  323. data/src/core/lib/iomgr/tcp_windows.h +17 -4
  324. data/src/core/lib/iomgr/{time_averaged_stats.c → time_averaged_stats.cc} +0 -0
  325. data/src/core/lib/iomgr/time_averaged_stats.h +8 -0
  326. data/src/core/lib/iomgr/timer.h +16 -9
  327. data/src/core/lib/iomgr/{timer_generic.c → timer_generic.cc} +130 -171
  328. data/src/core/lib/iomgr/timer_generic.h +4 -4
  329. data/src/core/lib/iomgr/{timer_heap.c → timer_heap.cc} +20 -21
  330. data/src/core/lib/iomgr/timer_heap.h +16 -8
  331. data/src/core/lib/iomgr/{timer_manager.c → timer_manager.cc} +54 -52
  332. data/src/core/lib/iomgr/timer_manager.h +8 -0
  333. data/src/core/lib/iomgr/{timer_uv.c → timer_uv.cc} +22 -24
  334. data/src/core/lib/iomgr/timer_uv.h +2 -2
  335. data/src/core/lib/iomgr/{udp_server.c → udp_server.cc} +75 -75
  336. data/src/core/lib/iomgr/udp_server.h +25 -17
  337. data/src/core/lib/iomgr/{unix_sockets_posix.c → unix_sockets_posix.cc} +22 -21
  338. data/src/core/lib/iomgr/unix_sockets_posix.h +14 -6
  339. data/src/core/lib/iomgr/{unix_sockets_posix_noop.c → unix_sockets_posix_noop.cc} +5 -5
  340. data/src/core/lib/iomgr/{wakeup_fd_cv.c → wakeup_fd_cv.cc} +2 -2
  341. data/src/core/lib/iomgr/wakeup_fd_cv.h +10 -0
  342. data/src/core/lib/iomgr/{wakeup_fd_eventfd.c → wakeup_fd_eventfd.cc} +0 -0
  343. data/src/core/lib/iomgr/{wakeup_fd_nospecial.c → wakeup_fd_nospecial.cc} +0 -0
  344. data/src/core/lib/iomgr/{wakeup_fd_pipe.c → wakeup_fd_pipe.cc} +1 -0
  345. data/src/core/lib/iomgr/wakeup_fd_pipe.h +9 -1
  346. data/src/core/lib/iomgr/{wakeup_fd_posix.c → wakeup_fd_posix.cc} +6 -7
  347. data/src/core/lib/iomgr/wakeup_fd_posix.h +8 -0
  348. data/src/core/lib/json/{json.c → json.cc} +0 -0
  349. data/src/core/lib/json/json.h +8 -0
  350. data/src/core/lib/json/{json_reader.c → json_reader.cc} +18 -18
  351. data/src/core/lib/json/json_reader.h +26 -18
  352. data/src/core/lib/json/{json_string.c → json_string.cc} +57 -57
  353. data/src/core/lib/json/{json_writer.c → json_writer.cc} +20 -20
  354. data/src/core/lib/json/json_writer.h +23 -15
  355. data/src/core/lib/profiling/{basic_timers.c → basic_timers.cc} +34 -34
  356. data/src/core/lib/profiling/{stap_timers.c → stap_timers.cc} +5 -5
  357. data/src/core/lib/profiling/timers.h +6 -6
  358. data/src/core/lib/security/context/{security_context.c → security_context.cc} +98 -95
  359. data/src/core/lib/security/context/security_context.h +27 -29
  360. data/src/core/lib/security/credentials/composite/{composite_credentials.c → composite_credentials.cc} +79 -73
  361. data/src/core/lib/security/credentials/composite/composite_credentials.h +17 -9
  362. data/src/core/lib/security/credentials/{credentials.c → credentials.cc} +97 -92
  363. data/src/core/lib/security/credentials/credentials.h +83 -75
  364. data/src/core/lib/security/credentials/{credentials_metadata.c → credentials_metadata.cc} +7 -6
  365. data/src/core/lib/security/credentials/fake/{fake_credentials.c → fake_credentials.cc} +39 -36
  366. data/src/core/lib/security/credentials/fake/fake_credentials.h +13 -5
  367. data/src/core/lib/security/credentials/google_default/{credentials_generic.c → credentials_generic.cc} +5 -5
  368. data/src/core/lib/security/credentials/google_default/{google_default_credentials.c → google_default_credentials.cc} +55 -55
  369. data/src/core/lib/security/credentials/google_default/google_default_credentials.h +9 -1
  370. data/src/core/lib/security/credentials/iam/{iam_credentials.c → iam_credentials.cc} +19 -18
  371. data/src/core/lib/security/credentials/jwt/{json_token.c → json_token.cc} +80 -75
  372. data/src/core/lib/security/credentials/jwt/json_token.h +23 -15
  373. data/src/core/lib/security/credentials/jwt/{jwt_credentials.c → jwt_credentials.cc} +45 -41
  374. data/src/core/lib/security/credentials/jwt/jwt_credentials.h +11 -3
  375. data/src/core/lib/security/credentials/jwt/{jwt_verifier.c → jwt_verifier.cc} +262 -252
  376. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +38 -30
  377. data/src/core/lib/security/credentials/oauth2/{oauth2_credentials.c → oauth2_credentials.cc} +138 -141
  378. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.h +30 -22
  379. data/src/core/lib/security/credentials/plugin/{plugin_credentials.c → plugin_credentials.cc} +52 -53
  380. data/src/core/lib/security/credentials/plugin/plugin_credentials.h +7 -7
  381. data/src/core/lib/security/credentials/ssl/ssl_credentials.cc +344 -0
  382. data/src/core/lib/security/credentials/ssl/ssl_credentials.h +27 -0
  383. data/src/core/lib/security/transport/auth_filters.h +16 -0
  384. data/src/core/lib/security/transport/{client_auth_filter.c → client_auth_filter.cc} +127 -115
  385. data/src/core/lib/security/transport/{lb_targets_info.c → lb_targets_info.cc} +16 -13
  386. data/src/core/lib/security/transport/lb_targets_info.h +11 -3
  387. data/src/core/lib/security/transport/{secure_endpoint.c → secure_endpoint.cc} +84 -76
  388. data/src/core/lib/security/transport/secure_endpoint.h +13 -5
  389. data/src/core/lib/security/transport/security_connector.cc +1121 -0
  390. data/src/core/lib/security/transport/security_connector.h +97 -79
  391. data/src/core/lib/security/transport/{security_handshaker.c → security_handshaker.cc} +139 -132
  392. data/src/core/lib/security/transport/security_handshaker.h +11 -3
  393. data/src/core/lib/security/transport/{server_auth_filter.c → server_auth_filter.cc} +68 -68
  394. data/src/core/lib/security/transport/{tsi_error.c → tsi_error.cc} +1 -1
  395. data/src/core/lib/security/transport/tsi_error.h +9 -1
  396. data/src/core/lib/security/util/{json_util.c → json_util.cc} +11 -11
  397. data/src/core/lib/security/util/json_util.h +12 -4
  398. data/src/core/lib/slice/{b64.c → b64.cc} +15 -15
  399. data/src/core/lib/slice/b64.h +12 -4
  400. data/src/core/lib/slice/{percent_encoding.c → percent_encoding.cc} +15 -15
  401. data/src/core/lib/slice/percent_encoding.h +11 -3
  402. data/src/core/lib/slice/{slice.c → slice.cc} +64 -64
  403. data/src/core/lib/slice/{slice_buffer.c → slice_buffer.cc} +38 -38
  404. data/src/core/lib/slice/{slice_hash_table.c → slice_hash_table.cc} +7 -7
  405. data/src/core/lib/slice/slice_hash_table.h +19 -11
  406. data/src/core/lib/slice/{slice_intern.c → slice_intern.cc} +35 -34
  407. data/src/core/lib/slice/slice_internal.h +17 -6
  408. data/src/core/lib/slice/{slice_string_helpers.c → slice_string_helpers.cc} +9 -9
  409. data/src/core/lib/slice/slice_string_helpers.h +3 -3
  410. data/src/core/lib/support/abstract.h +29 -0
  411. data/src/core/lib/support/{alloc.c → alloc.cc} +22 -22
  412. data/src/core/lib/support/{arena.c → arena.cc} +12 -12
  413. data/src/core/lib/support/arena.h +11 -3
  414. data/src/core/lib/support/{atm.c → atm.cc} +1 -1
  415. data/src/core/lib/support/{avl.c → avl.cc} +71 -70
  416. data/src/core/lib/support/{cmdline.c → cmdline.cc} +62 -62
  417. data/src/core/lib/support/{cpu_iphone.c → cpu_iphone.cc} +2 -0
  418. data/src/core/lib/support/{cpu_linux.c → cpu_linux.cc} +10 -0
  419. data/src/core/lib/support/{cpu_posix.c → cpu_posix.cc} +27 -4
  420. data/src/core/lib/support/{cpu_windows.c → cpu_windows.cc} +1 -0
  421. data/src/core/lib/support/env.h +3 -3
  422. data/src/core/lib/support/{env_linux.c → env_linux.cc} +11 -11
  423. data/src/core/lib/support/{env_posix.c → env_posix.cc} +4 -4
  424. data/src/core/lib/support/{env_windows.c → env_windows.cc} +5 -5
  425. data/src/core/lib/support/{fork.c → fork.cc} +2 -2
  426. data/src/core/lib/support/{histogram.c → histogram.cc} +25 -26
  427. data/src/core/lib/support/{host_port.c → host_port.cc} +16 -16
  428. data/src/core/lib/support/{log.c → log.cc} +8 -8
  429. data/src/core/lib/support/{log_android.c → log_android.cc} +7 -7
  430. data/src/core/lib/support/{log_linux.c → log_linux.cc} +8 -8
  431. data/src/core/lib/support/{log_posix.c → log_posix.cc} +9 -10
  432. data/src/core/lib/support/{log_windows.c → log_windows.cc} +7 -7
  433. data/src/core/lib/support/manual_constructor.h +211 -0
  434. data/src/core/lib/support/memory.h +41 -0
  435. data/src/core/lib/support/mpscq.cc +114 -0
  436. data/src/core/lib/support/mpscq.h +45 -7
  437. data/src/core/lib/support/{murmur_hash.c → murmur_hash.cc} +9 -12
  438. data/src/core/lib/support/murmur_hash.h +9 -1
  439. data/src/core/lib/support/spinlock.h +8 -1
  440. data/src/core/lib/support/{string.c → string.cc} +56 -55
  441. data/src/core/lib/support/string.h +21 -21
  442. data/src/core/lib/support/{string_posix.c → string_posix.cc} +5 -4
  443. data/src/core/lib/support/{string_util_windows.c → string_util_windows.cc} +9 -6
  444. data/src/core/lib/support/{string_windows.c → string_windows.cc} +3 -2
  445. data/src/core/lib/support/string_windows.h +8 -0
  446. data/src/core/lib/support/{subprocess_posix.c → subprocess_posix.cc} +13 -13
  447. data/src/core/lib/support/{subprocess_windows.c → subprocess_windows.cc} +9 -9
  448. data/src/core/lib/support/{sync.c → sync.cc} +22 -22
  449. data/src/core/lib/support/{sync_posix.c → sync_posix.cc} +6 -2
  450. data/src/core/lib/support/{sync_windows.c → sync_windows.cc} +14 -14
  451. data/src/core/lib/support/{thd.c → thd.cc} +0 -0
  452. data/src/core/lib/support/{thd_posix.c → thd_posix.cc} +10 -10
  453. data/src/core/lib/support/{thd_windows.c → thd_windows.cc} +10 -10
  454. data/src/core/lib/support/{time.c → time.cc} +0 -0
  455. data/src/core/lib/support/{time_posix.c → time_posix.cc} +5 -6
  456. data/src/core/lib/support/{time_precise.c → time_precise.cc} +6 -4
  457. data/src/core/lib/support/time_precise.h +9 -1
  458. data/src/core/lib/support/{time_windows.c → time_windows.cc} +2 -3
  459. data/src/core/lib/support/{tls_pthread.c → tls_pthread.cc} +2 -2
  460. data/src/core/lib/support/tmpfile.h +1 -1
  461. data/src/core/lib/support/{tmpfile_msys.c → tmpfile_msys.cc} +2 -2
  462. data/src/core/lib/support/{tmpfile_posix.c → tmpfile_posix.cc} +7 -7
  463. data/src/core/lib/support/{tmpfile_windows.c → tmpfile_windows.cc} +2 -2
  464. data/src/core/lib/support/{wrap_memcpy.c → wrap_memcpy.cc} +4 -2
  465. data/src/core/lib/surface/{alarm.c → alarm.cc} +32 -31
  466. data/src/core/lib/surface/alarm_internal.h +10 -2
  467. data/src/core/lib/surface/{api_trace.c → api_trace.cc} +1 -1
  468. data/src/core/lib/surface/api_trace.h +2 -2
  469. data/src/core/lib/surface/{byte_buffer.c → byte_buffer.cc} +13 -13
  470. data/src/core/lib/surface/{byte_buffer_reader.c → byte_buffer_reader.cc} +9 -9
  471. data/src/core/lib/surface/{call.c → call.cc} +379 -372
  472. data/src/core/lib/surface/call.h +37 -38
  473. data/src/core/lib/surface/{call_details.c → call_details.cc} +0 -0
  474. data/src/core/lib/surface/{call_log_batch.c → call_log_batch.cc} +13 -11
  475. data/src/core/lib/surface/call_test_only.h +5 -5
  476. data/src/core/lib/surface/{channel.c → channel.cc} +94 -95
  477. data/src/core/lib/surface/channel.h +29 -21
  478. data/src/core/lib/surface/{channel_init.c → channel_init.cc} +13 -13
  479. data/src/core/lib/surface/channel_init.h +6 -6
  480. data/src/core/lib/surface/{channel_ping.c → channel_ping.cc} +12 -12
  481. data/src/core/lib/surface/{channel_stack_type.c → channel_stack_type.cc} +1 -1
  482. data/src/core/lib/surface/channel_stack_type.h +9 -1
  483. data/src/core/lib/surface/{completion_queue.c → completion_queue.cc} +416 -379
  484. data/src/core/lib/surface/completion_queue.h +29 -29
  485. data/src/core/lib/surface/{completion_queue_factory.c → completion_queue_factory.cc} +1 -1
  486. data/src/core/lib/surface/completion_queue_factory.h +8 -0
  487. data/src/core/lib/surface/{event_string.c → event_string.cc} +9 -9
  488. data/src/core/lib/surface/event_string.h +9 -1
  489. data/src/core/lib/surface/{init.c → init.cc} +16 -39
  490. data/src/core/lib/surface/init.h +8 -0
  491. data/src/core/lib/surface/{init_secure.c → init_secure.cc} +12 -25
  492. data/src/core/lib/surface/lame_client.cc +38 -40
  493. data/src/core/lib/surface/lame_client.h +8 -0
  494. data/src/core/lib/surface/{metadata_array.c → metadata_array.cc} +0 -0
  495. data/src/core/lib/surface/{server.c → server.cc} +340 -404
  496. data/src/core/lib/surface/server.h +22 -14
  497. data/src/core/lib/surface/{validate_metadata.c → validate_metadata.cc} +10 -9
  498. data/src/core/lib/surface/validate_metadata.h +10 -2
  499. data/src/core/lib/surface/{version.c → version.cc} +2 -2
  500. data/src/core/lib/transport/bdp_estimator.cc +84 -0
  501. data/src/core/lib/transport/bdp_estimator.h +67 -42
  502. data/src/core/lib/transport/{byte_stream.c → byte_stream.cc} +51 -51
  503. data/src/core/lib/transport/byte_stream.h +41 -33
  504. data/src/core/lib/transport/{connectivity_state.c → connectivity_state.cc} +36 -40
  505. data/src/core/lib/transport/connectivity_state.h +29 -21
  506. data/src/core/lib/transport/{error_utils.c → error_utils.cc} +26 -22
  507. data/src/core/lib/transport/error_utils.h +18 -6
  508. data/src/core/lib/transport/{metadata.c → metadata.cc} +92 -88
  509. data/src/core/lib/transport/metadata.h +22 -20
  510. data/src/core/lib/transport/{metadata_batch.c → metadata_batch.cc} +78 -79
  511. data/src/core/lib/transport/metadata_batch.h +46 -45
  512. data/src/core/lib/transport/pid_controller.cc +48 -0
  513. data/src/core/lib/transport/pid_controller.h +84 -32
  514. data/src/core/lib/transport/{service_config.c → service_config.cc} +66 -48
  515. data/src/core/lib/transport/service_config.h +11 -2
  516. data/src/core/lib/transport/{static_metadata.c → static_metadata.cc} +2 -2
  517. data/src/core/lib/transport/static_metadata.h +30 -23
  518. data/src/core/lib/transport/{status_conversion.c → status_conversion.cc} +4 -3
  519. data/src/core/lib/transport/status_conversion.h +12 -2
  520. data/src/core/lib/transport/{timeout_encoding.c → timeout_encoding.cc} +28 -61
  521. data/src/core/lib/transport/timeout_encoding.h +11 -2
  522. data/src/core/lib/transport/{transport.c → transport.cc} +79 -79
  523. data/src/core/lib/transport/transport.h +78 -80
  524. data/src/core/lib/transport/transport_impl.h +27 -19
  525. data/src/core/lib/transport/{transport_op_string.c → transport_op_string.cc} +32 -30
  526. data/src/core/plugin_registry/{grpc_plugin_registry.c → grpc_plugin_registry.cc} +34 -38
  527. data/src/core/tsi/{fake_transport_security.c → fake_transport_security.cc} +141 -132
  528. data/src/core/tsi/fake_transport_security.h +5 -5
  529. data/src/core/tsi/{gts_transport_security.c → gts_transport_security.cc} +4 -4
  530. data/src/core/tsi/gts_transport_security.h +11 -3
  531. data/src/core/tsi/{ssl_transport_security.c → ssl_transport_security.cc} +309 -300
  532. data/src/core/tsi/ssl_transport_security.h +25 -25
  533. data/src/core/tsi/ssl_types.h +8 -0
  534. data/src/core/tsi/{transport_security.c → transport_security.cc} +94 -87
  535. data/src/core/tsi/transport_security.h +55 -55
  536. data/src/core/tsi/{transport_security_adapter.c → transport_security_adapter.cc} +58 -55
  537. data/src/core/tsi/transport_security_adapter.h +2 -2
  538. data/src/core/tsi/{transport_security_grpc.c → transport_security_grpc.cc} +21 -21
  539. data/src/core/tsi/transport_security_grpc.h +19 -19
  540. data/src/core/tsi/transport_security_interface.h +41 -41
  541. data/src/ruby/ext/grpc/extconf.rb +4 -2
  542. data/src/ruby/ext/grpc/rb_byte_buffer.c +5 -5
  543. data/src/ruby/ext/grpc/rb_byte_buffer.h +2 -2
  544. data/src/ruby/ext/grpc/rb_call.c +41 -42
  545. data/src/ruby/ext/grpc/rb_call.h +6 -6
  546. data/src/ruby/ext/grpc/rb_call_credentials.c +30 -30
  547. data/src/ruby/ext/grpc/rb_channel.c +87 -87
  548. data/src/ruby/ext/grpc/rb_channel_credentials.c +23 -23
  549. data/src/ruby/ext/grpc/rb_completion_queue.c +11 -11
  550. data/src/ruby/ext/grpc/rb_completion_queue.h +3 -3
  551. data/src/ruby/ext/grpc/rb_compression_options.c +20 -20
  552. data/src/ruby/ext/grpc/rb_event_thread.c +14 -14
  553. data/src/ruby/ext/grpc/rb_event_thread.h +1 -1
  554. data/src/ruby/ext/grpc/rb_grpc.c +8 -8
  555. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +16 -58
  556. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +242 -306
  557. data/src/ruby/ext/grpc/rb_server.c +23 -23
  558. data/src/ruby/ext/grpc/rb_server_credentials.c +13 -13
  559. data/src/ruby/lib/grpc/generic/rpc_server.rb +25 -12
  560. data/src/ruby/lib/grpc/version.rb +1 -1
  561. data/src/ruby/pb/grpc/health/checker.rb +14 -0
  562. data/src/ruby/spec/pb/health/checker_spec.rb +29 -0
  563. data/third_party/cares/config_freebsd/ares_config.h +502 -0
  564. data/third_party/cares/config_openbsd/ares_config.h +502 -0
  565. metadata +302 -328
  566. data/src/core/ext/census/aggregation.h +0 -51
  567. data/src/core/ext/census/base_resources.c +0 -56
  568. data/src/core/ext/census/base_resources.h +0 -24
  569. data/src/core/ext/census/census_interface.h +0 -61
  570. data/src/core/ext/census/census_rpc_stats.h +0 -86
  571. data/src/core/ext/census/context.c +0 -496
  572. data/src/core/ext/census/gen/census.pb.c +0 -161
  573. data/src/core/ext/census/gen/census.pb.h +0 -280
  574. data/src/core/ext/census/gen/trace_context.pb.c +0 -39
  575. data/src/core/ext/census/gen/trace_context.pb.h +0 -78
  576. data/src/core/ext/census/grpc_filter.c +0 -196
  577. data/src/core/ext/census/grpc_plugin.c +0 -70
  578. data/src/core/ext/census/initialize.c +0 -51
  579. data/src/core/ext/census/intrusive_hash_map.c +0 -305
  580. data/src/core/ext/census/intrusive_hash_map.h +0 -152
  581. data/src/core/ext/census/intrusive_hash_map_internal.h +0 -48
  582. data/src/core/ext/census/mlog.c +0 -586
  583. data/src/core/ext/census/mlog.h +0 -80
  584. data/src/core/ext/census/operation.c +0 -48
  585. data/src/core/ext/census/placeholders.c +0 -49
  586. data/src/core/ext/census/resource.c +0 -303
  587. data/src/core/ext/census/resource.h +0 -48
  588. data/src/core/ext/census/rpc_metric_id.h +0 -36
  589. data/src/core/ext/census/trace_context.c +0 -71
  590. data/src/core/ext/census/trace_context.h +0 -56
  591. data/src/core/ext/census/trace_label.h +0 -46
  592. data/src/core/ext/census/trace_propagation.h +0 -48
  593. data/src/core/ext/census/trace_status.h +0 -30
  594. data/src/core/ext/census/trace_string.h +0 -35
  595. data/src/core/ext/census/tracing.c +0 -55
  596. data/src/core/ext/census/tracing.h +0 -109
  597. data/src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.c +0 -714
  598. data/src/core/ext/filters/client_channel/lb_policy/round_robin/round_robin.c +0 -924
  599. data/src/core/ext/filters/client_channel/resolver/dns/c_ares/grpc_ares_wrapper_fallback.c +0 -60
  600. data/src/core/ext/transport/chttp2/transport/flow_control.c +0 -502
  601. data/src/core/ext/transport/chttp2/transport/writing.c +0 -534
  602. data/src/core/lib/debug/trace.c +0 -146
  603. data/src/core/lib/iomgr/closure.c +0 -219
  604. data/src/core/lib/iomgr/ev_epollex_linux.c +0 -1461
  605. data/src/core/lib/iomgr/ev_posix.c +0 -266
  606. data/src/core/lib/iomgr/exec_ctx.c +0 -113
  607. data/src/core/lib/iomgr/tcp_uv.c +0 -381
  608. data/src/core/lib/security/credentials/ssl/ssl_credentials.c +0 -194
  609. data/src/core/lib/security/transport/security_connector.c +0 -914
  610. data/src/core/lib/support/backoff.c +0 -72
  611. data/src/core/lib/support/backoff.h +0 -56
  612. data/src/core/lib/support/mpscq.c +0 -79
  613. data/src/core/lib/support/stack_lockfree.c +0 -137
  614. data/src/core/lib/support/stack_lockfree.h +0 -38
  615. data/src/core/lib/transport/bdp_estimator.c +0 -110
  616. data/src/core/lib/transport/pid_controller.c +0 -63
@@ -22,7 +22,15 @@
22
22
  #include "src/core/ext/filters/load_reporting/server_load_reporting_plugin.h"
23
23
  #include "src/core/lib/channel/channel_stack.h"
24
24
 
25
+ #ifdef __cplusplus
26
+ extern "C" {
27
+ #endif
28
+
25
29
  extern const grpc_channel_filter grpc_server_load_reporting_filter;
26
30
 
31
+ #ifdef __cplusplus
32
+ }
33
+ #endif
34
+
27
35
  #endif /* GRPC_CORE_EXT_FILTERS_LOAD_REPORTING_SERVER_LOAD_REPORTING_FILTER_H \
28
- */
36
+ */
@@ -32,39 +32,39 @@
32
32
  #include "src/core/lib/surface/call.h"
33
33
  #include "src/core/lib/surface/channel_init.h"
34
34
 
35
- static bool is_load_reporting_enabled(const grpc_channel_args *a) {
35
+ static bool is_load_reporting_enabled(const grpc_channel_args* a) {
36
36
  return grpc_channel_arg_get_bool(
37
37
  grpc_channel_args_find(a, GRPC_ARG_ENABLE_LOAD_REPORTING), false);
38
38
  }
39
39
 
40
40
  static bool maybe_add_server_load_reporting_filter(
41
- grpc_exec_ctx *exec_ctx, grpc_channel_stack_builder *builder, void *arg) {
42
- const grpc_channel_args *args =
41
+ grpc_exec_ctx* exec_ctx, grpc_channel_stack_builder* builder, void* arg) {
42
+ const grpc_channel_args* args =
43
43
  grpc_channel_stack_builder_get_channel_arguments(builder);
44
- const grpc_channel_filter *filter = (const grpc_channel_filter *)arg;
45
- grpc_channel_stack_builder_iterator *it =
44
+ const grpc_channel_filter* filter = (const grpc_channel_filter*)arg;
45
+ grpc_channel_stack_builder_iterator* it =
46
46
  grpc_channel_stack_builder_iterator_find(builder, filter->name);
47
47
  const bool already_has_load_reporting_filter =
48
48
  !grpc_channel_stack_builder_iterator_is_end(it);
49
49
  grpc_channel_stack_builder_iterator_destroy(it);
50
50
  if (is_load_reporting_enabled(args) && !already_has_load_reporting_filter) {
51
- return grpc_channel_stack_builder_prepend_filter(builder, filter, NULL,
52
- NULL);
51
+ return grpc_channel_stack_builder_prepend_filter(builder, filter, nullptr,
52
+ nullptr);
53
53
  }
54
54
  return true;
55
55
  }
56
56
 
57
57
  grpc_arg grpc_load_reporting_enable_arg() {
58
- return grpc_channel_arg_integer_create((char *)GRPC_ARG_ENABLE_LOAD_REPORTING,
58
+ return grpc_channel_arg_integer_create((char*)GRPC_ARG_ENABLE_LOAD_REPORTING,
59
59
  1);
60
60
  }
61
61
 
62
62
  /* Plugin registration */
63
63
 
64
- void grpc_server_load_reporting_plugin_init(void) {
64
+ extern "C" void grpc_server_load_reporting_plugin_init(void) {
65
65
  grpc_channel_init_register_stage(GRPC_SERVER_CHANNEL, INT_MAX,
66
66
  maybe_add_server_load_reporting_filter,
67
- (void *)&grpc_server_load_reporting_filter);
67
+ (void*)&grpc_server_load_reporting_filter);
68
68
  }
69
69
 
70
- void grpc_server_load_reporting_plugin_shutdown() {}
70
+ extern "C" void grpc_server_load_reporting_plugin_shutdown() {}
@@ -23,6 +23,10 @@
23
23
 
24
24
  #include "src/core/lib/channel/channel_stack.h"
25
25
 
26
+ #ifdef __cplusplus
27
+ extern "C" {
28
+ #endif
29
+
26
30
  /** Identifiers for the invocation point of the users LR callback */
27
31
  typedef enum grpc_load_reporting_source {
28
32
  GRPC_LR_POINT_UNKNOWN = 0,
@@ -45,15 +49,19 @@ typedef struct grpc_load_reporting_call_data {
45
49
 
46
50
  /** Only valid when \a source is \a GRPC_LR_POINT_CALL_DESTRUCTION, that is,
47
51
  * once the call has completed */
48
- const grpc_call_final_info *final_info;
52
+ const grpc_call_final_info* final_info;
49
53
 
50
- const char *initial_md_string; /**< value string for LR's initial md key */
51
- const char *trailing_md_string; /**< value string for LR's trailing md key */
52
- const char *method_name; /**< Corresponds to :path header */
54
+ const char* initial_md_string; /**< value string for LR's initial md key */
55
+ const char* trailing_md_string; /**< value string for LR's trailing md key */
56
+ const char* method_name; /**< Corresponds to :path header */
53
57
  } grpc_load_reporting_call_data;
54
58
 
55
59
  /** Return a \a grpc_arg enabling load reporting */
56
60
  grpc_arg grpc_load_reporting_enable_arg();
57
61
 
62
+ #ifdef __cplusplus
63
+ }
64
+ #endif
65
+
58
66
  #endif /* GRPC_CORE_EXT_FILTERS_LOAD_REPORTING_SERVER_LOAD_REPORTING_PLUGIN_H \
59
- */
67
+ */
@@ -33,9 +33,9 @@
33
33
  #define MAX_CONNECTION_AGE_JITTER 0.1
34
34
 
35
35
  #define MAX_CONNECTION_AGE_INTEGER_OPTIONS \
36
- (grpc_integer_options) { DEFAULT_MAX_CONNECTION_AGE_MS, 1, INT_MAX }
36
+ { DEFAULT_MAX_CONNECTION_AGE_MS, 1, INT_MAX }
37
37
  #define MAX_CONNECTION_IDLE_INTEGER_OPTIONS \
38
- (grpc_integer_options) { DEFAULT_MAX_CONNECTION_IDLE_MS, 1, INT_MAX }
38
+ { DEFAULT_MAX_CONNECTION_IDLE_MS, 1, INT_MAX }
39
39
 
40
40
  typedef struct channel_data {
41
41
  /* We take a reference to the channel stack for the timer callback */
@@ -56,11 +56,11 @@ typedef struct channel_data {
56
56
  max_connection_idle */
57
57
  grpc_timer max_idle_timer;
58
58
  /* Allowed max time a channel may have no outstanding rpcs */
59
- gpr_timespec max_connection_idle;
59
+ grpc_millis max_connection_idle;
60
60
  /* Allowed max time a channel may exist */
61
- gpr_timespec max_connection_age;
61
+ grpc_millis max_connection_age;
62
62
  /* Allowed grace period after the channel reaches its max age */
63
- gpr_timespec max_connection_age_grace;
63
+ grpc_millis max_connection_age_grace;
64
64
  /* Closure to run when the channel's idle duration reaches max_connection_idle
65
65
  and should be closed gracefully */
66
66
  grpc_closure close_max_idle_channel;
@@ -99,10 +99,9 @@ static void increase_call_count(grpc_exec_ctx* exec_ctx, channel_data* chand) {
99
99
  static void decrease_call_count(grpc_exec_ctx* exec_ctx, channel_data* chand) {
100
100
  if (gpr_atm_full_fetch_add(&chand->call_count, -1) == 1) {
101
101
  GRPC_CHANNEL_STACK_REF(chand->channel_stack, "max_age max_idle_timer");
102
- grpc_timer_init(
103
- exec_ctx, &chand->max_idle_timer,
104
- gpr_time_add(gpr_now(GPR_CLOCK_MONOTONIC), chand->max_connection_idle),
105
- &chand->close_max_idle_channel, gpr_now(GPR_CLOCK_MONOTONIC));
102
+ grpc_timer_init(exec_ctx, &chand->max_idle_timer,
103
+ grpc_exec_ctx_now(exec_ctx) + chand->max_connection_idle,
104
+ &chand->close_max_idle_channel);
106
105
  }
107
106
  }
108
107
 
@@ -123,13 +122,12 @@ static void start_max_age_timer_after_init(grpc_exec_ctx* exec_ctx, void* arg,
123
122
  gpr_mu_lock(&chand->max_age_timer_mu);
124
123
  chand->max_age_timer_pending = true;
125
124
  GRPC_CHANNEL_STACK_REF(chand->channel_stack, "max_age max_age_timer");
126
- grpc_timer_init(
127
- exec_ctx, &chand->max_age_timer,
128
- gpr_time_add(gpr_now(GPR_CLOCK_MONOTONIC), chand->max_connection_age),
129
- &chand->close_max_age_channel, gpr_now(GPR_CLOCK_MONOTONIC));
125
+ grpc_timer_init(exec_ctx, &chand->max_age_timer,
126
+ grpc_exec_ctx_now(exec_ctx) + chand->max_connection_age,
127
+ &chand->close_max_age_channel);
130
128
  gpr_mu_unlock(&chand->max_age_timer_mu);
131
- grpc_transport_op* op = grpc_make_transport_op(NULL);
132
- op->on_connectivity_state_change = &chand->channel_connectivity_changed,
129
+ grpc_transport_op* op = grpc_make_transport_op(nullptr);
130
+ op->on_connectivity_state_change = &chand->channel_connectivity_changed;
133
131
  op->connectivity_state = &chand->connectivity_state;
134
132
  grpc_channel_next_op(exec_ctx,
135
133
  grpc_channel_stack_element(chand->channel_stack, 0), op);
@@ -144,11 +142,12 @@ static void start_max_age_grace_timer_after_goaway_op(grpc_exec_ctx* exec_ctx,
144
142
  gpr_mu_lock(&chand->max_age_timer_mu);
145
143
  chand->max_age_grace_timer_pending = true;
146
144
  GRPC_CHANNEL_STACK_REF(chand->channel_stack, "max_age max_age_grace_timer");
147
- grpc_timer_init(exec_ctx, &chand->max_age_grace_timer,
148
- gpr_time_add(gpr_now(GPR_CLOCK_MONOTONIC),
149
- chand->max_connection_age_grace),
150
- &chand->force_close_max_age_channel,
151
- gpr_now(GPR_CLOCK_MONOTONIC));
145
+ grpc_timer_init(
146
+ exec_ctx, &chand->max_age_grace_timer,
147
+ chand->max_connection_age_grace == GRPC_MILLIS_INF_FUTURE
148
+ ? GRPC_MILLIS_INF_FUTURE
149
+ : grpc_exec_ctx_now(exec_ctx) + chand->max_connection_age_grace,
150
+ &chand->force_close_max_age_channel);
152
151
  gpr_mu_unlock(&chand->max_age_timer_mu);
153
152
  GRPC_CHANNEL_STACK_UNREF(exec_ctx, chand->channel_stack,
154
153
  "max_age start_max_age_grace_timer_after_goaway_op");
@@ -160,7 +159,7 @@ static void close_max_idle_channel(grpc_exec_ctx* exec_ctx, void* arg,
160
159
  if (error == GRPC_ERROR_NONE) {
161
160
  /* Prevent the max idle timer from being set again */
162
161
  gpr_atm_no_barrier_fetch_add(&chand->call_count, 1);
163
- grpc_transport_op* op = grpc_make_transport_op(NULL);
162
+ grpc_transport_op* op = grpc_make_transport_op(nullptr);
164
163
  op->goaway_error =
165
164
  grpc_error_set_int(GRPC_ERROR_CREATE_FROM_STATIC_STRING("max_idle"),
166
165
  GRPC_ERROR_INT_HTTP2_ERROR, GRPC_HTTP2_NO_ERROR);
@@ -205,7 +204,7 @@ static void force_close_max_age_channel(grpc_exec_ctx* exec_ctx, void* arg,
205
204
  chand->max_age_grace_timer_pending = false;
206
205
  gpr_mu_unlock(&chand->max_age_timer_mu);
207
206
  if (error == GRPC_ERROR_NONE) {
208
- grpc_transport_op* op = grpc_make_transport_op(NULL);
207
+ grpc_transport_op* op = grpc_make_transport_op(nullptr);
209
208
  op->disconnect_with_error =
210
209
  GRPC_ERROR_CREATE_FROM_STATIC_STRING("Channel reaches max age");
211
210
  grpc_channel_element* elem =
@@ -222,8 +221,8 @@ static void channel_connectivity_changed(grpc_exec_ctx* exec_ctx, void* arg,
222
221
  grpc_error* error) {
223
222
  channel_data* chand = (channel_data*)arg;
224
223
  if (chand->connectivity_state != GRPC_CHANNEL_SHUTDOWN) {
225
- grpc_transport_op* op = grpc_make_transport_op(NULL);
226
- op->on_connectivity_state_change = &chand->channel_connectivity_changed,
224
+ grpc_transport_op* op = grpc_make_transport_op(nullptr);
225
+ op->on_connectivity_state_change = &chand->channel_connectivity_changed;
227
226
  op->connectivity_state = &chand->connectivity_state;
228
227
  grpc_channel_next_op(
229
228
  exec_ctx, grpc_channel_stack_element(chand->channel_stack, 0), op);
@@ -249,7 +248,8 @@ static void channel_connectivity_changed(grpc_exec_ctx* exec_ctx, void* arg,
249
248
  connection storms. Note that the MAX_CONNECTION_AGE option without jitter
250
249
  would not create connection storms by itself, but if there happened to be a
251
250
  connection storm it could cause it to repeat at a fixed period. */
252
- static int add_random_max_connection_age_jitter(int value) {
251
+ static grpc_millis
252
+ add_random_max_connection_age_jitter_and_convert_to_grpc_millis(int value) {
253
253
  /* generate a random number between 1 - MAX_CONNECTION_AGE_JITTER and
254
254
  1 + MAX_CONNECTION_AGE_JITTER */
255
255
  double multiplier = rand() * MAX_CONNECTION_AGE_JITTER * 2.0 / RAND_MAX +
@@ -257,7 +257,9 @@ static int add_random_max_connection_age_jitter(int value) {
257
257
  double result = multiplier * value;
258
258
  /* INT_MAX - 0.5 converts the value to float, so that result will not be
259
259
  cast to int implicitly before the comparison. */
260
- return result > INT_MAX - 0.5 ? INT_MAX : (int)result;
260
+ return result > ((double)GRPC_MILLIS_INF_FUTURE) - 0.5
261
+ ? GRPC_MILLIS_INF_FUTURE
262
+ : (grpc_millis)result;
261
263
  }
262
264
 
263
265
  /* Constructor for call_data. */
@@ -287,46 +289,36 @@ static grpc_error* init_channel_elem(grpc_exec_ctx* exec_ctx,
287
289
  chand->max_age_grace_timer_pending = false;
288
290
  chand->channel_stack = args->channel_stack;
289
291
  chand->max_connection_age =
290
- DEFAULT_MAX_CONNECTION_AGE_MS == INT_MAX
291
- ? gpr_inf_future(GPR_TIMESPAN)
292
- : gpr_time_from_millis(add_random_max_connection_age_jitter(
293
- DEFAULT_MAX_CONNECTION_AGE_MS),
294
- GPR_TIMESPAN);
292
+ add_random_max_connection_age_jitter_and_convert_to_grpc_millis(
293
+ DEFAULT_MAX_CONNECTION_AGE_MS);
295
294
  chand->max_connection_age_grace =
296
295
  DEFAULT_MAX_CONNECTION_AGE_GRACE_MS == INT_MAX
297
- ? gpr_inf_future(GPR_TIMESPAN)
298
- : gpr_time_from_millis(DEFAULT_MAX_CONNECTION_AGE_GRACE_MS,
299
- GPR_TIMESPAN);
300
- chand->max_connection_idle =
301
- DEFAULT_MAX_CONNECTION_IDLE_MS == INT_MAX
302
- ? gpr_inf_future(GPR_TIMESPAN)
303
- : gpr_time_from_millis(DEFAULT_MAX_CONNECTION_IDLE_MS, GPR_TIMESPAN);
296
+ ? GRPC_MILLIS_INF_FUTURE
297
+ : DEFAULT_MAX_CONNECTION_AGE_GRACE_MS;
298
+ chand->max_connection_idle = DEFAULT_MAX_CONNECTION_IDLE_MS == INT_MAX
299
+ ? GRPC_MILLIS_INF_FUTURE
300
+ : DEFAULT_MAX_CONNECTION_IDLE_MS;
304
301
  for (size_t i = 0; i < args->channel_args->num_args; ++i) {
305
302
  if (0 == strcmp(args->channel_args->args[i].key,
306
303
  GRPC_ARG_MAX_CONNECTION_AGE_MS)) {
307
304
  const int value = grpc_channel_arg_get_integer(
308
305
  &args->channel_args->args[i], MAX_CONNECTION_AGE_INTEGER_OPTIONS);
309
306
  chand->max_connection_age =
310
- value == INT_MAX
311
- ? gpr_inf_future(GPR_TIMESPAN)
312
- : gpr_time_from_millis(
313
- add_random_max_connection_age_jitter(value), GPR_TIMESPAN);
307
+ add_random_max_connection_age_jitter_and_convert_to_grpc_millis(
308
+ value);
314
309
  } else if (0 == strcmp(args->channel_args->args[i].key,
315
310
  GRPC_ARG_MAX_CONNECTION_AGE_GRACE_MS)) {
316
311
  const int value = grpc_channel_arg_get_integer(
317
312
  &args->channel_args->args[i],
318
- (grpc_integer_options){DEFAULT_MAX_CONNECTION_AGE_GRACE_MS, 0,
319
- INT_MAX});
313
+ {DEFAULT_MAX_CONNECTION_AGE_GRACE_MS, 0, INT_MAX});
320
314
  chand->max_connection_age_grace =
321
- value == INT_MAX ? gpr_inf_future(GPR_TIMESPAN)
322
- : gpr_time_from_millis(value, GPR_TIMESPAN);
315
+ value == INT_MAX ? GRPC_MILLIS_INF_FUTURE : value;
323
316
  } else if (0 == strcmp(args->channel_args->args[i].key,
324
317
  GRPC_ARG_MAX_CONNECTION_IDLE_MS)) {
325
318
  const int value = grpc_channel_arg_get_integer(
326
319
  &args->channel_args->args[i], MAX_CONNECTION_IDLE_INTEGER_OPTIONS);
327
320
  chand->max_connection_idle =
328
- value == INT_MAX ? gpr_inf_future(GPR_TIMESPAN)
329
- : gpr_time_from_millis(value, GPR_TIMESPAN);
321
+ value == INT_MAX ? GRPC_MILLIS_INF_FUTURE : value;
330
322
  }
331
323
  }
332
324
  GRPC_CLOSURE_INIT(&chand->close_max_idle_channel, close_max_idle_channel,
@@ -349,8 +341,7 @@ static grpc_error* init_channel_elem(grpc_exec_ctx* exec_ctx,
349
341
  channel_connectivity_changed, chand,
350
342
  grpc_schedule_on_exec_ctx);
351
343
 
352
- if (gpr_time_cmp(chand->max_connection_age, gpr_inf_future(GPR_TIMESPAN)) !=
353
- 0) {
344
+ if (chand->max_connection_age != GRPC_MILLIS_INF_FUTURE) {
354
345
  /* When the channel reaches its max age, we send down an op with
355
346
  goaway_error set. However, we can't send down any ops until after the
356
347
  channel stack is fully initialized. If we start the timer here, we have
@@ -367,8 +358,7 @@ static grpc_error* init_channel_elem(grpc_exec_ctx* exec_ctx,
367
358
  /* Initialize the number of calls as 1, so that the max_idle_timer will not
368
359
  start until start_max_idle_timer_after_init is invoked. */
369
360
  gpr_atm_rel_store(&chand->call_count, 1);
370
- if (gpr_time_cmp(chand->max_connection_idle, gpr_inf_future(GPR_TIMESPAN)) !=
371
- 0) {
361
+ if (chand->max_connection_idle != GRPC_MILLIS_INF_FUTURE) {
372
362
  GRPC_CHANNEL_STACK_REF(chand->channel_stack,
373
363
  "max_age start_max_idle_timer_after_init");
374
364
  GRPC_CLOSURE_SCHED(exec_ctx, &chand->start_max_idle_timer_after_init,
@@ -408,16 +398,16 @@ static bool maybe_add_max_age_filter(grpc_exec_ctx* exec_ctx,
408
398
  MAX_CONNECTION_IDLE_INTEGER_OPTIONS) != INT_MAX;
409
399
  if (enable) {
410
400
  return grpc_channel_stack_builder_prepend_filter(
411
- builder, &grpc_max_age_filter, NULL, NULL);
401
+ builder, &grpc_max_age_filter, nullptr, nullptr);
412
402
  } else {
413
403
  return true;
414
404
  }
415
405
  }
416
406
 
417
- void grpc_max_age_filter_init(void) {
407
+ extern "C" void grpc_max_age_filter_init(void) {
418
408
  grpc_channel_init_register_stage(GRPC_SERVER_CHANNEL,
419
409
  GRPC_CHANNEL_INIT_BUILTIN_PRIORITY,
420
- maybe_add_max_age_filter, NULL);
410
+ maybe_add_max_age_filter, nullptr);
421
411
  }
422
412
 
423
- void grpc_max_age_filter_shutdown(void) {}
413
+ extern "C" void grpc_max_age_filter_shutdown(void) {}
@@ -19,6 +19,14 @@
19
19
 
20
20
  #include "src/core/lib/channel/channel_stack.h"
21
21
 
22
+ #ifdef __cplusplus
23
+ extern "C" {
24
+ #endif
25
+
22
26
  extern const grpc_channel_filter grpc_max_age_filter;
23
27
 
28
+ #ifdef __cplusplus
29
+ }
30
+ #endif
31
+
24
32
  #endif /* GRPC_CORE_EXT_FILTERS_MAX_AGE_MAX_AGE_FILTER_H */
@@ -30,40 +30,60 @@
30
30
  #include "src/core/lib/surface/channel_init.h"
31
31
  #include "src/core/lib/transport/service_config.h"
32
32
 
33
- typedef struct message_size_limits {
33
+ typedef struct {
34
34
  int max_send_size;
35
35
  int max_recv_size;
36
36
  } message_size_limits;
37
37
 
38
- static void message_size_limits_free(grpc_exec_ctx* exec_ctx, void* value) {
39
- gpr_free(value);
38
+ typedef struct {
39
+ gpr_refcount refs;
40
+ message_size_limits limits;
41
+ } refcounted_message_size_limits;
42
+
43
+ static void* refcounted_message_size_limits_ref(void* value) {
44
+ refcounted_message_size_limits* limits =
45
+ (refcounted_message_size_limits*)value;
46
+ gpr_ref(&limits->refs);
47
+ return value;
48
+ }
49
+
50
+ static void refcounted_message_size_limits_unref(grpc_exec_ctx* exec_ctx,
51
+ void* value) {
52
+ refcounted_message_size_limits* limits =
53
+ (refcounted_message_size_limits*)value;
54
+ if (gpr_unref(&limits->refs)) {
55
+ gpr_free(value);
56
+ }
40
57
  }
41
58
 
42
- static void* message_size_limits_create_from_json(const grpc_json* json) {
59
+ static void* refcounted_message_size_limits_create_from_json(
60
+ const grpc_json* json) {
43
61
  int max_request_message_bytes = -1;
44
62
  int max_response_message_bytes = -1;
45
- for (grpc_json* field = json->child; field != NULL; field = field->next) {
46
- if (field->key == NULL) continue;
63
+ for (grpc_json* field = json->child; field != nullptr; field = field->next) {
64
+ if (field->key == nullptr) continue;
47
65
  if (strcmp(field->key, "maxRequestMessageBytes") == 0) {
48
- if (max_request_message_bytes >= 0) return NULL; // Duplicate.
66
+ if (max_request_message_bytes >= 0) return nullptr; // Duplicate.
49
67
  if (field->type != GRPC_JSON_STRING && field->type != GRPC_JSON_NUMBER) {
50
- return NULL;
68
+ return nullptr;
51
69
  }
52
70
  max_request_message_bytes = gpr_parse_nonnegative_int(field->value);
53
- if (max_request_message_bytes == -1) return NULL;
71
+ if (max_request_message_bytes == -1) return nullptr;
54
72
  } else if (strcmp(field->key, "maxResponseMessageBytes") == 0) {
55
- if (max_response_message_bytes >= 0) return NULL; // Duplicate.
73
+ if (max_response_message_bytes >= 0) return nullptr; // Duplicate.
56
74
  if (field->type != GRPC_JSON_STRING && field->type != GRPC_JSON_NUMBER) {
57
- return NULL;
75
+ return nullptr;
58
76
  }
59
77
  max_response_message_bytes = gpr_parse_nonnegative_int(field->value);
60
- if (max_response_message_bytes == -1) return NULL;
78
+ if (max_response_message_bytes == -1) return nullptr;
61
79
  }
62
80
  }
63
- message_size_limits* value =
64
- (message_size_limits*)gpr_malloc(sizeof(message_size_limits));
65
- value->max_send_size = max_request_message_bytes;
66
- value->max_recv_size = max_response_message_bytes;
81
+ refcounted_message_size_limits* value =
82
+ (refcounted_message_size_limits*)gpr_malloc(
83
+ sizeof(refcounted_message_size_limits));
84
+ gpr_ref_init(&value->refs, 1);
85
+ value->limits.max_send_size = max_request_message_bytes;
86
+ value->limits.max_recv_size = max_response_message_bytes;
67
87
  return value;
68
88
  }
69
89
 
@@ -82,7 +102,7 @@ typedef struct call_data {
82
102
 
83
103
  typedef struct channel_data {
84
104
  message_size_limits limits;
85
- // Maps path names to message_size_limits structs.
105
+ // Maps path names to refcounted_message_size_limits structs.
86
106
  grpc_slice_hash_table* method_limit_table;
87
107
  } channel_data;
88
108
 
@@ -92,7 +112,7 @@ static void recv_message_ready(grpc_exec_ctx* exec_ctx, void* user_data,
92
112
  grpc_error* error) {
93
113
  grpc_call_element* elem = (grpc_call_element*)user_data;
94
114
  call_data* calld = (call_data*)elem->call_data;
95
- if (*calld->recv_message != NULL && calld->limits.max_recv_size >= 0 &&
115
+ if (*calld->recv_message != nullptr && calld->limits.max_recv_size >= 0 &&
96
116
  (*calld->recv_message)->length > (size_t)calld->limits.max_recv_size) {
97
117
  char* message_string;
98
118
  gpr_asprintf(&message_string,
@@ -155,7 +175,7 @@ static grpc_error* init_call_elem(grpc_exec_ctx* exec_ctx,
155
175
  channel_data* chand = (channel_data*)elem->channel_data;
156
176
  call_data* calld = (call_data*)elem->call_data;
157
177
  calld->call_combiner = args->call_combiner;
158
- calld->next_recv_message_ready = NULL;
178
+ calld->next_recv_message_ready = nullptr;
159
179
  GRPC_CLOSURE_INIT(&calld->recv_message_ready, recv_message_ready, elem,
160
180
  grpc_schedule_on_exec_ctx);
161
181
  // Get max sizes from channel data, then merge in per-method config values.
@@ -163,20 +183,20 @@ static grpc_error* init_call_elem(grpc_exec_ctx* exec_ctx,
163
183
  // apply the max request size to the send limit and the max response
164
184
  // size to the receive limit.
165
185
  calld->limits = chand->limits;
166
- if (chand->method_limit_table != NULL) {
167
- message_size_limits* limits =
168
- (message_size_limits*)grpc_method_config_table_get(
186
+ if (chand->method_limit_table != nullptr) {
187
+ refcounted_message_size_limits* limits =
188
+ (refcounted_message_size_limits*)grpc_method_config_table_get(
169
189
  exec_ctx, chand->method_limit_table, args->path);
170
- if (limits != NULL) {
171
- if (limits->max_send_size >= 0 &&
172
- (limits->max_send_size < calld->limits.max_send_size ||
190
+ if (limits != nullptr) {
191
+ if (limits->limits.max_send_size >= 0 &&
192
+ (limits->limits.max_send_size < calld->limits.max_send_size ||
173
193
  calld->limits.max_send_size < 0)) {
174
- calld->limits.max_send_size = limits->max_send_size;
194
+ calld->limits.max_send_size = limits->limits.max_send_size;
175
195
  }
176
- if (limits->max_recv_size >= 0 &&
177
- (limits->max_recv_size < calld->limits.max_recv_size ||
196
+ if (limits->limits.max_recv_size >= 0 &&
197
+ (limits->limits.max_recv_size < calld->limits.max_recv_size ||
178
198
  calld->limits.max_recv_size < 0)) {
179
- calld->limits.max_recv_size = limits->max_recv_size;
199
+ calld->limits.max_recv_size = limits->limits.max_recv_size;
180
200
  }
181
201
  }
182
202
  }
@@ -230,15 +250,17 @@ static grpc_error* init_channel_elem(grpc_exec_ctx* exec_ctx,
230
250
  // Get method config table from channel args.
231
251
  const grpc_arg* channel_arg =
232
252
  grpc_channel_args_find(args->channel_args, GRPC_ARG_SERVICE_CONFIG);
233
- if (channel_arg != NULL) {
253
+ if (channel_arg != nullptr) {
234
254
  GPR_ASSERT(channel_arg->type == GRPC_ARG_STRING);
235
255
  grpc_service_config* service_config =
236
256
  grpc_service_config_create(channel_arg->value.string);
237
- if (service_config != NULL) {
257
+ if (service_config != nullptr) {
238
258
  chand->method_limit_table =
239
259
  grpc_service_config_create_method_config_table(
240
- exec_ctx, service_config, message_size_limits_create_from_json,
241
- message_size_limits_free);
260
+ exec_ctx, service_config,
261
+ refcounted_message_size_limits_create_from_json,
262
+ refcounted_message_size_limits_ref,
263
+ refcounted_message_size_limits_unref);
242
264
  grpc_service_config_destroy(service_config);
243
265
  }
244
266
  }
@@ -277,27 +299,27 @@ static bool maybe_add_message_size_filter(grpc_exec_ctx* exec_ctx,
277
299
  }
278
300
  const grpc_arg* a =
279
301
  grpc_channel_args_find(channel_args, GRPC_ARG_SERVICE_CONFIG);
280
- if (a != NULL) {
302
+ if (a != nullptr) {
281
303
  enable = true;
282
304
  }
283
305
  if (enable) {
284
306
  return grpc_channel_stack_builder_prepend_filter(
285
- builder, &grpc_message_size_filter, NULL, NULL);
307
+ builder, &grpc_message_size_filter, nullptr, nullptr);
286
308
  } else {
287
309
  return true;
288
310
  }
289
311
  }
290
312
 
291
- void grpc_message_size_filter_init(void) {
313
+ extern "C" void grpc_message_size_filter_init(void) {
292
314
  grpc_channel_init_register_stage(GRPC_CLIENT_SUBCHANNEL,
293
315
  GRPC_CHANNEL_INIT_BUILTIN_PRIORITY,
294
- maybe_add_message_size_filter, NULL);
316
+ maybe_add_message_size_filter, nullptr);
295
317
  grpc_channel_init_register_stage(GRPC_CLIENT_DIRECT_CHANNEL,
296
318
  GRPC_CHANNEL_INIT_BUILTIN_PRIORITY,
297
- maybe_add_message_size_filter, NULL);
319
+ maybe_add_message_size_filter, nullptr);
298
320
  grpc_channel_init_register_stage(GRPC_SERVER_CHANNEL,
299
321
  GRPC_CHANNEL_INIT_BUILTIN_PRIORITY,
300
- maybe_add_message_size_filter, NULL);
322
+ maybe_add_message_size_filter, nullptr);
301
323
  }
302
324
 
303
- void grpc_message_size_filter_shutdown(void) {}
325
+ extern "C" void grpc_message_size_filter_shutdown(void) {}