grpc 1.1.2 → 1.2.0.pre1

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

Potentially problematic release.


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

Files changed (255) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +1257 -404
  3. data/etc/roots.pem +189 -102
  4. data/include/grpc/census.h +7 -7
  5. data/include/grpc/compression.h +4 -4
  6. data/include/grpc/grpc.h +13 -7
  7. data/include/grpc/impl/codegen/atm_gcc_atomic.h +26 -9
  8. data/include/grpc/impl/codegen/grpc_types.h +39 -30
  9. data/include/grpc/impl/codegen/slice.h +24 -6
  10. data/include/grpc/impl/codegen/sync.h +8 -0
  11. data/include/grpc/load_reporting.h +63 -0
  12. data/include/grpc/slice.h +37 -1
  13. data/include/grpc/slice_buffer.h +7 -0
  14. data/include/grpc/support/alloc.h +3 -0
  15. data/include/grpc/support/useful.h +3 -0
  16. data/src/core/ext/census/gen/census.pb.h +1 -1
  17. data/src/core/ext/census/gen/trace_context.pb.c +9 -36
  18. data/src/core/ext/census/gen/trace_context.pb.h +20 -26
  19. data/src/core/ext/census/grpc_filter.c +3 -5
  20. data/src/core/ext/census/trace_context.c +1 -1
  21. data/src/core/ext/census/trace_context.h +3 -0
  22. data/src/core/ext/census/trace_label.h +61 -0
  23. data/src/core/ext/census/trace_propagation.h +63 -0
  24. data/src/core/ext/census/trace_status.h +45 -0
  25. data/src/core/ext/census/trace_string.h +50 -0
  26. data/src/core/ext/census/tracing.c +31 -11
  27. data/src/core/ext/census/tracing.h +124 -0
  28. data/src/core/ext/client_channel/client_channel.c +456 -368
  29. data/src/core/ext/client_channel/client_channel.h +4 -0
  30. data/src/core/ext/client_channel/client_channel_plugin.c +6 -1
  31. data/src/core/ext/client_channel/connector.c +3 -3
  32. data/src/core/ext/client_channel/connector.h +4 -3
  33. data/src/core/ext/client_channel/http_connect_handshaker.c +62 -72
  34. data/src/core/ext/client_channel/http_connect_handshaker.h +7 -10
  35. data/src/core/ext/client_channel/http_proxy.c +125 -0
  36. data/src/core/ext/client_channel/http_proxy.h +39 -0
  37. data/src/core/ext/client_channel/lb_policy.c +56 -35
  38. data/src/core/ext/client_channel/lb_policy.h +46 -39
  39. data/src/core/ext/client_channel/lb_policy_factory.h +1 -0
  40. data/src/core/ext/client_channel/parse_address.c +32 -6
  41. data/src/core/ext/client_channel/proxy_mapper.c +63 -0
  42. data/src/core/ext/client_channel/proxy_mapper.h +89 -0
  43. data/src/core/ext/client_channel/proxy_mapper_registry.c +133 -0
  44. data/src/core/ext/client_channel/proxy_mapper_registry.h +59 -0
  45. data/src/core/ext/client_channel/resolver.c +16 -9
  46. data/src/core/ext/client_channel/resolver.h +23 -12
  47. data/src/core/ext/client_channel/resolver_factory.h +1 -0
  48. data/src/core/ext/client_channel/resolver_registry.c +15 -11
  49. data/src/core/ext/client_channel/resolver_registry.h +5 -3
  50. data/src/core/ext/client_channel/subchannel.c +44 -27
  51. data/src/core/ext/client_channel/subchannel.h +6 -2
  52. data/src/core/ext/client_channel/uri_parser.c +26 -14
  53. data/src/core/ext/client_channel/uri_parser.h +3 -1
  54. data/src/core/ext/lb_policy/grpclb/grpclb.c +220 -209
  55. data/src/core/ext/lb_policy/grpclb/grpclb_channel.h +56 -0
  56. data/src/core/ext/lb_policy/grpclb/grpclb_channel_secure.c +107 -0
  57. data/src/core/ext/lb_policy/grpclb/load_balancer_api.c +3 -6
  58. data/src/core/ext/lb_policy/pick_first/pick_first.c +71 -116
  59. data/src/core/ext/lb_policy/round_robin/round_robin.c +52 -67
  60. data/src/core/ext/load_reporting/load_reporting.c +20 -0
  61. data/src/core/ext/load_reporting/load_reporting.h +1 -16
  62. data/src/core/ext/load_reporting/load_reporting_filter.c +28 -54
  63. data/src/core/ext/resolver/dns/native/dns_resolver.c +31 -45
  64. data/src/core/ext/resolver/sockaddr/sockaddr_resolver.c +20 -29
  65. data/src/core/ext/transport/chttp2/client/chttp2_connector.c +11 -8
  66. data/src/core/ext/transport/chttp2/client/insecure/channel_create.c +11 -2
  67. data/src/core/ext/transport/chttp2/client/secure/secure_channel_create.c +143 -46
  68. data/src/core/ext/transport/chttp2/server/chttp2_server.c +12 -50
  69. data/src/core/ext/transport/chttp2/server/insecure/server_chttp2.c +1 -1
  70. data/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c +1 -1
  71. data/src/core/ext/transport/chttp2/transport/bin_decoder.c +7 -7
  72. data/src/core/ext/transport/chttp2/transport/bin_encoder.c +1 -2
  73. data/src/core/ext/transport/chttp2/transport/bin_encoder.h +1 -2
  74. data/src/core/ext/transport/chttp2/transport/chttp2_plugin.c +0 -3
  75. data/src/core/ext/transport/chttp2/transport/chttp2_transport.c +606 -374
  76. data/src/core/ext/transport/chttp2/transport/frame_ping.c +17 -5
  77. data/src/core/ext/transport/chttp2/transport/frame_ping.h +2 -2
  78. data/src/core/ext/transport/chttp2/transport/frame_rst_stream.c +9 -13
  79. data/src/core/ext/transport/chttp2/transport/frame_settings.c +12 -11
  80. data/src/core/ext/transport/chttp2/transport/frame_settings.h +1 -1
  81. data/src/core/ext/transport/chttp2/transport/frame_window_update.c +5 -6
  82. data/src/core/ext/transport/chttp2/transport/hpack_encoder.c +100 -53
  83. data/src/core/ext/transport/chttp2/transport/hpack_encoder.h +2 -2
  84. data/src/core/ext/transport/chttp2/transport/hpack_parser.c +126 -70
  85. data/src/core/ext/transport/chttp2/transport/hpack_parser.h +13 -7
  86. data/src/core/ext/transport/chttp2/transport/hpack_table.c +22 -19
  87. data/src/core/ext/transport/chttp2/transport/hpack_table.h +6 -6
  88. data/src/core/ext/transport/chttp2/transport/incoming_metadata.c +23 -11
  89. data/src/core/ext/transport/chttp2/transport/incoming_metadata.h +6 -2
  90. data/src/core/ext/transport/chttp2/transport/internal.h +169 -42
  91. data/src/core/ext/transport/chttp2/transport/parsing.c +98 -41
  92. data/src/core/ext/transport/chttp2/transport/stream_lists.c +29 -14
  93. data/src/core/ext/transport/chttp2/transport/writing.c +137 -15
  94. data/src/core/lib/channel/channel_stack.c +14 -44
  95. data/src/core/lib/channel/channel_stack.h +10 -17
  96. data/src/core/lib/channel/channel_stack_builder.c +2 -3
  97. data/src/core/lib/channel/compress_filter.c +54 -46
  98. data/src/core/lib/channel/connected_channel.c +4 -4
  99. data/src/core/lib/channel/connected_channel.h +5 -0
  100. data/src/core/lib/channel/context.h +3 -0
  101. data/src/core/lib/channel/deadline_filter.c +61 -61
  102. data/src/core/lib/channel/deadline_filter.h +8 -5
  103. data/src/core/lib/channel/handshaker.c +47 -7
  104. data/src/core/lib/channel/handshaker.h +21 -3
  105. data/src/core/lib/channel/http_client_filter.c +149 -99
  106. data/src/core/lib/channel/http_server_filter.c +163 -147
  107. data/src/core/lib/channel/message_size_filter.c +15 -10
  108. data/src/core/lib/compression/algorithm_metadata.h +4 -4
  109. data/src/core/lib/compression/compression.c +17 -23
  110. data/src/core/lib/http/httpcli.c +3 -2
  111. data/src/core/lib/http/httpcli.h +2 -1
  112. data/src/core/lib/http/httpcli_security_connector.c +2 -3
  113. data/src/core/lib/http/parser.c +2 -2
  114. data/src/core/lib/iomgr/closure.c +6 -3
  115. data/src/core/lib/iomgr/closure.h +4 -2
  116. data/src/core/lib/iomgr/combiner.c +35 -5
  117. data/src/core/lib/iomgr/combiner.h +21 -2
  118. data/src/core/lib/iomgr/endpoint.c +3 -2
  119. data/src/core/lib/iomgr/endpoint.h +3 -2
  120. data/src/core/lib/iomgr/error.c +60 -94
  121. data/src/core/lib/iomgr/error.h +7 -10
  122. data/src/core/lib/iomgr/error_internal.h +54 -0
  123. data/src/core/lib/iomgr/ev_epoll_linux.c +253 -109
  124. data/src/core/lib/iomgr/ev_poll_posix.c +61 -29
  125. data/src/core/lib/iomgr/ev_posix.c +7 -8
  126. data/src/core/lib/iomgr/ev_posix.h +4 -4
  127. data/src/core/lib/iomgr/exec_ctx.c +11 -6
  128. data/src/core/lib/iomgr/exec_ctx.h +11 -14
  129. data/src/core/lib/iomgr/executor.c +2 -2
  130. data/src/core/lib/iomgr/load_file.c +1 -1
  131. data/src/core/lib/iomgr/network_status_tracker.c +5 -81
  132. data/src/core/lib/iomgr/pollset.h +1 -3
  133. data/src/core/lib/iomgr/pollset_set.h +2 -1
  134. data/src/core/lib/iomgr/pollset_set_uv.c +2 -1
  135. data/src/core/lib/iomgr/pollset_set_windows.c +2 -1
  136. data/src/core/lib/iomgr/pollset_uv.c +25 -11
  137. data/src/core/lib/iomgr/pollset_windows.c +0 -11
  138. data/src/core/lib/iomgr/resolve_address_uv.c +50 -2
  139. data/src/core/lib/iomgr/resource_quota.c +41 -11
  140. data/src/core/lib/iomgr/resource_quota.h +6 -0
  141. data/src/core/lib/iomgr/sockaddr_utils.c +33 -17
  142. data/src/core/lib/iomgr/sockaddr_utils.h +4 -0
  143. data/src/core/lib/iomgr/tcp_client_posix.c +2 -3
  144. data/src/core/lib/iomgr/tcp_client_uv.c +1 -3
  145. data/src/core/lib/iomgr/tcp_client_windows.c +21 -6
  146. data/src/core/lib/iomgr/tcp_posix.c +4 -5
  147. data/src/core/lib/iomgr/tcp_server_posix.c +269 -94
  148. data/src/core/lib/iomgr/tcp_server_windows.c +1 -1
  149. data/src/core/lib/iomgr/tcp_uv.c +11 -5
  150. data/src/core/lib/iomgr/tcp_windows.c +20 -7
  151. data/src/core/lib/iomgr/timer_generic.c +15 -22
  152. data/src/core/lib/iomgr/timer_generic.h +1 -1
  153. data/src/core/lib/iomgr/timer_uv.c +10 -6
  154. data/src/core/lib/iomgr/timer_uv.h +1 -1
  155. data/src/core/lib/iomgr/udp_server.c +45 -6
  156. data/src/core/lib/iomgr/udp_server.h +7 -1
  157. data/src/core/lib/iomgr/unix_sockets_posix.c +11 -1
  158. data/src/core/lib/json/json.c +1 -2
  159. data/src/core/lib/profiling/basic_timers.c +17 -3
  160. data/src/core/lib/security/context/security_context.c +3 -10
  161. data/src/core/lib/security/credentials/composite/composite_credentials.c +4 -8
  162. data/src/core/lib/security/credentials/credentials.c +48 -2
  163. data/src/core/lib/security/credentials/credentials.h +13 -0
  164. data/src/core/lib/security/credentials/credentials_metadata.c +1 -2
  165. data/src/core/lib/security/credentials/fake/fake_credentials.c +6 -8
  166. data/src/core/lib/security/credentials/fake/fake_credentials.h +15 -0
  167. data/src/core/lib/security/credentials/google_default/google_default_credentials.c +3 -3
  168. data/src/core/lib/security/credentials/iam/iam_credentials.c +1 -2
  169. data/src/core/lib/security/credentials/jwt/jwt_credentials.c +1 -2
  170. data/src/core/lib/security/credentials/jwt/jwt_verifier.c +5 -8
  171. data/src/core/lib/security/credentials/jwt/jwt_verifier.h +2 -1
  172. data/src/core/lib/security/credentials/oauth2/oauth2_credentials.c +3 -5
  173. data/src/core/lib/security/credentials/plugin/plugin_credentials.c +15 -13
  174. data/src/core/lib/security/credentials/ssl/ssl_credentials.c +2 -4
  175. data/src/core/lib/security/transport/client_auth_filter.c +72 -47
  176. data/src/core/lib/security/transport/lb_targets_info.c +70 -0
  177. data/src/core/lib/security/transport/lb_targets_info.h +47 -0
  178. data/src/core/lib/security/transport/secure_endpoint.c +3 -3
  179. data/src/core/lib/security/transport/security_connector.c +125 -28
  180. data/src/core/lib/security/transport/security_connector.h +4 -3
  181. data/src/core/lib/security/transport/security_handshaker.c +13 -9
  182. data/src/core/lib/security/transport/server_auth_filter.c +31 -40
  183. data/src/core/lib/security/util/b64.c +1 -1
  184. data/src/core/lib/slice/slice.c +110 -20
  185. data/src/core/lib/slice/slice_buffer.c +92 -39
  186. data/src/core/lib/{transport/mdstr_hash_table.c → slice/slice_hash_table.c} +40 -33
  187. data/src/core/lib/{transport/mdstr_hash_table.h → slice/slice_hash_table.h} +21 -21
  188. data/src/core/lib/slice/slice_intern.c +346 -0
  189. data/src/core/lib/slice/slice_internal.h +15 -0
  190. data/src/core/lib/slice/slice_string_helpers.c +5 -0
  191. data/src/core/lib/slice/slice_string_helpers.h +5 -0
  192. data/src/core/lib/support/alloc.c +26 -1
  193. data/src/core/lib/support/cmdline.c +2 -4
  194. data/src/core/lib/support/cpu_posix.c +2 -7
  195. data/src/core/lib/support/histogram.c +1 -2
  196. data/src/core/lib/support/log_posix.c +8 -4
  197. data/src/core/lib/support/spinlock.h +52 -0
  198. data/src/core/lib/support/subprocess_posix.c +1 -2
  199. data/src/core/lib/support/sync.c +7 -1
  200. data/src/core/lib/support/sync_posix.c +9 -0
  201. data/src/core/lib/support/time_windows.c +7 -1
  202. data/src/core/lib/surface/call.c +647 -629
  203. data/src/core/lib/surface/call.h +4 -1
  204. data/src/core/lib/surface/call_details.c +8 -2
  205. data/src/core/lib/surface/call_log_batch.c +17 -6
  206. data/src/core/lib/surface/channel.c +49 -59
  207. data/src/core/lib/surface/channel.h +5 -6
  208. data/src/core/lib/surface/completion_queue.c +16 -45
  209. data/src/core/lib/surface/completion_queue.h +0 -3
  210. data/src/core/lib/surface/init.c +6 -2
  211. data/src/core/lib/surface/init_secure.c +1 -1
  212. data/src/core/lib/surface/lame_client.c +14 -4
  213. data/src/core/lib/surface/server.c +79 -82
  214. data/src/core/lib/surface/validate_metadata.c +46 -15
  215. data/src/core/lib/surface/validate_metadata.h +43 -0
  216. data/src/core/lib/surface/version.c +2 -2
  217. data/src/core/lib/transport/bdp_estimator.c +104 -0
  218. data/src/core/lib/transport/bdp_estimator.h +76 -0
  219. data/src/core/lib/transport/connectivity_state.c +33 -13
  220. data/src/core/lib/transport/connectivity_state.h +15 -5
  221. data/src/core/lib/transport/error_utils.c +124 -0
  222. data/src/core/lib/transport/error_utils.h +56 -0
  223. data/src/core/{ext/transport/chttp2 → lib}/transport/http2_errors.h +18 -18
  224. data/src/core/lib/transport/metadata.c +259 -503
  225. data/src/core/lib/transport/metadata.h +69 -68
  226. data/src/core/lib/transport/metadata_batch.c +183 -63
  227. data/src/core/lib/transport/metadata_batch.h +50 -26
  228. data/src/core/lib/transport/pid_controller.c +28 -8
  229. data/src/core/lib/transport/pid_controller.h +15 -2
  230. data/src/core/lib/transport/service_config.c +21 -18
  231. data/src/core/lib/transport/service_config.h +5 -5
  232. data/src/core/lib/transport/static_metadata.c +753 -112
  233. data/src/core/lib/transport/static_metadata.h +403 -264
  234. data/src/core/{ext/transport/chttp2 → lib}/transport/status_conversion.c +18 -20
  235. data/src/core/{ext/transport/chttp2 → lib}/transport/status_conversion.h +9 -10
  236. data/src/core/lib/transport/timeout_encoding.c +11 -9
  237. data/src/core/lib/transport/timeout_encoding.h +3 -1
  238. data/src/core/lib/transport/transport.c +47 -87
  239. data/src/core/lib/transport/transport.h +20 -25
  240. data/src/core/lib/transport/transport_op_string.c +7 -19
  241. data/src/core/lib/tsi/fake_transport_security.c +2 -4
  242. data/src/core/lib/tsi/ssl_transport_security.c +7 -16
  243. data/src/core/lib/tsi/transport_security.c +2 -4
  244. data/src/ruby/ext/grpc/extconf.rb +4 -1
  245. data/src/ruby/ext/grpc/rb_byte_buffer.c +7 -0
  246. data/src/ruby/ext/grpc/rb_byte_buffer.h +3 -0
  247. data/src/ruby/ext/grpc/rb_call.c +47 -46
  248. data/src/ruby/ext/grpc/rb_channel.c +21 -6
  249. data/src/ruby/ext/grpc/rb_compression_options.c +9 -6
  250. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +36 -2
  251. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +59 -8
  252. data/src/ruby/ext/grpc/rb_server.c +6 -4
  253. data/src/ruby/lib/grpc/generic/client_stub.rb +1 -1
  254. data/src/ruby/lib/grpc/version.rb +1 -1
  255. metadata +33 -9
@@ -41,19 +41,21 @@
41
41
  #include <grpc/support/port_platform.h>
42
42
  #include <grpc/support/time.h>
43
43
  #include "src/core/lib/transport/metadata.h"
44
+ #include "src/core/lib/transport/static_metadata.h"
44
45
 
45
46
  #ifdef __cplusplus
46
47
  extern "C" {
47
48
  #endif
48
49
 
49
50
  typedef struct grpc_linked_mdelem {
50
- grpc_mdelem *md;
51
+ grpc_mdelem md;
51
52
  struct grpc_linked_mdelem *next;
52
53
  struct grpc_linked_mdelem *prev;
53
54
  void *reserved;
54
55
  } grpc_linked_mdelem;
55
56
 
56
57
  typedef struct grpc_mdelem_list {
58
+ size_t count;
57
59
  grpc_linked_mdelem *head;
58
60
  grpc_linked_mdelem *tail;
59
61
  } grpc_mdelem_list;
@@ -61,6 +63,7 @@ typedef struct grpc_mdelem_list {
61
63
  typedef struct grpc_metadata_batch {
62
64
  /** Metadata elements in this batch */
63
65
  grpc_mdelem_list list;
66
+ grpc_metadata_batch_callouts idx;
64
67
  /** Used to calculate grpc-timeout at the point of sending,
65
68
  or gpr_inf_future if this batch does not need to send a
66
69
  grpc-timeout */
@@ -77,25 +80,37 @@ bool grpc_metadata_batch_is_empty(grpc_metadata_batch *batch);
77
80
  /* Returns the transport size of the batch. */
78
81
  size_t grpc_metadata_batch_size(grpc_metadata_batch *batch);
79
82
 
80
- /** Moves the metadata information from \a src to \a dst. Upon return, \a src is
81
- * zeroed. */
82
- void grpc_metadata_batch_move(grpc_metadata_batch *dst,
83
- grpc_metadata_batch *src);
83
+ /** Remove \a storage from the batch, unreffing the mdelem contained */
84
+ void grpc_metadata_batch_remove(grpc_exec_ctx *exec_ctx,
85
+ grpc_metadata_batch *batch,
86
+ grpc_linked_mdelem *storage);
87
+
88
+ /** Substitute a new mdelem for an old value */
89
+ grpc_error *grpc_metadata_batch_substitute(grpc_exec_ctx *exec_ctx,
90
+ grpc_metadata_batch *batch,
91
+ grpc_linked_mdelem *storage,
92
+ grpc_mdelem new_value);
93
+
94
+ void grpc_metadata_batch_set_value(grpc_exec_ctx *exec_ctx,
95
+ grpc_linked_mdelem *storage,
96
+ grpc_slice value);
84
97
 
85
98
  /** Add \a storage to the beginning of \a batch. storage->md is
86
99
  assumed to be valid.
87
100
  \a storage is owned by the caller and must survive for the
88
101
  lifetime of batch. This usually means it should be around
89
102
  for the lifetime of the call. */
90
- void grpc_metadata_batch_link_head(grpc_metadata_batch *batch,
91
- grpc_linked_mdelem *storage);
103
+ grpc_error *grpc_metadata_batch_link_head(
104
+ grpc_exec_ctx *exec_ctx, grpc_metadata_batch *batch,
105
+ grpc_linked_mdelem *storage) GRPC_MUST_USE_RESULT;
92
106
  /** Add \a storage to the end of \a batch. storage->md is
93
107
  assumed to be valid.
94
108
  \a storage is owned by the caller and must survive for the
95
109
  lifetime of batch. This usually means it should be around
96
110
  for the lifetime of the call. */
97
- void grpc_metadata_batch_link_tail(grpc_metadata_batch *batch,
98
- grpc_linked_mdelem *storage);
111
+ grpc_error *grpc_metadata_batch_link_tail(
112
+ grpc_exec_ctx *exec_ctx, grpc_metadata_batch *batch,
113
+ grpc_linked_mdelem *storage) GRPC_MUST_USE_RESULT;
99
114
 
100
115
  /** Add \a elem_to_add as the first element in \a batch, using
101
116
  \a storage as backing storage for the linked list element.
@@ -103,29 +118,38 @@ void grpc_metadata_batch_link_tail(grpc_metadata_batch *batch,
103
118
  lifetime of batch. This usually means it should be around
104
119
  for the lifetime of the call.
105
120
  Takes ownership of \a elem_to_add */
106
- void grpc_metadata_batch_add_head(grpc_metadata_batch *batch,
107
- grpc_linked_mdelem *storage,
108
- grpc_mdelem *elem_to_add);
121
+ grpc_error *grpc_metadata_batch_add_head(
122
+ grpc_exec_ctx *exec_ctx, grpc_metadata_batch *batch,
123
+ grpc_linked_mdelem *storage, grpc_mdelem elem_to_add) GRPC_MUST_USE_RESULT;
109
124
  /** Add \a elem_to_add as the last element in \a batch, using
110
125
  \a storage as backing storage for the linked list element.
111
126
  \a storage is owned by the caller and must survive for the
112
127
  lifetime of batch. This usually means it should be around
113
128
  for the lifetime of the call.
114
129
  Takes ownership of \a elem_to_add */
115
- void grpc_metadata_batch_add_tail(grpc_metadata_batch *batch,
116
- grpc_linked_mdelem *storage,
117
- grpc_mdelem *elem_to_add);
118
-
119
- /** For each element in \a batch, execute \a filter.
120
- The return value from \a filter will be substituted for the
121
- grpc_mdelem passed to \a filter. If \a filter returns NULL,
122
- the element will be moved to the garbage list. */
123
- void grpc_metadata_batch_filter(grpc_exec_ctx *exec_ctx,
124
- grpc_metadata_batch *batch,
125
- grpc_mdelem *(*filter)(grpc_exec_ctx *exec_ctx,
126
- void *user_data,
127
- grpc_mdelem *elem),
128
- void *user_data);
130
+ grpc_error *grpc_metadata_batch_add_tail(
131
+ grpc_exec_ctx *exec_ctx, grpc_metadata_batch *batch,
132
+ grpc_linked_mdelem *storage, grpc_mdelem elem_to_add) GRPC_MUST_USE_RESULT;
133
+
134
+ grpc_error *grpc_attach_md_to_error(grpc_error *src, grpc_mdelem md);
135
+
136
+ typedef struct {
137
+ grpc_error *error;
138
+ grpc_mdelem md;
139
+ } grpc_filtered_mdelem;
140
+
141
+ #define GRPC_FILTERED_ERROR(error) \
142
+ ((grpc_filtered_mdelem){(error), GRPC_MDNULL})
143
+ #define GRPC_FILTERED_MDELEM(md) ((grpc_filtered_mdelem){GRPC_ERROR_NONE, (md)})
144
+ #define GRPC_FILTERED_REMOVE() \
145
+ ((grpc_filtered_mdelem){GRPC_ERROR_NONE, GRPC_MDNULL})
146
+
147
+ typedef grpc_filtered_mdelem (*grpc_metadata_batch_filter_func)(
148
+ grpc_exec_ctx *exec_ctx, void *user_data, grpc_mdelem elem);
149
+ grpc_error *grpc_metadata_batch_filter(
150
+ grpc_exec_ctx *exec_ctx, grpc_metadata_batch *batch,
151
+ grpc_metadata_batch_filter_func func, void *user_data,
152
+ const char *composite_error_string) GRPC_MUST_USE_RESULT;
129
153
 
130
154
  #ifndef NDEBUG
131
155
  void grpc_metadata_batch_assert_ok(grpc_metadata_batch *comd);
@@ -32,26 +32,46 @@
32
32
  */
33
33
 
34
34
  #include "src/core/lib/transport/pid_controller.h"
35
+ #include <grpc/support/useful.h>
35
36
 
36
37
  void grpc_pid_controller_init(grpc_pid_controller *pid_controller,
37
- double gain_p, double gain_i, double gain_d) {
38
- pid_controller->gain_p = gain_p;
39
- pid_controller->gain_i = gain_i;
40
- pid_controller->gain_d = gain_d;
38
+ grpc_pid_controller_args args) {
39
+ pid_controller->args = args;
40
+ pid_controller->last_control_value = args.initial_control_value;
41
41
  grpc_pid_controller_reset(pid_controller);
42
42
  }
43
43
 
44
44
  void grpc_pid_controller_reset(grpc_pid_controller *pid_controller) {
45
45
  pid_controller->last_error = 0.0;
46
+ pid_controller->last_dc_dt = 0.0;
46
47
  pid_controller->error_integral = 0.0;
47
48
  }
48
49
 
49
50
  double grpc_pid_controller_update(grpc_pid_controller *pid_controller,
50
51
  double error, double dt) {
51
- pid_controller->error_integral += error * dt;
52
+ /* integrate error using the trapezoid rule */
53
+ pid_controller->error_integral +=
54
+ dt * (pid_controller->last_error + error) * 0.5;
55
+ pid_controller->error_integral = GPR_CLAMP(
56
+ pid_controller->error_integral, -pid_controller->args.integral_range,
57
+ pid_controller->args.integral_range);
52
58
  double diff_error = (error - pid_controller->last_error) / dt;
59
+ /* calculate derivative of control value vs time */
60
+ double dc_dt = pid_controller->args.gain_p * error +
61
+ pid_controller->args.gain_i * pid_controller->error_integral +
62
+ pid_controller->args.gain_d * diff_error;
63
+ /* and perform trapezoidal integration */
64
+ double new_control_value = pid_controller->last_control_value +
65
+ dt * (pid_controller->last_dc_dt + dc_dt) * 0.5;
66
+ new_control_value =
67
+ GPR_CLAMP(new_control_value, pid_controller->args.min_control_value,
68
+ pid_controller->args.max_control_value);
53
69
  pid_controller->last_error = error;
54
- return dt * (pid_controller->gain_p * error +
55
- pid_controller->gain_i * pid_controller->error_integral +
56
- pid_controller->gain_d * diff_error);
70
+ pid_controller->last_dc_dt = dc_dt;
71
+ pid_controller->last_control_value = new_control_value;
72
+ return new_control_value;
73
+ }
74
+
75
+ double grpc_pid_controller_last(grpc_pid_controller *pid_controller) {
76
+ return pid_controller->last_control_value;
57
77
  }
@@ -45,20 +45,33 @@ typedef struct {
45
45
  double gain_p;
46
46
  double gain_i;
47
47
  double gain_d;
48
+ double initial_control_value;
49
+ double min_control_value;
50
+ double max_control_value;
51
+ double integral_range;
52
+ } grpc_pid_controller_args;
53
+
54
+ typedef struct {
48
55
  double last_error;
49
56
  double error_integral;
57
+ double last_control_value;
58
+ double last_dc_dt;
59
+ grpc_pid_controller_args args;
50
60
  } grpc_pid_controller;
51
61
 
52
62
  /** Initialize the controller */
53
63
  void grpc_pid_controller_init(grpc_pid_controller *pid_controller,
54
- double gain_p, double gain_i, double gain_d);
64
+ grpc_pid_controller_args args);
55
65
 
56
66
  /** Reset the controller: useful when things have changed significantly */
57
67
  void grpc_pid_controller_reset(grpc_pid_controller *pid_controller);
58
68
 
59
69
  /** Update the controller: given a current error estimate, and the time since
60
- the last update, returns a delta to the control value */
70
+ the last update, returns a new control value */
61
71
  double grpc_pid_controller_update(grpc_pid_controller *pid_controller,
62
72
  double error, double dt);
63
73
 
74
+ /** Returns the last control value calculated */
75
+ double grpc_pid_controller_last(grpc_pid_controller *pid_controller);
76
+
64
77
  #endif /* GRPC_CORE_LIB_TRANSPORT_PID_CONTROLLER_H */
@@ -39,8 +39,10 @@
39
39
  #include <grpc/support/string_util.h>
40
40
 
41
41
  #include "src/core/lib/json/json.h"
42
+ #include "src/core/lib/slice/slice_hash_table.h"
43
+ #include "src/core/lib/slice/slice_internal.h"
44
+ #include "src/core/lib/slice/slice_string_helpers.h"
42
45
  #include "src/core/lib/support/string.h"
43
- #include "src/core/lib/transport/mdstr_hash_table.h"
44
46
 
45
47
  // The main purpose of the code here is to parse the service config in
46
48
  // JSON form, which will look like this:
@@ -148,8 +150,8 @@ static char* parse_json_method_name(grpc_json* json) {
148
150
  static bool parse_json_method_config(
149
151
  grpc_exec_ctx* exec_ctx, grpc_json* json,
150
152
  void* (*create_value)(const grpc_json* method_config_json),
151
- const grpc_mdstr_hash_table_vtable* vtable,
152
- grpc_mdstr_hash_table_entry* entries, size_t* idx) {
153
+ const grpc_slice_hash_table_vtable* vtable,
154
+ grpc_slice_hash_table_entry* entries, size_t* idx) {
153
155
  // Construct value.
154
156
  void* method_config = create_value(json);
155
157
  if (method_config == NULL) return false;
@@ -170,7 +172,7 @@ static bool parse_json_method_config(
170
172
  if (paths.count == 0) goto done; // No names specified.
171
173
  // Add entry for each path.
172
174
  for (size_t i = 0; i < paths.count; ++i) {
173
- entries[*idx].key = grpc_mdstr_from_string(paths.strs[i]);
175
+ entries[*idx].key = grpc_slice_from_copied_string(paths.strs[i]);
174
176
  entries[*idx].value = vtable->copy_value(method_config);
175
177
  entries[*idx].vtable = vtable;
176
178
  ++*idx;
@@ -182,15 +184,15 @@ done:
182
184
  return success;
183
185
  }
184
186
 
185
- grpc_mdstr_hash_table* grpc_service_config_create_method_config_table(
187
+ grpc_slice_hash_table* grpc_service_config_create_method_config_table(
186
188
  grpc_exec_ctx* exec_ctx, const grpc_service_config* service_config,
187
189
  void* (*create_value)(const grpc_json* method_config_json),
188
- const grpc_mdstr_hash_table_vtable* vtable) {
190
+ const grpc_slice_hash_table_vtable* vtable) {
189
191
  const grpc_json* json = service_config->json_tree;
190
192
  // Traverse parsed JSON tree.
191
193
  if (json->type != GRPC_JSON_OBJECT || json->key != NULL) return NULL;
192
194
  size_t num_entries = 0;
193
- grpc_mdstr_hash_table_entry* entries = NULL;
195
+ grpc_slice_hash_table_entry* entries = NULL;
194
196
  for (grpc_json* field = json->child; field != NULL; field = field->next) {
195
197
  if (field->key == NULL) return NULL;
196
198
  if (strcmp(field->key, "methodConfig") == 0) {
@@ -202,7 +204,7 @@ grpc_mdstr_hash_table* grpc_service_config_create_method_config_table(
202
204
  num_entries += count_names_in_method_config_json(method);
203
205
  }
204
206
  // Populate method config table entries.
205
- entries = gpr_malloc(num_entries * sizeof(grpc_mdstr_hash_table_entry));
207
+ entries = gpr_malloc(num_entries * sizeof(grpc_slice_hash_table_entry));
206
208
  size_t idx = 0;
207
209
  for (grpc_json* method = field->child; method != NULL;
208
210
  method = method->next) {
@@ -215,12 +217,12 @@ grpc_mdstr_hash_table* grpc_service_config_create_method_config_table(
215
217
  }
216
218
  }
217
219
  // Instantiate method config table.
218
- grpc_mdstr_hash_table* method_config_table = NULL;
220
+ grpc_slice_hash_table* method_config_table = NULL;
219
221
  if (entries != NULL) {
220
- method_config_table = grpc_mdstr_hash_table_create(num_entries, entries);
222
+ method_config_table = grpc_slice_hash_table_create(num_entries, entries);
221
223
  // Clean up.
222
224
  for (size_t i = 0; i < num_entries; ++i) {
223
- GRPC_MDSTR_UNREF(exec_ctx, entries[i].key);
225
+ grpc_slice_unref_internal(exec_ctx, entries[i].key);
224
226
  vtable->destroy_value(exec_ctx, entries[i].value);
225
227
  }
226
228
  gpr_free(entries);
@@ -229,23 +231,24 @@ grpc_mdstr_hash_table* grpc_service_config_create_method_config_table(
229
231
  }
230
232
 
231
233
  void* grpc_method_config_table_get(grpc_exec_ctx* exec_ctx,
232
- const grpc_mdstr_hash_table* table,
233
- const grpc_mdstr* path) {
234
- void* value = grpc_mdstr_hash_table_get(table, path);
234
+ const grpc_slice_hash_table* table,
235
+ grpc_slice path) {
236
+ void* value = grpc_slice_hash_table_get(table, path);
235
237
  // If we didn't find a match for the path, try looking for a wildcard
236
238
  // entry (i.e., change "/service/method" to "/service/*").
237
239
  if (value == NULL) {
238
- const char* path_str = grpc_mdstr_as_c_string(path);
240
+ char* path_str = grpc_slice_to_c_string(path);
239
241
  const char* sep = strrchr(path_str, '/') + 1;
240
242
  const size_t len = (size_t)(sep - path_str);
241
243
  char* buf = gpr_malloc(len + 2); // '*' and NUL
242
244
  memcpy(buf, path_str, len);
243
245
  buf[len] = '*';
244
246
  buf[len + 1] = '\0';
245
- grpc_mdstr* wildcard_path = grpc_mdstr_from_string(buf);
247
+ grpc_slice wildcard_path = grpc_slice_from_copied_string(buf);
246
248
  gpr_free(buf);
247
- value = grpc_mdstr_hash_table_get(table, wildcard_path);
248
- GRPC_MDSTR_UNREF(exec_ctx, wildcard_path);
249
+ value = grpc_slice_hash_table_get(table, wildcard_path);
250
+ grpc_slice_unref_internal(exec_ctx, wildcard_path);
251
+ gpr_free(path_str);
249
252
  }
250
253
  return value;
251
254
  }
@@ -35,7 +35,7 @@
35
35
  #include <grpc/impl/codegen/grpc_types.h>
36
36
 
37
37
  #include "src/core/lib/json/json.h"
38
- #include "src/core/lib/transport/mdstr_hash_table.h"
38
+ #include "src/core/lib/slice/slice_hash_table.h"
39
39
 
40
40
  typedef struct grpc_service_config grpc_service_config;
41
41
 
@@ -53,10 +53,10 @@ const char* grpc_service_config_get_lb_policy_name(
53
53
  /// returned by \a create_value(), based on data parsed from the JSON tree.
54
54
  /// \a vtable provides methods used to manage the values.
55
55
  /// Returns NULL on error.
56
- grpc_mdstr_hash_table* grpc_service_config_create_method_config_table(
56
+ grpc_slice_hash_table* grpc_service_config_create_method_config_table(
57
57
  grpc_exec_ctx* exec_ctx, const grpc_service_config* service_config,
58
58
  void* (*create_value)(const grpc_json* method_config_json),
59
- const grpc_mdstr_hash_table_vtable* vtable);
59
+ const grpc_slice_hash_table_vtable* vtable);
60
60
 
61
61
  /// A helper function for looking up values in the table returned by
62
62
  /// \a grpc_service_config_create_method_config_table().
@@ -65,7 +65,7 @@ grpc_mdstr_hash_table* grpc_service_config_create_method_config_table(
65
65
  /// Returns NULL if the method has no config.
66
66
  /// Caller does NOT own a reference to the result.
67
67
  void* grpc_method_config_table_get(grpc_exec_ctx* exec_ctx,
68
- const grpc_mdstr_hash_table* table,
69
- const grpc_mdstr* path);
68
+ const grpc_slice_hash_table* table,
69
+ grpc_slice path);
70
70
 
71
71
  #endif /* GRPC_CORE_LIB_TRANSPORT_SERVICE_CONFIG_H */
@@ -41,120 +41,761 @@
41
41
 
42
42
  #include "src/core/lib/transport/static_metadata.h"
43
43
 
44
- grpc_mdstr grpc_static_mdstr_table[GRPC_STATIC_MDSTR_COUNT];
44
+ #include "src/core/lib/slice/slice_internal.h"
45
+
46
+ static uint8_t g_bytes[] = {
47
+ 58, 112, 97, 116, 104, 58, 109, 101, 116, 104, 111, 100, 58, 115, 116,
48
+ 97, 116, 117, 115, 58, 97, 117, 116, 104, 111, 114, 105, 116, 121, 58,
49
+ 115, 99, 104, 101, 109, 101, 116, 101, 103, 114, 112, 99, 45, 109, 101,
50
+ 115, 115, 97, 103, 101, 103, 114, 112, 99, 45, 115, 116, 97, 116, 117,
51
+ 115, 103, 114, 112, 99, 45, 112, 97, 121, 108, 111, 97, 100, 45, 98,
52
+ 105, 110, 103, 114, 112, 99, 45, 101, 110, 99, 111, 100, 105, 110, 103,
53
+ 103, 114, 112, 99, 45, 97, 99, 99, 101, 112, 116, 45, 101, 110, 99,
54
+ 111, 100, 105, 110, 103, 99, 111, 110, 116, 101, 110, 116, 45, 116, 121,
55
+ 112, 101, 103, 114, 112, 99, 45, 105, 110, 116, 101, 114, 110, 97, 108,
56
+ 45, 101, 110, 99, 111, 100, 105, 110, 103, 45, 114, 101, 113, 117, 101,
57
+ 115, 116, 117, 115, 101, 114, 45, 97, 103, 101, 110, 116, 104, 111, 115,
58
+ 116, 108, 98, 45, 116, 111, 107, 101, 110, 103, 114, 112, 99, 45, 116,
59
+ 105, 109, 101, 111, 117, 116, 103, 114, 112, 99, 45, 116, 114, 97, 99,
60
+ 105, 110, 103, 45, 98, 105, 110, 103, 114, 112, 99, 45, 115, 116, 97,
61
+ 116, 115, 45, 98, 105, 110, 103, 114, 112, 99, 46, 119, 97, 105, 116,
62
+ 95, 102, 111, 114, 95, 114, 101, 97, 100, 121, 103, 114, 112, 99, 46,
63
+ 116, 105, 109, 101, 111, 117, 116, 103, 114, 112, 99, 46, 109, 97, 120,
64
+ 95, 114, 101, 113, 117, 101, 115, 116, 95, 109, 101, 115, 115, 97, 103,
65
+ 101, 95, 98, 121, 116, 101, 115, 103, 114, 112, 99, 46, 109, 97, 120,
66
+ 95, 114, 101, 115, 112, 111, 110, 115, 101, 95, 109, 101, 115, 115, 97,
67
+ 103, 101, 95, 98, 121, 116, 101, 115, 47, 103, 114, 112, 99, 46, 108,
68
+ 98, 46, 118, 49, 46, 76, 111, 97, 100, 66, 97, 108, 97, 110, 99,
69
+ 101, 114, 47, 66, 97, 108, 97, 110, 99, 101, 76, 111, 97, 100, 48,
70
+ 49, 50, 105, 100, 101, 110, 116, 105, 116, 121, 103, 122, 105, 112, 100,
71
+ 101, 102, 108, 97, 116, 101, 116, 114, 97, 105, 108, 101, 114, 115, 97,
72
+ 112, 112, 108, 105, 99, 97, 116, 105, 111, 110, 47, 103, 114, 112, 99,
73
+ 80, 79, 83, 84, 50, 48, 48, 52, 48, 52, 104, 116, 116, 112, 104,
74
+ 116, 116, 112, 115, 103, 114, 112, 99, 71, 69, 84, 80, 85, 84, 47,
75
+ 47, 105, 110, 100, 101, 120, 46, 104, 116, 109, 108, 50, 48, 52, 50,
76
+ 48, 54, 51, 48, 52, 52, 48, 48, 53, 48, 48, 97, 99, 99, 101,
77
+ 112, 116, 45, 99, 104, 97, 114, 115, 101, 116, 97, 99, 99, 101, 112,
78
+ 116, 45, 101, 110, 99, 111, 100, 105, 110, 103, 103, 122, 105, 112, 44,
79
+ 32, 100, 101, 102, 108, 97, 116, 101, 97, 99, 99, 101, 112, 116, 45,
80
+ 108, 97, 110, 103, 117, 97, 103, 101, 97, 99, 99, 101, 112, 116, 45,
81
+ 114, 97, 110, 103, 101, 115, 97, 99, 99, 101, 112, 116, 97, 99, 99,
82
+ 101, 115, 115, 45, 99, 111, 110, 116, 114, 111, 108, 45, 97, 108, 108,
83
+ 111, 119, 45, 111, 114, 105, 103, 105, 110, 97, 103, 101, 97, 108, 108,
84
+ 111, 119, 97, 117, 116, 104, 111, 114, 105, 122, 97, 116, 105, 111, 110,
85
+ 99, 97, 99, 104, 101, 45, 99, 111, 110, 116, 114, 111, 108, 99, 111,
86
+ 110, 116, 101, 110, 116, 45, 100, 105, 115, 112, 111, 115, 105, 116, 105,
87
+ 111, 110, 99, 111, 110, 116, 101, 110, 116, 45, 101, 110, 99, 111, 100,
88
+ 105, 110, 103, 99, 111, 110, 116, 101, 110, 116, 45, 108, 97, 110, 103,
89
+ 117, 97, 103, 101, 99, 111, 110, 116, 101, 110, 116, 45, 108, 101, 110,
90
+ 103, 116, 104, 99, 111, 110, 116, 101, 110, 116, 45, 108, 111, 99, 97,
91
+ 116, 105, 111, 110, 99, 111, 110, 116, 101, 110, 116, 45, 114, 97, 110,
92
+ 103, 101, 99, 111, 111, 107, 105, 101, 100, 97, 116, 101, 101, 116, 97,
93
+ 103, 101, 120, 112, 101, 99, 116, 101, 120, 112, 105, 114, 101, 115, 102,
94
+ 114, 111, 109, 105, 102, 45, 109, 97, 116, 99, 104, 105, 102, 45, 109,
95
+ 111, 100, 105, 102, 105, 101, 100, 45, 115, 105, 110, 99, 101, 105, 102,
96
+ 45, 110, 111, 110, 101, 45, 109, 97, 116, 99, 104, 105, 102, 45, 114,
97
+ 97, 110, 103, 101, 105, 102, 45, 117, 110, 109, 111, 100, 105, 102, 105,
98
+ 101, 100, 45, 115, 105, 110, 99, 101, 108, 97, 115, 116, 45, 109, 111,
99
+ 100, 105, 102, 105, 101, 100, 108, 105, 110, 107, 108, 111, 99, 97, 116,
100
+ 105, 111, 110, 109, 97, 120, 45, 102, 111, 114, 119, 97, 114, 100, 115,
101
+ 112, 114, 111, 120, 121, 45, 97, 117, 116, 104, 101, 110, 116, 105, 99,
102
+ 97, 116, 101, 112, 114, 111, 120, 121, 45, 97, 117, 116, 104, 111, 114,
103
+ 105, 122, 97, 116, 105, 111, 110, 114, 97, 110, 103, 101, 114, 101, 102,
104
+ 101, 114, 101, 114, 114, 101, 102, 114, 101, 115, 104, 114, 101, 116, 114,
105
+ 121, 45, 97, 102, 116, 101, 114, 115, 101, 114, 118, 101, 114, 115, 101,
106
+ 116, 45, 99, 111, 111, 107, 105, 101, 115, 116, 114, 105, 99, 116, 45,
107
+ 116, 114, 97, 110, 115, 112, 111, 114, 116, 45, 115, 101, 99, 117, 114,
108
+ 105, 116, 121, 116, 114, 97, 110, 115, 102, 101, 114, 45, 101, 110, 99,
109
+ 111, 100, 105, 110, 103, 118, 97, 114, 121, 118, 105, 97, 119, 119, 119,
110
+ 45, 97, 117, 116, 104, 101, 110, 116, 105, 99, 97, 116, 101, 105, 100,
111
+ 101, 110, 116, 105, 116, 121, 44, 100, 101, 102, 108, 97, 116, 101, 105,
112
+ 100, 101, 110, 116, 105, 116, 121, 44, 103, 122, 105, 112, 100, 101, 102,
113
+ 108, 97, 116, 101, 44, 103, 122, 105, 112, 105, 100, 101, 110, 116, 105,
114
+ 116, 121, 44, 100, 101, 102, 108, 97, 116, 101, 44, 103, 122, 105, 112};
115
+
116
+ static void static_ref(void *unused) {}
117
+ static void static_unref(grpc_exec_ctx *exec_ctx, void *unused) {}
118
+ static const grpc_slice_refcount_vtable static_sub_vtable = {
119
+ static_ref, static_unref, grpc_slice_default_eq_impl,
120
+ grpc_slice_default_hash_impl};
121
+ const grpc_slice_refcount_vtable grpc_static_metadata_vtable = {
122
+ static_ref, static_unref, grpc_static_slice_eq, grpc_static_slice_hash};
123
+ static grpc_slice_refcount static_sub_refcnt = {&static_sub_vtable,
124
+ &static_sub_refcnt};
125
+ grpc_slice_refcount grpc_static_metadata_refcounts[GRPC_STATIC_MDSTR_COUNT] = {
126
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
127
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
128
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
129
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
130
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
131
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
132
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
133
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
134
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
135
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
136
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
137
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
138
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
139
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
140
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
141
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
142
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
143
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
144
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
145
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
146
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
147
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
148
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
149
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
150
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
151
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
152
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
153
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
154
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
155
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
156
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
157
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
158
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
159
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
160
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
161
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
162
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
163
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
164
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
165
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
166
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
167
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
168
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
169
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
170
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
171
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
172
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
173
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
174
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
175
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
176
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
177
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
178
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
179
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
180
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
181
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
182
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
183
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
184
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
185
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
186
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
187
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
188
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
189
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
190
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
191
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
192
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
193
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
194
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
195
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
196
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
197
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
198
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
199
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
200
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
201
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
202
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
203
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
204
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
205
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
206
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
207
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
208
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
209
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
210
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
211
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
212
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
213
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
214
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
215
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
216
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
217
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
218
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
219
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
220
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
221
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
222
+ {&grpc_static_metadata_vtable, &static_sub_refcnt},
223
+ };
224
+
225
+ const grpc_slice grpc_static_slice_table[GRPC_STATIC_MDSTR_COUNT] = {
226
+ {.refcount = &grpc_static_metadata_refcounts[0],
227
+ .data.refcounted = {g_bytes + 0, 5}},
228
+ {.refcount = &grpc_static_metadata_refcounts[1],
229
+ .data.refcounted = {g_bytes + 5, 7}},
230
+ {.refcount = &grpc_static_metadata_refcounts[2],
231
+ .data.refcounted = {g_bytes + 12, 7}},
232
+ {.refcount = &grpc_static_metadata_refcounts[3],
233
+ .data.refcounted = {g_bytes + 19, 10}},
234
+ {.refcount = &grpc_static_metadata_refcounts[4],
235
+ .data.refcounted = {g_bytes + 29, 7}},
236
+ {.refcount = &grpc_static_metadata_refcounts[5],
237
+ .data.refcounted = {g_bytes + 36, 2}},
238
+ {.refcount = &grpc_static_metadata_refcounts[6],
239
+ .data.refcounted = {g_bytes + 38, 12}},
240
+ {.refcount = &grpc_static_metadata_refcounts[7],
241
+ .data.refcounted = {g_bytes + 50, 11}},
242
+ {.refcount = &grpc_static_metadata_refcounts[8],
243
+ .data.refcounted = {g_bytes + 61, 16}},
244
+ {.refcount = &grpc_static_metadata_refcounts[9],
245
+ .data.refcounted = {g_bytes + 77, 13}},
246
+ {.refcount = &grpc_static_metadata_refcounts[10],
247
+ .data.refcounted = {g_bytes + 90, 20}},
248
+ {.refcount = &grpc_static_metadata_refcounts[11],
249
+ .data.refcounted = {g_bytes + 110, 12}},
250
+ {.refcount = &grpc_static_metadata_refcounts[12],
251
+ .data.refcounted = {g_bytes + 122, 30}},
252
+ {.refcount = &grpc_static_metadata_refcounts[13],
253
+ .data.refcounted = {g_bytes + 152, 10}},
254
+ {.refcount = &grpc_static_metadata_refcounts[14],
255
+ .data.refcounted = {g_bytes + 162, 4}},
256
+ {.refcount = &grpc_static_metadata_refcounts[15],
257
+ .data.refcounted = {g_bytes + 166, 8}},
258
+ {.refcount = &grpc_static_metadata_refcounts[16],
259
+ .data.refcounted = {g_bytes + 174, 12}},
260
+ {.refcount = &grpc_static_metadata_refcounts[17],
261
+ .data.refcounted = {g_bytes + 186, 16}},
262
+ {.refcount = &grpc_static_metadata_refcounts[18],
263
+ .data.refcounted = {g_bytes + 202, 14}},
264
+ {.refcount = &grpc_static_metadata_refcounts[19],
265
+ .data.refcounted = {g_bytes + 216, 0}},
266
+ {.refcount = &grpc_static_metadata_refcounts[20],
267
+ .data.refcounted = {g_bytes + 216, 19}},
268
+ {.refcount = &grpc_static_metadata_refcounts[21],
269
+ .data.refcounted = {g_bytes + 235, 12}},
270
+ {.refcount = &grpc_static_metadata_refcounts[22],
271
+ .data.refcounted = {g_bytes + 247, 30}},
272
+ {.refcount = &grpc_static_metadata_refcounts[23],
273
+ .data.refcounted = {g_bytes + 277, 31}},
274
+ {.refcount = &grpc_static_metadata_refcounts[24],
275
+ .data.refcounted = {g_bytes + 308, 36}},
276
+ {.refcount = &grpc_static_metadata_refcounts[25],
277
+ .data.refcounted = {g_bytes + 344, 1}},
278
+ {.refcount = &grpc_static_metadata_refcounts[26],
279
+ .data.refcounted = {g_bytes + 345, 1}},
280
+ {.refcount = &grpc_static_metadata_refcounts[27],
281
+ .data.refcounted = {g_bytes + 346, 1}},
282
+ {.refcount = &grpc_static_metadata_refcounts[28],
283
+ .data.refcounted = {g_bytes + 347, 8}},
284
+ {.refcount = &grpc_static_metadata_refcounts[29],
285
+ .data.refcounted = {g_bytes + 355, 4}},
286
+ {.refcount = &grpc_static_metadata_refcounts[30],
287
+ .data.refcounted = {g_bytes + 359, 7}},
288
+ {.refcount = &grpc_static_metadata_refcounts[31],
289
+ .data.refcounted = {g_bytes + 366, 8}},
290
+ {.refcount = &grpc_static_metadata_refcounts[32],
291
+ .data.refcounted = {g_bytes + 374, 16}},
292
+ {.refcount = &grpc_static_metadata_refcounts[33],
293
+ .data.refcounted = {g_bytes + 390, 4}},
294
+ {.refcount = &grpc_static_metadata_refcounts[34],
295
+ .data.refcounted = {g_bytes + 394, 3}},
296
+ {.refcount = &grpc_static_metadata_refcounts[35],
297
+ .data.refcounted = {g_bytes + 397, 3}},
298
+ {.refcount = &grpc_static_metadata_refcounts[36],
299
+ .data.refcounted = {g_bytes + 400, 4}},
300
+ {.refcount = &grpc_static_metadata_refcounts[37],
301
+ .data.refcounted = {g_bytes + 404, 5}},
302
+ {.refcount = &grpc_static_metadata_refcounts[38],
303
+ .data.refcounted = {g_bytes + 409, 4}},
304
+ {.refcount = &grpc_static_metadata_refcounts[39],
305
+ .data.refcounted = {g_bytes + 413, 3}},
306
+ {.refcount = &grpc_static_metadata_refcounts[40],
307
+ .data.refcounted = {g_bytes + 416, 3}},
308
+ {.refcount = &grpc_static_metadata_refcounts[41],
309
+ .data.refcounted = {g_bytes + 419, 1}},
310
+ {.refcount = &grpc_static_metadata_refcounts[42],
311
+ .data.refcounted = {g_bytes + 420, 11}},
312
+ {.refcount = &grpc_static_metadata_refcounts[43],
313
+ .data.refcounted = {g_bytes + 431, 3}},
314
+ {.refcount = &grpc_static_metadata_refcounts[44],
315
+ .data.refcounted = {g_bytes + 434, 3}},
316
+ {.refcount = &grpc_static_metadata_refcounts[45],
317
+ .data.refcounted = {g_bytes + 437, 3}},
318
+ {.refcount = &grpc_static_metadata_refcounts[46],
319
+ .data.refcounted = {g_bytes + 440, 3}},
320
+ {.refcount = &grpc_static_metadata_refcounts[47],
321
+ .data.refcounted = {g_bytes + 443, 3}},
322
+ {.refcount = &grpc_static_metadata_refcounts[48],
323
+ .data.refcounted = {g_bytes + 446, 14}},
324
+ {.refcount = &grpc_static_metadata_refcounts[49],
325
+ .data.refcounted = {g_bytes + 460, 15}},
326
+ {.refcount = &grpc_static_metadata_refcounts[50],
327
+ .data.refcounted = {g_bytes + 475, 13}},
328
+ {.refcount = &grpc_static_metadata_refcounts[51],
329
+ .data.refcounted = {g_bytes + 488, 15}},
330
+ {.refcount = &grpc_static_metadata_refcounts[52],
331
+ .data.refcounted = {g_bytes + 503, 13}},
332
+ {.refcount = &grpc_static_metadata_refcounts[53],
333
+ .data.refcounted = {g_bytes + 516, 6}},
334
+ {.refcount = &grpc_static_metadata_refcounts[54],
335
+ .data.refcounted = {g_bytes + 522, 27}},
336
+ {.refcount = &grpc_static_metadata_refcounts[55],
337
+ .data.refcounted = {g_bytes + 549, 3}},
338
+ {.refcount = &grpc_static_metadata_refcounts[56],
339
+ .data.refcounted = {g_bytes + 552, 5}},
340
+ {.refcount = &grpc_static_metadata_refcounts[57],
341
+ .data.refcounted = {g_bytes + 557, 13}},
342
+ {.refcount = &grpc_static_metadata_refcounts[58],
343
+ .data.refcounted = {g_bytes + 570, 13}},
344
+ {.refcount = &grpc_static_metadata_refcounts[59],
345
+ .data.refcounted = {g_bytes + 583, 19}},
346
+ {.refcount = &grpc_static_metadata_refcounts[60],
347
+ .data.refcounted = {g_bytes + 602, 16}},
348
+ {.refcount = &grpc_static_metadata_refcounts[61],
349
+ .data.refcounted = {g_bytes + 618, 16}},
350
+ {.refcount = &grpc_static_metadata_refcounts[62],
351
+ .data.refcounted = {g_bytes + 634, 14}},
352
+ {.refcount = &grpc_static_metadata_refcounts[63],
353
+ .data.refcounted = {g_bytes + 648, 16}},
354
+ {.refcount = &grpc_static_metadata_refcounts[64],
355
+ .data.refcounted = {g_bytes + 664, 13}},
356
+ {.refcount = &grpc_static_metadata_refcounts[65],
357
+ .data.refcounted = {g_bytes + 677, 6}},
358
+ {.refcount = &grpc_static_metadata_refcounts[66],
359
+ .data.refcounted = {g_bytes + 683, 4}},
360
+ {.refcount = &grpc_static_metadata_refcounts[67],
361
+ .data.refcounted = {g_bytes + 687, 4}},
362
+ {.refcount = &grpc_static_metadata_refcounts[68],
363
+ .data.refcounted = {g_bytes + 691, 6}},
364
+ {.refcount = &grpc_static_metadata_refcounts[69],
365
+ .data.refcounted = {g_bytes + 697, 7}},
366
+ {.refcount = &grpc_static_metadata_refcounts[70],
367
+ .data.refcounted = {g_bytes + 704, 4}},
368
+ {.refcount = &grpc_static_metadata_refcounts[71],
369
+ .data.refcounted = {g_bytes + 708, 8}},
370
+ {.refcount = &grpc_static_metadata_refcounts[72],
371
+ .data.refcounted = {g_bytes + 716, 17}},
372
+ {.refcount = &grpc_static_metadata_refcounts[73],
373
+ .data.refcounted = {g_bytes + 733, 13}},
374
+ {.refcount = &grpc_static_metadata_refcounts[74],
375
+ .data.refcounted = {g_bytes + 746, 8}},
376
+ {.refcount = &grpc_static_metadata_refcounts[75],
377
+ .data.refcounted = {g_bytes + 754, 19}},
378
+ {.refcount = &grpc_static_metadata_refcounts[76],
379
+ .data.refcounted = {g_bytes + 773, 13}},
380
+ {.refcount = &grpc_static_metadata_refcounts[77],
381
+ .data.refcounted = {g_bytes + 786, 4}},
382
+ {.refcount = &grpc_static_metadata_refcounts[78],
383
+ .data.refcounted = {g_bytes + 790, 8}},
384
+ {.refcount = &grpc_static_metadata_refcounts[79],
385
+ .data.refcounted = {g_bytes + 798, 12}},
386
+ {.refcount = &grpc_static_metadata_refcounts[80],
387
+ .data.refcounted = {g_bytes + 810, 18}},
388
+ {.refcount = &grpc_static_metadata_refcounts[81],
389
+ .data.refcounted = {g_bytes + 828, 19}},
390
+ {.refcount = &grpc_static_metadata_refcounts[82],
391
+ .data.refcounted = {g_bytes + 847, 5}},
392
+ {.refcount = &grpc_static_metadata_refcounts[83],
393
+ .data.refcounted = {g_bytes + 852, 7}},
394
+ {.refcount = &grpc_static_metadata_refcounts[84],
395
+ .data.refcounted = {g_bytes + 859, 7}},
396
+ {.refcount = &grpc_static_metadata_refcounts[85],
397
+ .data.refcounted = {g_bytes + 866, 11}},
398
+ {.refcount = &grpc_static_metadata_refcounts[86],
399
+ .data.refcounted = {g_bytes + 877, 6}},
400
+ {.refcount = &grpc_static_metadata_refcounts[87],
401
+ .data.refcounted = {g_bytes + 883, 10}},
402
+ {.refcount = &grpc_static_metadata_refcounts[88],
403
+ .data.refcounted = {g_bytes + 893, 25}},
404
+ {.refcount = &grpc_static_metadata_refcounts[89],
405
+ .data.refcounted = {g_bytes + 918, 17}},
406
+ {.refcount = &grpc_static_metadata_refcounts[90],
407
+ .data.refcounted = {g_bytes + 935, 4}},
408
+ {.refcount = &grpc_static_metadata_refcounts[91],
409
+ .data.refcounted = {g_bytes + 939, 3}},
410
+ {.refcount = &grpc_static_metadata_refcounts[92],
411
+ .data.refcounted = {g_bytes + 942, 16}},
412
+ {.refcount = &grpc_static_metadata_refcounts[93],
413
+ .data.refcounted = {g_bytes + 958, 16}},
414
+ {.refcount = &grpc_static_metadata_refcounts[94],
415
+ .data.refcounted = {g_bytes + 974, 13}},
416
+ {.refcount = &grpc_static_metadata_refcounts[95],
417
+ .data.refcounted = {g_bytes + 987, 12}},
418
+ {.refcount = &grpc_static_metadata_refcounts[96],
419
+ .data.refcounted = {g_bytes + 999, 21}},
420
+ };
45
421
 
46
- grpc_mdelem grpc_static_mdelem_table[GRPC_STATIC_MDELEM_COUNT];
47
422
  uintptr_t grpc_static_mdelem_user_data[GRPC_STATIC_MDELEM_COUNT] = {
48
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
49
- 0, 0, 0, 0, 0, 4, 8, 6, 2, 4, 8, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,
50
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
51
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
423
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
424
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
425
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
426
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 4, 6, 6, 8, 8};
427
+
428
+ static const int8_t elems_r[] = {
429
+ 10, 8, -3, 0, 9, 21, -75, 22, 0, 10, -7, 20, 0, 19, 18, 17,
430
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
431
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
432
+ -48, -49, 16, -51, -52, -53, -54, -54, -55, -56, -57, 0, 37, 36, 35, 34,
433
+ 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18,
434
+ 17, 16, 15, 14, 13, 12, 11, 14, 13, 12, 11, 10, 9, 8, 0};
435
+ static uint32_t elems_phash(uint32_t i) {
436
+ i -= 41;
437
+ uint32_t x = i % 95;
438
+ uint32_t y = i / 95;
439
+ uint32_t h = x;
440
+ if (y < GPR_ARRAY_SIZE(elems_r)) {
441
+ uint32_t delta = (uint32_t)elems_r[y];
442
+ h += delta;
443
+ }
444
+ return h;
445
+ }
52
446
 
53
- const uint8_t grpc_static_metadata_elem_indices[GRPC_STATIC_MDELEM_COUNT * 2] =
54
- {11, 33, 10, 33, 12, 33, 12, 50, 13, 33, 14, 33, 15, 33, 16, 33, 17, 33,
55
- 19, 33, 20, 33, 21, 33, 22, 33, 23, 33, 24, 33, 25, 33, 26, 33, 27, 33,
56
- 28, 18, 28, 33, 29, 33, 30, 33, 34, 33, 35, 33, 36, 33, 37, 33, 40, 31,
57
- 40, 32, 40, 49, 40, 54, 40, 55, 40, 56, 40, 57, 41, 31, 41, 49, 41, 54,
58
- 46, 0, 46, 1, 46, 2, 51, 33, 58, 33, 59, 33, 60, 33, 61, 33, 62, 33,
59
- 63, 33, 64, 33, 65, 33, 66, 33, 67, 33, 68, 33, 69, 38, 69, 71, 69, 74,
60
- 70, 82, 70, 83, 72, 33, 73, 33, 75, 33, 76, 33, 77, 33, 78, 33, 79, 39,
61
- 79, 52, 79, 53, 80, 33, 81, 33, 84, 3, 84, 4, 84, 5, 84, 6, 84, 7,
62
- 84, 8, 84, 9, 85, 33, 86, 87, 88, 33, 89, 33, 90, 33, 91, 33, 92, 33};
447
+ static const uint16_t elem_keys[] = {
448
+ 998, 999, 1000, 237, 238, 239, 240, 241, 136, 137, 41, 42,
449
+ 424, 425, 426, 901, 902, 903, 704, 705, 1086, 516, 706, 1280,
450
+ 1377, 1474, 4675, 4772, 4803, 4966, 5063, 5160, 5257, 1099, 5354, 5451,
451
+ 5548, 5645, 5742, 5839, 5936, 6033, 6130, 6227, 6324, 6421, 6518, 6615,
452
+ 6712, 6809, 6906, 7003, 7100, 7197, 7294, 7391, 7488, 7585, 7682, 7779,
453
+ 7876, 7973, 8070, 8167, 8264, 1063, 1064, 1065, 1066, 8361, 8458, 8555,
454
+ 8652, 8749, 8846, 8943, 310, 0, 0, 0, 0, 0, 0, 0,
455
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
456
+ 0, 0, 0, 130, 228, 229, 0, 0, 0, 0, 0, 0,
457
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
458
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
459
+ static const uint8_t elem_idxs[] = {
460
+ 73, 76, 74, 19, 20, 21, 22, 23, 15, 16, 17, 18, 11, 12, 13,
461
+ 3, 4, 5, 0, 1, 41, 6, 2, 69, 48, 55, 24, 25, 26, 27,
462
+ 28, 29, 30, 7, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42,
463
+ 43, 44, 45, 46, 47, 49, 50, 51, 52, 53, 54, 56, 57, 58, 59,
464
+ 60, 61, 62, 63, 64, 75, 77, 78, 79, 65, 66, 67, 68, 70, 71,
465
+ 72, 14, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
466
+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 8, 9, 10};
63
467
 
64
- const char *const grpc_static_metadata_strings[GRPC_STATIC_MDSTR_COUNT] = {
65
- "0",
66
- "1",
67
- "2",
68
- "200",
69
- "204",
70
- "206",
71
- "304",
72
- "400",
73
- "404",
74
- "500",
75
- "accept",
76
- "accept-charset",
77
- "accept-encoding",
78
- "accept-language",
79
- "accept-ranges",
80
- "access-control-allow-origin",
81
- "age",
82
- "allow",
83
- "application/grpc",
84
- ":authority",
85
- "authorization",
86
- "cache-control",
87
- "content-disposition",
88
- "content-encoding",
89
- "content-language",
90
- "content-length",
91
- "content-location",
92
- "content-range",
93
- "content-type",
94
- "cookie",
95
- "date",
96
- "deflate",
97
- "deflate,gzip",
98
- "",
99
- "etag",
100
- "expect",
101
- "expires",
102
- "from",
103
- "GET",
104
- "grpc",
105
- "grpc-accept-encoding",
106
- "grpc-encoding",
107
- "grpc-internal-encoding-request",
108
- "grpc-message",
109
- "grpc-payload-bin",
110
- "grpc-stats-bin",
111
- "grpc-status",
112
- "grpc-timeout",
113
- "grpc-tracing-bin",
114
- "gzip",
115
- "gzip, deflate",
116
- "host",
117
- "http",
118
- "https",
119
- "identity",
120
- "identity,deflate",
121
- "identity,deflate,gzip",
122
- "identity,gzip",
123
- "if-match",
124
- "if-modified-since",
125
- "if-none-match",
126
- "if-range",
127
- "if-unmodified-since",
128
- "last-modified",
129
- "lb-cost-bin",
130
- "lb-token",
131
- "link",
132
- "location",
133
- "max-forwards",
134
- ":method",
135
- ":path",
136
- "POST",
137
- "proxy-authenticate",
138
- "proxy-authorization",
139
- "PUT",
140
- "range",
141
- "referer",
142
- "refresh",
143
- "retry-after",
144
- ":scheme",
145
- "server",
146
- "set-cookie",
147
- "/",
148
- "/index.html",
149
- ":status",
150
- "strict-transport-security",
151
- "te",
152
- "trailers",
153
- "transfer-encoding",
154
- "user-agent",
155
- "vary",
156
- "via",
157
- "www-authenticate"};
468
+ grpc_mdelem grpc_static_mdelem_for_static_strings(int a, int b) {
469
+ if (a == -1 || b == -1) return GRPC_MDNULL;
470
+ uint32_t k = (uint32_t)(a * 97 + b);
471
+ uint32_t h = elems_phash(k);
472
+ return h < GPR_ARRAY_SIZE(elem_keys) && elem_keys[h] == k
473
+ ? GRPC_MAKE_MDELEM(&grpc_static_mdelem_table[elem_idxs[h]],
474
+ GRPC_MDELEM_STORAGE_STATIC)
475
+ : GRPC_MDNULL;
476
+ }
158
477
 
159
- const uint8_t grpc_static_accept_encoding_metadata[8] = {0, 29, 26, 30,
160
- 28, 32, 27, 31};
478
+ grpc_mdelem_data grpc_static_mdelem_table[GRPC_STATIC_MDELEM_COUNT] = {
479
+ {{.refcount = &grpc_static_metadata_refcounts[7],
480
+ .data.refcounted = {g_bytes + 50, 11}},
481
+ {.refcount = &grpc_static_metadata_refcounts[25],
482
+ .data.refcounted = {g_bytes + 344, 1}}},
483
+ {{.refcount = &grpc_static_metadata_refcounts[7],
484
+ .data.refcounted = {g_bytes + 50, 11}},
485
+ {.refcount = &grpc_static_metadata_refcounts[26],
486
+ .data.refcounted = {g_bytes + 345, 1}}},
487
+ {{.refcount = &grpc_static_metadata_refcounts[7],
488
+ .data.refcounted = {g_bytes + 50, 11}},
489
+ {.refcount = &grpc_static_metadata_refcounts[27],
490
+ .data.refcounted = {g_bytes + 346, 1}}},
491
+ {{.refcount = &grpc_static_metadata_refcounts[9],
492
+ .data.refcounted = {g_bytes + 77, 13}},
493
+ {.refcount = &grpc_static_metadata_refcounts[28],
494
+ .data.refcounted = {g_bytes + 347, 8}}},
495
+ {{.refcount = &grpc_static_metadata_refcounts[9],
496
+ .data.refcounted = {g_bytes + 77, 13}},
497
+ {.refcount = &grpc_static_metadata_refcounts[29],
498
+ .data.refcounted = {g_bytes + 355, 4}}},
499
+ {{.refcount = &grpc_static_metadata_refcounts[9],
500
+ .data.refcounted = {g_bytes + 77, 13}},
501
+ {.refcount = &grpc_static_metadata_refcounts[30],
502
+ .data.refcounted = {g_bytes + 359, 7}}},
503
+ {{.refcount = &grpc_static_metadata_refcounts[5],
504
+ .data.refcounted = {g_bytes + 36, 2}},
505
+ {.refcount = &grpc_static_metadata_refcounts[31],
506
+ .data.refcounted = {g_bytes + 366, 8}}},
507
+ {{.refcount = &grpc_static_metadata_refcounts[11],
508
+ .data.refcounted = {g_bytes + 110, 12}},
509
+ {.refcount = &grpc_static_metadata_refcounts[32],
510
+ .data.refcounted = {g_bytes + 374, 16}}},
511
+ {{.refcount = &grpc_static_metadata_refcounts[1],
512
+ .data.refcounted = {g_bytes + 5, 7}},
513
+ {.refcount = &grpc_static_metadata_refcounts[33],
514
+ .data.refcounted = {g_bytes + 390, 4}}},
515
+ {{.refcount = &grpc_static_metadata_refcounts[2],
516
+ .data.refcounted = {g_bytes + 12, 7}},
517
+ {.refcount = &grpc_static_metadata_refcounts[34],
518
+ .data.refcounted = {g_bytes + 394, 3}}},
519
+ {{.refcount = &grpc_static_metadata_refcounts[2],
520
+ .data.refcounted = {g_bytes + 12, 7}},
521
+ {.refcount = &grpc_static_metadata_refcounts[35],
522
+ .data.refcounted = {g_bytes + 397, 3}}},
523
+ {{.refcount = &grpc_static_metadata_refcounts[4],
524
+ .data.refcounted = {g_bytes + 29, 7}},
525
+ {.refcount = &grpc_static_metadata_refcounts[36],
526
+ .data.refcounted = {g_bytes + 400, 4}}},
527
+ {{.refcount = &grpc_static_metadata_refcounts[4],
528
+ .data.refcounted = {g_bytes + 29, 7}},
529
+ {.refcount = &grpc_static_metadata_refcounts[37],
530
+ .data.refcounted = {g_bytes + 404, 5}}},
531
+ {{.refcount = &grpc_static_metadata_refcounts[4],
532
+ .data.refcounted = {g_bytes + 29, 7}},
533
+ {.refcount = &grpc_static_metadata_refcounts[38],
534
+ .data.refcounted = {g_bytes + 409, 4}}},
535
+ {{.refcount = &grpc_static_metadata_refcounts[3],
536
+ .data.refcounted = {g_bytes + 19, 10}},
537
+ {.refcount = &grpc_static_metadata_refcounts[19],
538
+ .data.refcounted = {g_bytes + 216, 0}}},
539
+ {{.refcount = &grpc_static_metadata_refcounts[1],
540
+ .data.refcounted = {g_bytes + 5, 7}},
541
+ {.refcount = &grpc_static_metadata_refcounts[39],
542
+ .data.refcounted = {g_bytes + 413, 3}}},
543
+ {{.refcount = &grpc_static_metadata_refcounts[1],
544
+ .data.refcounted = {g_bytes + 5, 7}},
545
+ {.refcount = &grpc_static_metadata_refcounts[40],
546
+ .data.refcounted = {g_bytes + 416, 3}}},
547
+ {{.refcount = &grpc_static_metadata_refcounts[0],
548
+ .data.refcounted = {g_bytes + 0, 5}},
549
+ {.refcount = &grpc_static_metadata_refcounts[41],
550
+ .data.refcounted = {g_bytes + 419, 1}}},
551
+ {{.refcount = &grpc_static_metadata_refcounts[0],
552
+ .data.refcounted = {g_bytes + 0, 5}},
553
+ {.refcount = &grpc_static_metadata_refcounts[42],
554
+ .data.refcounted = {g_bytes + 420, 11}}},
555
+ {{.refcount = &grpc_static_metadata_refcounts[2],
556
+ .data.refcounted = {g_bytes + 12, 7}},
557
+ {.refcount = &grpc_static_metadata_refcounts[43],
558
+ .data.refcounted = {g_bytes + 431, 3}}},
559
+ {{.refcount = &grpc_static_metadata_refcounts[2],
560
+ .data.refcounted = {g_bytes + 12, 7}},
561
+ {.refcount = &grpc_static_metadata_refcounts[44],
562
+ .data.refcounted = {g_bytes + 434, 3}}},
563
+ {{.refcount = &grpc_static_metadata_refcounts[2],
564
+ .data.refcounted = {g_bytes + 12, 7}},
565
+ {.refcount = &grpc_static_metadata_refcounts[45],
566
+ .data.refcounted = {g_bytes + 437, 3}}},
567
+ {{.refcount = &grpc_static_metadata_refcounts[2],
568
+ .data.refcounted = {g_bytes + 12, 7}},
569
+ {.refcount = &grpc_static_metadata_refcounts[46],
570
+ .data.refcounted = {g_bytes + 440, 3}}},
571
+ {{.refcount = &grpc_static_metadata_refcounts[2],
572
+ .data.refcounted = {g_bytes + 12, 7}},
573
+ {.refcount = &grpc_static_metadata_refcounts[47],
574
+ .data.refcounted = {g_bytes + 443, 3}}},
575
+ {{.refcount = &grpc_static_metadata_refcounts[48],
576
+ .data.refcounted = {g_bytes + 446, 14}},
577
+ {.refcount = &grpc_static_metadata_refcounts[19],
578
+ .data.refcounted = {g_bytes + 216, 0}}},
579
+ {{.refcount = &grpc_static_metadata_refcounts[49],
580
+ .data.refcounted = {g_bytes + 460, 15}},
581
+ {.refcount = &grpc_static_metadata_refcounts[19],
582
+ .data.refcounted = {g_bytes + 216, 0}}},
583
+ {{.refcount = &grpc_static_metadata_refcounts[49],
584
+ .data.refcounted = {g_bytes + 460, 15}},
585
+ {.refcount = &grpc_static_metadata_refcounts[50],
586
+ .data.refcounted = {g_bytes + 475, 13}}},
587
+ {{.refcount = &grpc_static_metadata_refcounts[51],
588
+ .data.refcounted = {g_bytes + 488, 15}},
589
+ {.refcount = &grpc_static_metadata_refcounts[19],
590
+ .data.refcounted = {g_bytes + 216, 0}}},
591
+ {{.refcount = &grpc_static_metadata_refcounts[52],
592
+ .data.refcounted = {g_bytes + 503, 13}},
593
+ {.refcount = &grpc_static_metadata_refcounts[19],
594
+ .data.refcounted = {g_bytes + 216, 0}}},
595
+ {{.refcount = &grpc_static_metadata_refcounts[53],
596
+ .data.refcounted = {g_bytes + 516, 6}},
597
+ {.refcount = &grpc_static_metadata_refcounts[19],
598
+ .data.refcounted = {g_bytes + 216, 0}}},
599
+ {{.refcount = &grpc_static_metadata_refcounts[54],
600
+ .data.refcounted = {g_bytes + 522, 27}},
601
+ {.refcount = &grpc_static_metadata_refcounts[19],
602
+ .data.refcounted = {g_bytes + 216, 0}}},
603
+ {{.refcount = &grpc_static_metadata_refcounts[55],
604
+ .data.refcounted = {g_bytes + 549, 3}},
605
+ {.refcount = &grpc_static_metadata_refcounts[19],
606
+ .data.refcounted = {g_bytes + 216, 0}}},
607
+ {{.refcount = &grpc_static_metadata_refcounts[56],
608
+ .data.refcounted = {g_bytes + 552, 5}},
609
+ {.refcount = &grpc_static_metadata_refcounts[19],
610
+ .data.refcounted = {g_bytes + 216, 0}}},
611
+ {{.refcount = &grpc_static_metadata_refcounts[57],
612
+ .data.refcounted = {g_bytes + 557, 13}},
613
+ {.refcount = &grpc_static_metadata_refcounts[19],
614
+ .data.refcounted = {g_bytes + 216, 0}}},
615
+ {{.refcount = &grpc_static_metadata_refcounts[58],
616
+ .data.refcounted = {g_bytes + 570, 13}},
617
+ {.refcount = &grpc_static_metadata_refcounts[19],
618
+ .data.refcounted = {g_bytes + 216, 0}}},
619
+ {{.refcount = &grpc_static_metadata_refcounts[59],
620
+ .data.refcounted = {g_bytes + 583, 19}},
621
+ {.refcount = &grpc_static_metadata_refcounts[19],
622
+ .data.refcounted = {g_bytes + 216, 0}}},
623
+ {{.refcount = &grpc_static_metadata_refcounts[60],
624
+ .data.refcounted = {g_bytes + 602, 16}},
625
+ {.refcount = &grpc_static_metadata_refcounts[19],
626
+ .data.refcounted = {g_bytes + 216, 0}}},
627
+ {{.refcount = &grpc_static_metadata_refcounts[61],
628
+ .data.refcounted = {g_bytes + 618, 16}},
629
+ {.refcount = &grpc_static_metadata_refcounts[19],
630
+ .data.refcounted = {g_bytes + 216, 0}}},
631
+ {{.refcount = &grpc_static_metadata_refcounts[62],
632
+ .data.refcounted = {g_bytes + 634, 14}},
633
+ {.refcount = &grpc_static_metadata_refcounts[19],
634
+ .data.refcounted = {g_bytes + 216, 0}}},
635
+ {{.refcount = &grpc_static_metadata_refcounts[63],
636
+ .data.refcounted = {g_bytes + 648, 16}},
637
+ {.refcount = &grpc_static_metadata_refcounts[19],
638
+ .data.refcounted = {g_bytes + 216, 0}}},
639
+ {{.refcount = &grpc_static_metadata_refcounts[64],
640
+ .data.refcounted = {g_bytes + 664, 13}},
641
+ {.refcount = &grpc_static_metadata_refcounts[19],
642
+ .data.refcounted = {g_bytes + 216, 0}}},
643
+ {{.refcount = &grpc_static_metadata_refcounts[11],
644
+ .data.refcounted = {g_bytes + 110, 12}},
645
+ {.refcount = &grpc_static_metadata_refcounts[19],
646
+ .data.refcounted = {g_bytes + 216, 0}}},
647
+ {{.refcount = &grpc_static_metadata_refcounts[65],
648
+ .data.refcounted = {g_bytes + 677, 6}},
649
+ {.refcount = &grpc_static_metadata_refcounts[19],
650
+ .data.refcounted = {g_bytes + 216, 0}}},
651
+ {{.refcount = &grpc_static_metadata_refcounts[66],
652
+ .data.refcounted = {g_bytes + 683, 4}},
653
+ {.refcount = &grpc_static_metadata_refcounts[19],
654
+ .data.refcounted = {g_bytes + 216, 0}}},
655
+ {{.refcount = &grpc_static_metadata_refcounts[67],
656
+ .data.refcounted = {g_bytes + 687, 4}},
657
+ {.refcount = &grpc_static_metadata_refcounts[19],
658
+ .data.refcounted = {g_bytes + 216, 0}}},
659
+ {{.refcount = &grpc_static_metadata_refcounts[68],
660
+ .data.refcounted = {g_bytes + 691, 6}},
661
+ {.refcount = &grpc_static_metadata_refcounts[19],
662
+ .data.refcounted = {g_bytes + 216, 0}}},
663
+ {{.refcount = &grpc_static_metadata_refcounts[69],
664
+ .data.refcounted = {g_bytes + 697, 7}},
665
+ {.refcount = &grpc_static_metadata_refcounts[19],
666
+ .data.refcounted = {g_bytes + 216, 0}}},
667
+ {{.refcount = &grpc_static_metadata_refcounts[70],
668
+ .data.refcounted = {g_bytes + 704, 4}},
669
+ {.refcount = &grpc_static_metadata_refcounts[19],
670
+ .data.refcounted = {g_bytes + 216, 0}}},
671
+ {{.refcount = &grpc_static_metadata_refcounts[14],
672
+ .data.refcounted = {g_bytes + 162, 4}},
673
+ {.refcount = &grpc_static_metadata_refcounts[19],
674
+ .data.refcounted = {g_bytes + 216, 0}}},
675
+ {{.refcount = &grpc_static_metadata_refcounts[71],
676
+ .data.refcounted = {g_bytes + 708, 8}},
677
+ {.refcount = &grpc_static_metadata_refcounts[19],
678
+ .data.refcounted = {g_bytes + 216, 0}}},
679
+ {{.refcount = &grpc_static_metadata_refcounts[72],
680
+ .data.refcounted = {g_bytes + 716, 17}},
681
+ {.refcount = &grpc_static_metadata_refcounts[19],
682
+ .data.refcounted = {g_bytes + 216, 0}}},
683
+ {{.refcount = &grpc_static_metadata_refcounts[73],
684
+ .data.refcounted = {g_bytes + 733, 13}},
685
+ {.refcount = &grpc_static_metadata_refcounts[19],
686
+ .data.refcounted = {g_bytes + 216, 0}}},
687
+ {{.refcount = &grpc_static_metadata_refcounts[74],
688
+ .data.refcounted = {g_bytes + 746, 8}},
689
+ {.refcount = &grpc_static_metadata_refcounts[19],
690
+ .data.refcounted = {g_bytes + 216, 0}}},
691
+ {{.refcount = &grpc_static_metadata_refcounts[75],
692
+ .data.refcounted = {g_bytes + 754, 19}},
693
+ {.refcount = &grpc_static_metadata_refcounts[19],
694
+ .data.refcounted = {g_bytes + 216, 0}}},
695
+ {{.refcount = &grpc_static_metadata_refcounts[76],
696
+ .data.refcounted = {g_bytes + 773, 13}},
697
+ {.refcount = &grpc_static_metadata_refcounts[19],
698
+ .data.refcounted = {g_bytes + 216, 0}}},
699
+ {{.refcount = &grpc_static_metadata_refcounts[15],
700
+ .data.refcounted = {g_bytes + 166, 8}},
701
+ {.refcount = &grpc_static_metadata_refcounts[19],
702
+ .data.refcounted = {g_bytes + 216, 0}}},
703
+ {{.refcount = &grpc_static_metadata_refcounts[77],
704
+ .data.refcounted = {g_bytes + 786, 4}},
705
+ {.refcount = &grpc_static_metadata_refcounts[19],
706
+ .data.refcounted = {g_bytes + 216, 0}}},
707
+ {{.refcount = &grpc_static_metadata_refcounts[78],
708
+ .data.refcounted = {g_bytes + 790, 8}},
709
+ {.refcount = &grpc_static_metadata_refcounts[19],
710
+ .data.refcounted = {g_bytes + 216, 0}}},
711
+ {{.refcount = &grpc_static_metadata_refcounts[79],
712
+ .data.refcounted = {g_bytes + 798, 12}},
713
+ {.refcount = &grpc_static_metadata_refcounts[19],
714
+ .data.refcounted = {g_bytes + 216, 0}}},
715
+ {{.refcount = &grpc_static_metadata_refcounts[80],
716
+ .data.refcounted = {g_bytes + 810, 18}},
717
+ {.refcount = &grpc_static_metadata_refcounts[19],
718
+ .data.refcounted = {g_bytes + 216, 0}}},
719
+ {{.refcount = &grpc_static_metadata_refcounts[81],
720
+ .data.refcounted = {g_bytes + 828, 19}},
721
+ {.refcount = &grpc_static_metadata_refcounts[19],
722
+ .data.refcounted = {g_bytes + 216, 0}}},
723
+ {{.refcount = &grpc_static_metadata_refcounts[82],
724
+ .data.refcounted = {g_bytes + 847, 5}},
725
+ {.refcount = &grpc_static_metadata_refcounts[19],
726
+ .data.refcounted = {g_bytes + 216, 0}}},
727
+ {{.refcount = &grpc_static_metadata_refcounts[83],
728
+ .data.refcounted = {g_bytes + 852, 7}},
729
+ {.refcount = &grpc_static_metadata_refcounts[19],
730
+ .data.refcounted = {g_bytes + 216, 0}}},
731
+ {{.refcount = &grpc_static_metadata_refcounts[84],
732
+ .data.refcounted = {g_bytes + 859, 7}},
733
+ {.refcount = &grpc_static_metadata_refcounts[19],
734
+ .data.refcounted = {g_bytes + 216, 0}}},
735
+ {{.refcount = &grpc_static_metadata_refcounts[85],
736
+ .data.refcounted = {g_bytes + 866, 11}},
737
+ {.refcount = &grpc_static_metadata_refcounts[19],
738
+ .data.refcounted = {g_bytes + 216, 0}}},
739
+ {{.refcount = &grpc_static_metadata_refcounts[86],
740
+ .data.refcounted = {g_bytes + 877, 6}},
741
+ {.refcount = &grpc_static_metadata_refcounts[19],
742
+ .data.refcounted = {g_bytes + 216, 0}}},
743
+ {{.refcount = &grpc_static_metadata_refcounts[87],
744
+ .data.refcounted = {g_bytes + 883, 10}},
745
+ {.refcount = &grpc_static_metadata_refcounts[19],
746
+ .data.refcounted = {g_bytes + 216, 0}}},
747
+ {{.refcount = &grpc_static_metadata_refcounts[88],
748
+ .data.refcounted = {g_bytes + 893, 25}},
749
+ {.refcount = &grpc_static_metadata_refcounts[19],
750
+ .data.refcounted = {g_bytes + 216, 0}}},
751
+ {{.refcount = &grpc_static_metadata_refcounts[89],
752
+ .data.refcounted = {g_bytes + 918, 17}},
753
+ {.refcount = &grpc_static_metadata_refcounts[19],
754
+ .data.refcounted = {g_bytes + 216, 0}}},
755
+ {{.refcount = &grpc_static_metadata_refcounts[13],
756
+ .data.refcounted = {g_bytes + 152, 10}},
757
+ {.refcount = &grpc_static_metadata_refcounts[19],
758
+ .data.refcounted = {g_bytes + 216, 0}}},
759
+ {{.refcount = &grpc_static_metadata_refcounts[90],
760
+ .data.refcounted = {g_bytes + 935, 4}},
761
+ {.refcount = &grpc_static_metadata_refcounts[19],
762
+ .data.refcounted = {g_bytes + 216, 0}}},
763
+ {{.refcount = &grpc_static_metadata_refcounts[91],
764
+ .data.refcounted = {g_bytes + 939, 3}},
765
+ {.refcount = &grpc_static_metadata_refcounts[19],
766
+ .data.refcounted = {g_bytes + 216, 0}}},
767
+ {{.refcount = &grpc_static_metadata_refcounts[92],
768
+ .data.refcounted = {g_bytes + 942, 16}},
769
+ {.refcount = &grpc_static_metadata_refcounts[19],
770
+ .data.refcounted = {g_bytes + 216, 0}}},
771
+ {{.refcount = &grpc_static_metadata_refcounts[10],
772
+ .data.refcounted = {g_bytes + 90, 20}},
773
+ {.refcount = &grpc_static_metadata_refcounts[28],
774
+ .data.refcounted = {g_bytes + 347, 8}}},
775
+ {{.refcount = &grpc_static_metadata_refcounts[10],
776
+ .data.refcounted = {g_bytes + 90, 20}},
777
+ {.refcount = &grpc_static_metadata_refcounts[30],
778
+ .data.refcounted = {g_bytes + 359, 7}}},
779
+ {{.refcount = &grpc_static_metadata_refcounts[10],
780
+ .data.refcounted = {g_bytes + 90, 20}},
781
+ {.refcount = &grpc_static_metadata_refcounts[93],
782
+ .data.refcounted = {g_bytes + 958, 16}}},
783
+ {{.refcount = &grpc_static_metadata_refcounts[10],
784
+ .data.refcounted = {g_bytes + 90, 20}},
785
+ {.refcount = &grpc_static_metadata_refcounts[29],
786
+ .data.refcounted = {g_bytes + 355, 4}}},
787
+ {{.refcount = &grpc_static_metadata_refcounts[10],
788
+ .data.refcounted = {g_bytes + 90, 20}},
789
+ {.refcount = &grpc_static_metadata_refcounts[94],
790
+ .data.refcounted = {g_bytes + 974, 13}}},
791
+ {{.refcount = &grpc_static_metadata_refcounts[10],
792
+ .data.refcounted = {g_bytes + 90, 20}},
793
+ {.refcount = &grpc_static_metadata_refcounts[95],
794
+ .data.refcounted = {g_bytes + 987, 12}}},
795
+ {{.refcount = &grpc_static_metadata_refcounts[10],
796
+ .data.refcounted = {g_bytes + 90, 20}},
797
+ {.refcount = &grpc_static_metadata_refcounts[96],
798
+ .data.refcounted = {g_bytes + 999, 21}}},
799
+ };
800
+ const uint8_t grpc_static_accept_encoding_metadata[8] = {0, 73, 74, 75,
801
+ 76, 77, 78, 79};