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
@@ -0,0 +1,48 @@
1
+ /*
2
+ *
3
+ * Copyright 2016 gRPC authors.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ *
17
+ */
18
+
19
+ #include "src/core/lib/transport/pid_controller.h"
20
+ #include <grpc/support/useful.h>
21
+
22
+ namespace grpc_core {
23
+
24
+ PidController::PidController(const Args& args)
25
+ : last_control_value_(args.initial_control_value()), args_(args) {}
26
+
27
+ double PidController::Update(double error, double dt) {
28
+ if (dt <= 0) return last_control_value_;
29
+ /* integrate error using the trapezoid rule */
30
+ error_integral_ += dt * (last_error_ + error) * 0.5;
31
+ error_integral_ = GPR_CLAMP(error_integral_, -args_.integral_range(),
32
+ args_.integral_range());
33
+ double diff_error = (error - last_error_) / dt;
34
+ /* calculate derivative of control value vs time */
35
+ double dc_dt = args_.gain_p() * error + args_.gain_i() * error_integral_ +
36
+ args_.gain_d() * diff_error;
37
+ /* and perform trapezoidal integration */
38
+ double new_control_value =
39
+ last_control_value_ + dt * (last_dc_dt_ + dc_dt) * 0.5;
40
+ new_control_value = GPR_CLAMP(new_control_value, args_.min_control_value(),
41
+ args_.max_control_value());
42
+ last_error_ = error;
43
+ last_dc_dt_ = dc_dt;
44
+ last_control_value_ = new_control_value;
45
+ return new_control_value;
46
+ }
47
+
48
+ } // namespace grpc_core
@@ -19,6 +19,8 @@
19
19
  #ifndef GRPC_CORE_LIB_TRANSPORT_PID_CONTROLLER_H
20
20
  #define GRPC_CORE_LIB_TRANSPORT_PID_CONTROLLER_H
21
21
 
22
+ #include <limits>
23
+
22
24
  /* \file Simple PID controller.
23
25
  Implements a proportional-integral-derivative controller.
24
26
  Used when we want to iteratively control a variable to converge some other
@@ -26,37 +28,87 @@
26
28
  Gains can be set to adjust sensitivity to current error (p), the integral
27
29
  of error (i), and the derivative of error (d). */
28
30
 
29
- typedef struct {
30
- double gain_p;
31
- double gain_i;
32
- double gain_d;
33
- double initial_control_value;
34
- double min_control_value;
35
- double max_control_value;
36
- double integral_range;
37
- } grpc_pid_controller_args;
38
-
39
- typedef struct {
40
- double last_error;
41
- double error_integral;
42
- double last_control_value;
43
- double last_dc_dt;
44
- grpc_pid_controller_args args;
45
- } grpc_pid_controller;
46
-
47
- /** Initialize the controller */
48
- void grpc_pid_controller_init(grpc_pid_controller *pid_controller,
49
- grpc_pid_controller_args args);
50
-
51
- /** Reset the controller: useful when things have changed significantly */
52
- void grpc_pid_controller_reset(grpc_pid_controller *pid_controller);
53
-
54
- /** Update the controller: given a current error estimate, and the time since
55
- the last update, returns a new control value */
56
- double grpc_pid_controller_update(grpc_pid_controller *pid_controller,
57
- double error, double dt);
58
-
59
- /** Returns the last control value calculated */
60
- double grpc_pid_controller_last(grpc_pid_controller *pid_controller);
31
+ namespace grpc_core {
32
+
33
+ class PidController {
34
+ public:
35
+ class Args {
36
+ public:
37
+ double gain_p() const { return gain_p_; }
38
+ double gain_i() const { return gain_i_; }
39
+ double gain_d() const { return gain_d_; }
40
+ double initial_control_value() const { return initial_control_value_; }
41
+ double min_control_value() const { return min_control_value_; }
42
+ double max_control_value() const { return max_control_value_; }
43
+ double integral_range() const { return integral_range_; }
44
+
45
+ Args& set_gain_p(double gain_p) {
46
+ gain_p_ = gain_p;
47
+ return *this;
48
+ }
49
+ Args& set_gain_i(double gain_i) {
50
+ gain_i_ = gain_i;
51
+ return *this;
52
+ }
53
+ Args& set_gain_d(double gain_d) {
54
+ gain_d_ = gain_d;
55
+ return *this;
56
+ }
57
+ Args& set_initial_control_value(double initial_control_value) {
58
+ initial_control_value_ = initial_control_value;
59
+ return *this;
60
+ }
61
+ Args& set_min_control_value(double min_control_value) {
62
+ min_control_value_ = min_control_value;
63
+ return *this;
64
+ }
65
+ Args& set_max_control_value(double max_control_value) {
66
+ max_control_value_ = max_control_value;
67
+ return *this;
68
+ }
69
+ Args& set_integral_range(double integral_range) {
70
+ integral_range_ = integral_range;
71
+ return *this;
72
+ }
73
+
74
+ private:
75
+ double gain_p_ = 0.0;
76
+ double gain_i_ = 0.0;
77
+ double gain_d_ = 0.0;
78
+ double initial_control_value_ = 0.0;
79
+ double min_control_value_ = std::numeric_limits<double>::min();
80
+ double max_control_value_ = std::numeric_limits<double>::max();
81
+ double integral_range_ = std::numeric_limits<double>::max();
82
+ };
83
+
84
+ explicit PidController(const Args& args);
85
+
86
+ /// Reset the controller internal state: useful when the environment has
87
+ /// changed significantly
88
+ void Reset() {
89
+ last_error_ = 0.0;
90
+ last_dc_dt_ = 0.0;
91
+ error_integral_ = 0.0;
92
+ }
93
+
94
+ /// Update the controller: given a current error estimate, and the time since
95
+ /// the last update, returns a new control value
96
+ double Update(double error, double dt);
97
+
98
+ /// Returns the last control value calculated
99
+ double last_control_value() const { return last_control_value_; }
100
+
101
+ /// Returns the current error integral (mostly for testing)
102
+ double error_integral() const { return error_integral_; }
103
+
104
+ private:
105
+ double last_error_ = 0.0;
106
+ double error_integral_ = 0.0;
107
+ double last_control_value_;
108
+ double last_dc_dt_ = 0.0;
109
+ const Args args_;
110
+ };
111
+
112
+ } // namespace grpc_core
61
113
 
62
114
  #endif /* GRPC_CORE_LIB_TRANSPORT_PID_CONTROLLER_H */
@@ -64,11 +64,11 @@ grpc_service_config* grpc_service_config_create(const char* json_string) {
64
64
  service_config->json_string = gpr_strdup(json_string);
65
65
  service_config->json_tree =
66
66
  grpc_json_parse_string(service_config->json_string);
67
- if (service_config->json_tree == NULL) {
67
+ if (service_config->json_tree == nullptr) {
68
68
  gpr_log(GPR_INFO, "failed to parse JSON for service config");
69
69
  gpr_free(service_config->json_string);
70
70
  gpr_free(service_config);
71
- return NULL;
71
+ return nullptr;
72
72
  }
73
73
  return service_config;
74
74
  }
@@ -83,9 +83,9 @@ void grpc_service_config_parse_global_params(
83
83
  const grpc_service_config* service_config,
84
84
  void (*process_json)(const grpc_json* json, void* arg), void* arg) {
85
85
  const grpc_json* json = service_config->json_tree;
86
- if (json->type != GRPC_JSON_OBJECT || json->key != NULL) return;
87
- for (grpc_json* field = json->child; field != NULL; field = field->next) {
88
- if (field->key == NULL) return;
86
+ if (json->type != GRPC_JSON_OBJECT || json->key != nullptr) return;
87
+ for (grpc_json* field = json->child; field != nullptr; field = field->next) {
88
+ if (field->key == nullptr) return;
89
89
  if (strcmp(field->key, "methodConfig") == 0) continue;
90
90
  process_json(field, arg);
91
91
  }
@@ -94,13 +94,13 @@ void grpc_service_config_parse_global_params(
94
94
  const char* grpc_service_config_get_lb_policy_name(
95
95
  const grpc_service_config* service_config) {
96
96
  const grpc_json* json = service_config->json_tree;
97
- if (json->type != GRPC_JSON_OBJECT || json->key != NULL) return NULL;
98
- const char* lb_policy_name = NULL;
99
- for (grpc_json* field = json->child; field != NULL; field = field->next) {
100
- if (field->key == NULL) return NULL;
97
+ if (json->type != GRPC_JSON_OBJECT || json->key != nullptr) return nullptr;
98
+ const char* lb_policy_name = nullptr;
99
+ for (grpc_json* field = json->child; field != nullptr; field = field->next) {
100
+ if (field->key == nullptr) return nullptr;
101
101
  if (strcmp(field->key, "loadBalancingPolicy") == 0) {
102
- if (lb_policy_name != NULL) return NULL; // Duplicate.
103
- if (field->type != GRPC_JSON_STRING) return NULL;
102
+ if (lb_policy_name != nullptr) return nullptr; // Duplicate.
103
+ if (field->type != GRPC_JSON_STRING) return nullptr;
104
104
  lb_policy_name = field->value;
105
105
  }
106
106
  }
@@ -110,8 +110,14 @@ const char* grpc_service_config_get_lb_policy_name(
110
110
  // Returns the number of names specified in the method config \a json.
111
111
  static size_t count_names_in_method_config_json(grpc_json* json) {
112
112
  size_t num_names = 0;
113
- for (grpc_json* field = json->child; field != NULL; field = field->next) {
114
- if (field->key != NULL && strcmp(field->key, "name") == 0) ++num_names;
113
+ for (grpc_json* field = json->child; field != nullptr; field = field->next) {
114
+ if (field->key != nullptr && strcmp(field->key, "name") == 0) {
115
+ if (field->type != GRPC_JSON_ARRAY) return -1;
116
+ for (grpc_json* name = field->child; name != nullptr; name = name->next) {
117
+ if (name->type != GRPC_JSON_OBJECT) return -1;
118
+ ++num_names;
119
+ }
120
+ }
115
121
  }
116
122
  return num_names;
117
123
  }
@@ -119,26 +125,26 @@ static size_t count_names_in_method_config_json(grpc_json* json) {
119
125
  // Returns a path string for the JSON name object specified by \a json.
120
126
  // Returns NULL on error. Caller takes ownership of result.
121
127
  static char* parse_json_method_name(grpc_json* json) {
122
- if (json->type != GRPC_JSON_OBJECT) return NULL;
123
- const char* service_name = NULL;
124
- const char* method_name = NULL;
125
- for (grpc_json* child = json->child; child != NULL; child = child->next) {
126
- if (child->key == NULL) return NULL;
127
- if (child->type != GRPC_JSON_STRING) return NULL;
128
+ if (json->type != GRPC_JSON_OBJECT) return nullptr;
129
+ const char* service_name = nullptr;
130
+ const char* method_name = nullptr;
131
+ for (grpc_json* child = json->child; child != nullptr; child = child->next) {
132
+ if (child->key == nullptr) return nullptr;
133
+ if (child->type != GRPC_JSON_STRING) return nullptr;
128
134
  if (strcmp(child->key, "service") == 0) {
129
- if (service_name != NULL) return NULL; // Duplicate.
130
- if (child->value == NULL) return NULL;
135
+ if (service_name != nullptr) return nullptr; // Duplicate.
136
+ if (child->value == nullptr) return nullptr;
131
137
  service_name = child->value;
132
138
  } else if (strcmp(child->key, "method") == 0) {
133
- if (method_name != NULL) return NULL; // Duplicate.
134
- if (child->value == NULL) return NULL;
139
+ if (method_name != nullptr) return nullptr; // Duplicate.
140
+ if (child->value == nullptr) return nullptr;
135
141
  method_name = child->value;
136
142
  }
137
143
  }
138
- if (service_name == NULL) return NULL; // Required field.
144
+ if (service_name == nullptr) return nullptr; // Required field.
139
145
  char* path;
140
146
  gpr_asprintf(&path, "/%s/%s", service_name,
141
- method_name == NULL ? "*" : method_name);
147
+ method_name == nullptr ? "*" : method_name);
142
148
  return path;
143
149
  }
144
150
 
@@ -148,20 +154,23 @@ static char* parse_json_method_name(grpc_json* json) {
148
154
  static bool parse_json_method_config(
149
155
  grpc_exec_ctx* exec_ctx, grpc_json* json,
150
156
  void* (*create_value)(const grpc_json* method_config_json),
157
+ void* (*ref_value)(void* value),
158
+ void (*unref_value)(grpc_exec_ctx* exec_ctx, void* value),
151
159
  grpc_slice_hash_table_entry* entries, size_t* idx) {
152
160
  // Construct value.
153
161
  void* method_config = create_value(json);
154
- if (method_config == NULL) return false;
162
+ if (method_config == nullptr) return false;
155
163
  // Construct list of paths.
156
164
  bool success = false;
157
165
  gpr_strvec paths;
158
166
  gpr_strvec_init(&paths);
159
- for (grpc_json* child = json->child; child != NULL; child = child->next) {
160
- if (child->key == NULL) continue;
167
+ for (grpc_json* child = json->child; child != nullptr; child = child->next) {
168
+ if (child->key == nullptr) continue;
161
169
  if (strcmp(child->key, "name") == 0) {
162
170
  if (child->type != GRPC_JSON_ARRAY) goto done;
163
- for (grpc_json* name = child->child; name != NULL; name = name->next) {
171
+ for (grpc_json* name = child->child; name != nullptr; name = name->next) {
164
172
  char* path = parse_json_method_name(name);
173
+ if (path == nullptr) goto done;
165
174
  gpr_strvec_add(&paths, path);
166
175
  }
167
176
  }
@@ -170,11 +179,12 @@ static bool parse_json_method_config(
170
179
  // Add entry for each path.
171
180
  for (size_t i = 0; i < paths.count; ++i) {
172
181
  entries[*idx].key = grpc_slice_from_copied_string(paths.strs[i]);
173
- entries[*idx].value = method_config;
182
+ entries[*idx].value = ref_value(method_config);
174
183
  ++*idx;
175
184
  }
176
185
  success = true;
177
186
  done:
187
+ unref_value(exec_ctx, method_config);
178
188
  gpr_strvec_destroy(&paths);
179
189
  return success;
180
190
  }
@@ -182,41 +192,49 @@ done:
182
192
  grpc_slice_hash_table* grpc_service_config_create_method_config_table(
183
193
  grpc_exec_ctx* exec_ctx, const grpc_service_config* service_config,
184
194
  void* (*create_value)(const grpc_json* method_config_json),
185
- void (*destroy_value)(grpc_exec_ctx* exec_ctx, void* value)) {
195
+ void* (*ref_value)(void* value),
196
+ void (*unref_value)(grpc_exec_ctx* exec_ctx, void* value)) {
186
197
  const grpc_json* json = service_config->json_tree;
187
198
  // Traverse parsed JSON tree.
188
- if (json->type != GRPC_JSON_OBJECT || json->key != NULL) return NULL;
199
+ if (json->type != GRPC_JSON_OBJECT || json->key != nullptr) return nullptr;
189
200
  size_t num_entries = 0;
190
- grpc_slice_hash_table_entry* entries = NULL;
191
- for (grpc_json* field = json->child; field != NULL; field = field->next) {
192
- if (field->key == NULL) return NULL;
201
+ grpc_slice_hash_table_entry* entries = nullptr;
202
+ for (grpc_json* field = json->child; field != nullptr; field = field->next) {
203
+ if (field->key == nullptr) return nullptr;
193
204
  if (strcmp(field->key, "methodConfig") == 0) {
194
- if (entries != NULL) return NULL; // Duplicate.
195
- if (field->type != GRPC_JSON_ARRAY) return NULL;
205
+ if (entries != nullptr) return nullptr; // Duplicate.
206
+ if (field->type != GRPC_JSON_ARRAY) return nullptr;
196
207
  // Find number of entries.
197
- for (grpc_json* method = field->child; method != NULL;
208
+ for (grpc_json* method = field->child; method != nullptr;
198
209
  method = method->next) {
199
- num_entries += count_names_in_method_config_json(method);
210
+ size_t count = count_names_in_method_config_json(method);
211
+ if (count <= 0) return nullptr;
212
+ num_entries += count;
200
213
  }
201
214
  // Populate method config table entries.
202
215
  entries = (grpc_slice_hash_table_entry*)gpr_malloc(
203
216
  num_entries * sizeof(grpc_slice_hash_table_entry));
204
217
  size_t idx = 0;
205
- for (grpc_json* method = field->child; method != NULL;
218
+ for (grpc_json* method = field->child; method != nullptr;
206
219
  method = method->next) {
207
- if (!parse_json_method_config(exec_ctx, method, create_value, entries,
208
- &idx)) {
209
- return NULL;
220
+ if (!parse_json_method_config(exec_ctx, method, create_value, ref_value,
221
+ unref_value, entries, &idx)) {
222
+ for (size_t i = 0; i < idx; ++i) {
223
+ grpc_slice_unref_internal(exec_ctx, entries[i].key);
224
+ unref_value(exec_ctx, entries[i].value);
225
+ }
226
+ gpr_free(entries);
227
+ return nullptr;
210
228
  }
211
229
  }
212
230
  GPR_ASSERT(idx == num_entries);
213
231
  }
214
232
  }
215
233
  // Instantiate method config table.
216
- grpc_slice_hash_table* method_config_table = NULL;
217
- if (entries != NULL) {
218
- method_config_table =
219
- grpc_slice_hash_table_create(num_entries, entries, destroy_value, NULL);
234
+ grpc_slice_hash_table* method_config_table = nullptr;
235
+ if (entries != nullptr) {
236
+ method_config_table = grpc_slice_hash_table_create(num_entries, entries,
237
+ unref_value, nullptr);
220
238
  gpr_free(entries);
221
239
  }
222
240
  return method_config_table;
@@ -228,7 +246,7 @@ void* grpc_method_config_table_get(grpc_exec_ctx* exec_ctx,
228
246
  void* value = grpc_slice_hash_table_get(table, path);
229
247
  // If we didn't find a match for the path, try looking for a wildcard
230
248
  // entry (i.e., change "/service/method" to "/service/*").
231
- if (value == NULL) {
249
+ if (value == nullptr) {
232
250
  char* path_str = grpc_slice_to_c_string(path);
233
251
  const char* sep = strrchr(path_str, '/') + 1;
234
252
  const size_t len = (size_t)(sep - path_str);
@@ -22,6 +22,10 @@
22
22
  #include "src/core/lib/json/json.h"
23
23
  #include "src/core/lib/slice/slice_hash_table.h"
24
24
 
25
+ #ifdef __cplusplus
26
+ extern "C" {
27
+ #endif
28
+
25
29
  typedef struct grpc_service_config grpc_service_config;
26
30
 
27
31
  grpc_service_config* grpc_service_config_create(const char* json_string);
@@ -42,12 +46,13 @@ const char* grpc_service_config_get_lb_policy_name(
42
46
  /// Creates a method config table based on the data in \a json.
43
47
  /// The table's keys are request paths. The table's value type is
44
48
  /// returned by \a create_value(), based on data parsed from the JSON tree.
45
- /// \a destroy_value is used to clean up values.
49
+ /// \a ref_value() and \a unref_value() are used to ref and unref values.
46
50
  /// Returns NULL on error.
47
51
  grpc_slice_hash_table* grpc_service_config_create_method_config_table(
48
52
  grpc_exec_ctx* exec_ctx, const grpc_service_config* service_config,
49
53
  void* (*create_value)(const grpc_json* method_config_json),
50
- void (*destroy_value)(grpc_exec_ctx* exec_ctx, void* value));
54
+ void* (*ref_value)(void* value),
55
+ void (*unref_value)(grpc_exec_ctx* exec_ctx, void* value));
51
56
 
52
57
  /// A helper function for looking up values in the table returned by
53
58
  /// \a grpc_service_config_create_method_config_table().
@@ -59,4 +64,8 @@ void* grpc_method_config_table_get(grpc_exec_ctx* exec_ctx,
59
64
  const grpc_slice_hash_table* table,
60
65
  grpc_slice path);
61
66
 
67
+ #ifdef __cplusplus
68
+ }
69
+ #endif
70
+
62
71
  #endif /* GRPC_CORE_LIB_TRANSPORT_SERVICE_CONFIG_H */
@@ -103,8 +103,8 @@ static uint8_t g_bytes[] = {
103
103
  105, 100, 101, 110, 116, 105, 116, 121, 44, 100, 101, 102, 108, 97, 116,
104
104
  101, 44, 103, 122, 105, 112};
105
105
 
106
- static void static_ref(void *unused) {}
107
- static void static_unref(grpc_exec_ctx *exec_ctx, void *unused) {}
106
+ static void static_ref(void* unused) {}
107
+ static void static_unref(grpc_exec_ctx* exec_ctx, void* unused) {}
108
108
  static const grpc_slice_refcount_vtable static_sub_vtable = {
109
109
  static_ref, static_unref, grpc_slice_default_eq_impl,
110
110
  grpc_slice_default_hash_impl};
@@ -27,6 +27,10 @@
27
27
  #ifndef GRPC_CORE_LIB_TRANSPORT_STATIC_METADATA_H
28
28
  #define GRPC_CORE_LIB_TRANSPORT_STATIC_METADATA_H
29
29
 
30
+ #ifdef __cplusplus
31
+ extern "C" {
32
+ #endif
33
+
30
34
  #include "src/core/lib/transport/metadata.h"
31
35
 
32
36
  #define GRPC_STATIC_MDSTR_COUNT 100
@@ -537,30 +541,30 @@ typedef enum {
537
541
  } grpc_metadata_batch_callouts_index;
538
542
 
539
543
  typedef union {
540
- struct grpc_linked_mdelem *array[GRPC_BATCH_CALLOUTS_COUNT];
544
+ struct grpc_linked_mdelem* array[GRPC_BATCH_CALLOUTS_COUNT];
541
545
  struct {
542
- struct grpc_linked_mdelem *path;
543
- struct grpc_linked_mdelem *method;
544
- struct grpc_linked_mdelem *status;
545
- struct grpc_linked_mdelem *authority;
546
- struct grpc_linked_mdelem *scheme;
547
- struct grpc_linked_mdelem *te;
548
- struct grpc_linked_mdelem *grpc_message;
549
- struct grpc_linked_mdelem *grpc_status;
550
- struct grpc_linked_mdelem *grpc_payload_bin;
551
- struct grpc_linked_mdelem *grpc_encoding;
552
- struct grpc_linked_mdelem *grpc_accept_encoding;
553
- struct grpc_linked_mdelem *grpc_server_stats_bin;
554
- struct grpc_linked_mdelem *grpc_tags_bin;
555
- struct grpc_linked_mdelem *grpc_trace_bin;
556
- struct grpc_linked_mdelem *content_type;
557
- struct grpc_linked_mdelem *content_encoding;
558
- struct grpc_linked_mdelem *accept_encoding;
559
- struct grpc_linked_mdelem *grpc_internal_encoding_request;
560
- struct grpc_linked_mdelem *grpc_internal_stream_encoding_request;
561
- struct grpc_linked_mdelem *user_agent;
562
- struct grpc_linked_mdelem *host;
563
- struct grpc_linked_mdelem *lb_token;
546
+ struct grpc_linked_mdelem* path;
547
+ struct grpc_linked_mdelem* method;
548
+ struct grpc_linked_mdelem* status;
549
+ struct grpc_linked_mdelem* authority;
550
+ struct grpc_linked_mdelem* scheme;
551
+ struct grpc_linked_mdelem* te;
552
+ struct grpc_linked_mdelem* grpc_message;
553
+ struct grpc_linked_mdelem* grpc_status;
554
+ struct grpc_linked_mdelem* grpc_payload_bin;
555
+ struct grpc_linked_mdelem* grpc_encoding;
556
+ struct grpc_linked_mdelem* grpc_accept_encoding;
557
+ struct grpc_linked_mdelem* grpc_server_stats_bin;
558
+ struct grpc_linked_mdelem* grpc_tags_bin;
559
+ struct grpc_linked_mdelem* grpc_trace_bin;
560
+ struct grpc_linked_mdelem* content_type;
561
+ struct grpc_linked_mdelem* content_encoding;
562
+ struct grpc_linked_mdelem* accept_encoding;
563
+ struct grpc_linked_mdelem* grpc_internal_encoding_request;
564
+ struct grpc_linked_mdelem* grpc_internal_stream_encoding_request;
565
+ struct grpc_linked_mdelem* user_agent;
566
+ struct grpc_linked_mdelem* host;
567
+ struct grpc_linked_mdelem* lb_token;
564
568
  } named;
565
569
  } grpc_metadata_batch_callouts;
566
570
 
@@ -584,4 +588,7 @@ extern const uint8_t grpc_static_accept_stream_encoding_metadata[4];
584
588
  (GRPC_MAKE_MDELEM(&grpc_static_mdelem_table \
585
589
  [grpc_static_accept_stream_encoding_metadata[(algs)]], \
586
590
  GRPC_MDELEM_STORAGE_STATIC))
591
+ #ifdef __cplusplus
592
+ }
593
+ #endif
587
594
  #endif /* GRPC_CORE_LIB_TRANSPORT_STATIC_METADATA_H */