grpc 0.12.0 → 0.13.0.pre1.1

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 (673) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +5707 -22222
  3. data/include/grpc/byte_buffer.h +2 -83
  4. data/include/grpc/census.h +191 -121
  5. data/include/grpc/compression.h +14 -38
  6. data/include/grpc/grpc.h +88 -434
  7. data/include/grpc/grpc_security.h +76 -46
  8. data/include/grpc/grpc_zookeeper.h +1 -1
  9. data/include/grpc/impl/codegen/alloc.h +74 -0
  10. data/include/grpc/impl/codegen/atm.h +92 -0
  11. data/include/grpc/impl/codegen/atm_gcc_atomic.h +72 -0
  12. data/include/grpc/impl/codegen/atm_gcc_sync.h +87 -0
  13. data/include/grpc/impl/codegen/atm_win32.h +125 -0
  14. data/include/grpc/impl/codegen/byte_buffer.h +121 -0
  15. data/include/grpc/impl/codegen/compression_types.h +73 -0
  16. data/include/grpc/impl/codegen/connectivity_state.h +59 -0
  17. data/include/grpc/impl/codegen/grpc_types.h +373 -0
  18. data/include/grpc/impl/codegen/log.h +110 -0
  19. data/include/grpc/impl/codegen/port_platform.h +362 -0
  20. data/include/grpc/impl/codegen/propagation_bits.h +67 -0
  21. data/include/grpc/impl/codegen/slice.h +182 -0
  22. data/include/grpc/impl/codegen/slice_buffer.h +105 -0
  23. data/include/grpc/impl/codegen/status.h +163 -0
  24. data/include/grpc/impl/codegen/sync.h +316 -0
  25. data/include/grpc/impl/codegen/sync_generic.h +55 -0
  26. data/{src/core/census/context.h → include/grpc/impl/codegen/sync_posix.h} +11 -11
  27. data/include/grpc/impl/codegen/sync_win32.h +49 -0
  28. data/include/grpc/impl/codegen/time.h +132 -0
  29. data/include/grpc/status.h +2 -126
  30. data/include/grpc/support/alloc.h +2 -35
  31. data/include/grpc/support/atm.h +2 -55
  32. data/include/grpc/support/atm_gcc_atomic.h +5 -38
  33. data/include/grpc/support/atm_gcc_sync.h +2 -50
  34. data/include/grpc/support/atm_win32.h +2 -88
  35. data/include/grpc/support/avl.h +7 -7
  36. data/include/grpc/support/cmdline.h +15 -13
  37. data/include/grpc/support/cpu.h +5 -3
  38. data/include/grpc/support/histogram.h +23 -20
  39. data/include/grpc/support/host_port.h +5 -3
  40. data/include/grpc/support/log.h +2 -71
  41. data/include/grpc/support/log_win32.h +2 -2
  42. data/include/grpc/support/port_platform.h +2 -319
  43. data/include/grpc/support/slice.h +2 -145
  44. data/include/grpc/support/slice_buffer.h +2 -65
  45. data/include/grpc/support/string_util.h +3 -3
  46. data/include/grpc/support/subprocess.h +8 -6
  47. data/include/grpc/support/sync.h +2 -278
  48. data/include/grpc/support/sync_generic.h +2 -18
  49. data/include/grpc/support/sync_posix.h +2 -10
  50. data/include/grpc/support/sync_win32.h +2 -12
  51. data/include/grpc/support/thd.h +11 -11
  52. data/include/grpc/support/time.h +2 -91
  53. data/include/grpc/support/tls.h +1 -1
  54. data/include/grpc/support/tls_gcc.h +1 -1
  55. data/include/grpc/support/tls_msvc.h +1 -1
  56. data/include/grpc/support/tls_pthread.h +2 -2
  57. data/src/boringssl/err_data.c +1252 -0
  58. data/src/core/census/context.c +492 -8
  59. data/src/core/census/grpc_filter.c +3 -3
  60. data/src/core/census/initialize.c +4 -7
  61. data/src/core/census/operation.c +2 -2
  62. data/src/core/census/placeholders.c +109 -0
  63. data/src/core/census/rpc_metric_id.h +6 -6
  64. data/src/core/census/tracing.c +1 -1
  65. data/src/core/channel/channel_args.c +4 -3
  66. data/src/core/channel/channel_stack.c +1 -1
  67. data/src/core/channel/client_channel.c +18 -14
  68. data/src/core/channel/client_uchannel.c +3 -3
  69. data/src/core/channel/compress_filter.c +8 -8
  70. data/src/core/channel/http_client_filter.c +2 -2
  71. data/src/core/channel/http_server_filter.c +9 -9
  72. data/src/core/channel/subchannel_call_holder.c +12 -10
  73. data/src/core/client_config/lb_policies/pick_first.c +49 -31
  74. data/src/core/client_config/lb_policies/round_robin.c +7 -7
  75. data/src/core/client_config/resolvers/dns_resolver.c +3 -3
  76. data/src/core/client_config/resolvers/sockaddr_resolver.c +5 -5
  77. data/src/core/client_config/subchannel.c +36 -25
  78. data/src/core/compression/algorithm.c +3 -3
  79. data/src/core/httpcli/format_request.c +1 -1
  80. data/src/core/httpcli/httpcli.c +5 -5
  81. data/src/core/httpcli/httpcli_security_connector.c +2 -3
  82. data/src/core/httpcli/parser.c +7 -7
  83. data/src/core/httpcli/parser.h +1 -1
  84. data/src/core/iomgr/closure.c +7 -7
  85. data/src/core/iomgr/closure.h +6 -5
  86. data/src/core/iomgr/exec_ctx.c +12 -8
  87. data/src/core/iomgr/exec_ctx.h +12 -5
  88. data/src/core/iomgr/executor.c +4 -4
  89. data/src/core/iomgr/executor.h +2 -2
  90. data/src/core/iomgr/fd_posix.c +28 -17
  91. data/src/core/iomgr/fd_posix.h +7 -4
  92. data/src/core/iomgr/iocp_windows.c +6 -8
  93. data/src/core/iomgr/pollset_multipoller_with_epoll.c +70 -5
  94. data/src/core/iomgr/pollset_multipoller_with_poll_posix.c +4 -2
  95. data/src/core/iomgr/pollset_posix.c +15 -15
  96. data/src/core/iomgr/pollset_posix.h +4 -2
  97. data/src/core/iomgr/pollset_windows.c +3 -12
  98. data/src/core/iomgr/resolve_address_posix.c +2 -2
  99. data/src/core/iomgr/resolve_address_windows.c +2 -2
  100. data/src/core/iomgr/sockaddr_utils.c +6 -6
  101. data/src/core/iomgr/sockaddr_win32.h +1 -6
  102. data/src/core/iomgr/tcp_client_posix.c +7 -7
  103. data/src/core/iomgr/tcp_client_windows.c +4 -4
  104. data/src/core/iomgr/tcp_posix.c +14 -8
  105. data/src/core/iomgr/tcp_posix.h +7 -1
  106. data/src/core/iomgr/tcp_server.h +40 -20
  107. data/src/core/iomgr/tcp_server_posix.c +106 -49
  108. data/src/core/iomgr/tcp_server_windows.c +98 -49
  109. data/src/core/iomgr/tcp_windows.c +11 -15
  110. data/src/core/iomgr/timer.c +8 -8
  111. data/src/core/iomgr/timer.h +1 -1
  112. data/src/core/iomgr/timer_heap.c +10 -10
  113. data/src/core/iomgr/timer_heap.h +2 -2
  114. data/src/core/iomgr/udp_server.c +2 -12
  115. data/src/core/iomgr/udp_server.h +1 -9
  116. data/src/core/iomgr/workqueue.h +2 -4
  117. data/src/core/iomgr/workqueue_posix.c +3 -3
  118. data/src/core/json/json_reader.c +11 -12
  119. data/src/core/json/json_reader.h +4 -4
  120. data/src/core/json/json_string.c +19 -19
  121. data/src/core/json/json_writer.c +7 -9
  122. data/src/core/profiling/basic_timers.c +1 -1
  123. data/src/core/security/base64.c +9 -9
  124. data/src/core/security/client_auth_filter.c +4 -4
  125. data/src/core/security/credentials.c +5 -5
  126. data/src/core/security/google_default_credentials.c +3 -3
  127. data/src/core/security/handshake.c +6 -5
  128. data/src/core/security/json_token.c +13 -7
  129. data/src/core/security/jwt_verifier.c +3 -2
  130. data/src/core/security/secure_endpoint.c +16 -16
  131. data/src/core/security/security_connector.c +47 -17
  132. data/src/core/security/security_connector.h +5 -5
  133. data/src/core/security/server_auth_filter.c +3 -3
  134. data/src/core/security/server_secure_chttp2.c +30 -31
  135. data/src/core/statistics/census_interface.h +2 -2
  136. data/src/core/statistics/census_rpc_stats.h +3 -3
  137. data/src/core/support/alloc.c +1 -1
  138. data/src/core/support/cpu_posix.c +2 -2
  139. data/src/core/support/env_linux.c +12 -2
  140. data/src/core/support/env_win32.c +15 -7
  141. data/src/core/support/histogram.c +5 -5
  142. data/src/core/support/log_posix.c +1 -1
  143. data/src/core/support/log_win32.c +4 -3
  144. data/src/core/support/murmur_hash.c +11 -11
  145. data/src/core/support/murmur_hash.h +1 -1
  146. data/src/core/support/slice.c +11 -11
  147. data/src/core/support/slice_buffer.c +6 -6
  148. data/src/core/support/stack_lockfree.c +20 -10
  149. data/src/core/support/string.c +15 -15
  150. data/src/core/support/string.h +5 -5
  151. data/src/core/support/string_win32.c +5 -5
  152. data/src/core/support/subprocess_windows.c +141 -0
  153. data/src/core/support/sync.c +4 -4
  154. data/src/core/support/sync_posix.c +2 -2
  155. data/src/core/support/sync_win32.c +10 -5
  156. data/src/core/support/time.c +29 -29
  157. data/src/core/support/time_posix.c +15 -6
  158. data/src/core/support/time_precise.c +2 -2
  159. data/src/core/support/time_win32.c +18 -9
  160. data/src/core/support/tls_pthread.c +1 -1
  161. data/src/core/support/wrap_memcpy.c +53 -0
  162. data/src/core/surface/alarm.c +83 -0
  163. data/src/core/surface/byte_buffer_reader.c +1 -1
  164. data/src/core/surface/call.c +78 -69
  165. data/src/core/surface/call.h +2 -2
  166. data/src/core/surface/call_test_only.h +2 -2
  167. data/src/core/surface/channel.c +9 -9
  168. data/src/core/surface/channel.h +1 -1
  169. data/src/core/surface/channel_connectivity.c +3 -3
  170. data/src/core/surface/channel_create.c +3 -3
  171. data/src/core/surface/channel_ping.c +2 -2
  172. data/src/core/surface/completion_queue.c +11 -12
  173. data/src/core/surface/completion_queue.h +1 -1
  174. data/src/core/surface/init.c +7 -5
  175. data/src/core/surface/lame_client.c +3 -3
  176. data/src/core/surface/secure_channel_create.c +3 -3
  177. data/src/core/surface/server.c +28 -28
  178. data/src/core/surface/server_chttp2.c +8 -8
  179. data/src/core/surface/server_create.c +1 -4
  180. data/src/core/surface/validate_metadata.c +3 -3
  181. data/src/core/surface/version.c +2 -2
  182. data/src/core/transport/byte_stream.c +8 -6
  183. data/src/core/transport/byte_stream.h +6 -5
  184. data/src/core/transport/chttp2/bin_encoder.c +29 -29
  185. data/src/core/transport/chttp2/frame_data.c +29 -26
  186. data/src/core/transport/chttp2/frame_data.h +6 -6
  187. data/src/core/transport/chttp2/frame_goaway.c +30 -30
  188. data/src/core/transport/chttp2/frame_goaway.h +6 -6
  189. data/src/core/transport/chttp2/frame_ping.c +6 -6
  190. data/src/core/transport/chttp2/frame_ping.h +5 -5
  191. data/src/core/transport/chttp2/frame_rst_stream.c +18 -19
  192. data/src/core/transport/chttp2/frame_rst_stream.h +4 -4
  193. data/src/core/transport/chttp2/frame_settings.c +30 -30
  194. data/src/core/transport/chttp2/frame_settings.h +13 -13
  195. data/src/core/transport/chttp2/frame_window_update.c +17 -18
  196. data/src/core/transport/chttp2/frame_window_update.h +5 -7
  197. data/src/core/transport/chttp2/hpack_encoder.c +69 -73
  198. data/src/core/transport/chttp2/hpack_encoder.h +16 -16
  199. data/src/core/transport/chttp2/hpack_parser.c +167 -167
  200. data/src/core/transport/chttp2/hpack_parser.h +16 -16
  201. data/src/core/transport/chttp2/hpack_table.c +13 -13
  202. data/src/core/transport/chttp2/hpack_table.h +11 -11
  203. data/src/core/transport/chttp2/internal.h +97 -86
  204. data/src/core/transport/chttp2/parsing.c +25 -25
  205. data/src/core/transport/chttp2/stream_lists.c +26 -3
  206. data/src/core/transport/chttp2/stream_map.c +13 -14
  207. data/src/core/transport/chttp2/stream_map.h +6 -7
  208. data/src/core/transport/chttp2/timeout_encoding.c +19 -16
  209. data/src/core/transport/chttp2/varint.c +8 -9
  210. data/src/core/transport/chttp2/varint.h +7 -8
  211. data/src/core/transport/chttp2/writing.c +26 -23
  212. data/src/core/transport/chttp2_transport.c +133 -92
  213. data/src/core/transport/connectivity_state.c +6 -6
  214. data/src/core/transport/metadata.c +18 -18
  215. data/src/core/transport/metadata.h +5 -5
  216. data/src/core/transport/static_metadata.c +15 -16
  217. data/src/core/transport/static_metadata.h +5 -5
  218. data/src/core/transport/transport.c +5 -5
  219. data/src/core/transport/transport.h +14 -1
  220. data/src/core/tsi/fake_transport_security.c +7 -7
  221. data/src/core/tsi/ssl_transport_security.c +6 -4
  222. data/src/core/tsi/ssl_types.h +55 -0
  223. data/src/ruby/ext/grpc/extconf.rb +51 -14
  224. data/src/ruby/ext/grpc/rb_byte_buffer.c +3 -1
  225. data/src/ruby/ext/grpc/rb_call.c +6 -3
  226. data/src/ruby/ext/grpc/rb_call_credentials.c +4 -0
  227. data/src/ruby/ext/grpc/rb_channel.c +4 -2
  228. data/src/ruby/ext/grpc/rb_channel_args.c +3 -1
  229. data/src/ruby/ext/grpc/rb_channel_credentials.c +3 -1
  230. data/src/ruby/ext/grpc/rb_completion_queue.c +3 -1
  231. data/src/ruby/ext/grpc/rb_event_thread.c +5 -0
  232. data/src/ruby/ext/grpc/rb_grpc.c +11 -3
  233. data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +560 -0
  234. data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +843 -0
  235. data/src/ruby/ext/grpc/rb_loader.c +72 -0
  236. data/src/ruby/ext/grpc/rb_loader.h +40 -0
  237. data/src/ruby/ext/grpc/rb_server.c +3 -1
  238. data/src/ruby/ext/grpc/rb_server_credentials.c +4 -2
  239. data/src/ruby/lib/grpc/generic/bidi_call.rb +1 -1
  240. data/src/ruby/lib/grpc/generic/rpc_desc.rb +1 -1
  241. data/src/ruby/lib/grpc/generic/rpc_server.rb +1 -1
  242. data/src/ruby/lib/grpc/grpc.rb +34 -0
  243. data/src/ruby/lib/grpc/version.rb +1 -1
  244. data/src/ruby/spec/pb/health/checker_spec.rb +1 -1
  245. data/third_party/boringssl/crypto/aes/aes.c +1142 -0
  246. data/third_party/boringssl/crypto/aes/internal.h +87 -0
  247. data/third_party/boringssl/crypto/aes/mode_wrappers.c +108 -0
  248. data/third_party/boringssl/crypto/asn1/a_bitstr.c +255 -0
  249. data/third_party/boringssl/crypto/asn1/a_bool.c +112 -0
  250. data/third_party/boringssl/crypto/asn1/a_bytes.c +317 -0
  251. data/third_party/boringssl/crypto/asn1/a_d2i_fp.c +286 -0
  252. data/third_party/boringssl/crypto/asn1/a_dup.c +103 -0
  253. data/third_party/boringssl/crypto/asn1/a_enum.c +183 -0
  254. data/third_party/boringssl/crypto/asn1/a_gentm.c +255 -0
  255. data/third_party/boringssl/crypto/asn1/a_i2d_fp.c +154 -0
  256. data/third_party/boringssl/crypto/asn1/a_int.c +456 -0
  257. data/third_party/boringssl/crypto/asn1/a_mbstr.c +390 -0
  258. data/third_party/boringssl/crypto/asn1/a_object.c +412 -0
  259. data/third_party/boringssl/crypto/asn1/a_octet.c +70 -0
  260. data/third_party/boringssl/crypto/asn1/a_print.c +119 -0
  261. data/third_party/boringssl/crypto/asn1/a_strnid.c +286 -0
  262. data/third_party/boringssl/crypto/asn1/a_time.c +221 -0
  263. data/third_party/boringssl/crypto/asn1/a_type.c +160 -0
  264. data/third_party/boringssl/crypto/asn1/a_utctm.c +342 -0
  265. data/third_party/boringssl/crypto/asn1/a_utf8.c +210 -0
  266. data/third_party/boringssl/crypto/asn1/asn1_lib.c +510 -0
  267. data/third_party/boringssl/crypto/asn1/asn1_locl.h +73 -0
  268. data/third_party/boringssl/crypto/asn1/asn1_par.c +444 -0
  269. data/third_party/boringssl/crypto/asn1/asn_pack.c +104 -0
  270. data/third_party/boringssl/crypto/asn1/bio_asn1.c +496 -0
  271. data/third_party/boringssl/crypto/asn1/bio_ndef.c +254 -0
  272. data/third_party/boringssl/crypto/asn1/f_enum.c +206 -0
  273. data/third_party/boringssl/crypto/asn1/f_int.c +210 -0
  274. data/third_party/boringssl/crypto/asn1/f_string.c +204 -0
  275. data/third_party/boringssl/crypto/asn1/t_bitst.c +102 -0
  276. data/third_party/boringssl/crypto/asn1/t_pkey.c +112 -0
  277. data/third_party/boringssl/crypto/asn1/tasn_dec.c +1342 -0
  278. data/third_party/boringssl/crypto/asn1/tasn_enc.c +695 -0
  279. data/third_party/boringssl/crypto/asn1/tasn_fre.c +264 -0
  280. data/third_party/boringssl/crypto/asn1/tasn_new.c +398 -0
  281. data/third_party/boringssl/crypto/asn1/tasn_prn.c +642 -0
  282. data/third_party/boringssl/crypto/asn1/tasn_typ.c +137 -0
  283. data/third_party/boringssl/crypto/asn1/tasn_utl.c +266 -0
  284. data/third_party/boringssl/crypto/asn1/x_bignum.c +143 -0
  285. data/third_party/boringssl/crypto/asn1/x_long.c +182 -0
  286. data/third_party/boringssl/crypto/base64/base64.c +478 -0
  287. data/third_party/boringssl/crypto/bio/bio.c +608 -0
  288. data/third_party/boringssl/crypto/bio/bio_mem.c +327 -0
  289. data/third_party/boringssl/crypto/bio/buffer.c +496 -0
  290. data/third_party/boringssl/crypto/bio/connect.c +544 -0
  291. data/third_party/boringssl/crypto/bio/fd.c +270 -0
  292. data/third_party/boringssl/crypto/bio/file.c +349 -0
  293. data/third_party/boringssl/crypto/bio/hexdump.c +192 -0
  294. data/third_party/boringssl/crypto/bio/internal.h +108 -0
  295. data/third_party/boringssl/crypto/bio/pair.c +803 -0
  296. data/third_party/boringssl/crypto/bio/printf.c +119 -0
  297. data/third_party/boringssl/crypto/bio/socket.c +195 -0
  298. data/third_party/boringssl/crypto/bio/socket_helper.c +113 -0
  299. data/third_party/boringssl/crypto/bn/add.c +377 -0
  300. data/third_party/boringssl/crypto/bn/asm/x86_64-gcc.c +599 -0
  301. data/third_party/boringssl/crypto/bn/bn.c +341 -0
  302. data/third_party/boringssl/crypto/bn/bn_asn1.c +93 -0
  303. data/third_party/boringssl/crypto/bn/cmp.c +200 -0
  304. data/third_party/boringssl/crypto/bn/convert.c +597 -0
  305. data/third_party/boringssl/crypto/bn/ctx.c +311 -0
  306. data/third_party/boringssl/crypto/bn/div.c +625 -0
  307. data/third_party/boringssl/crypto/bn/exponentiation.c +1544 -0
  308. data/third_party/boringssl/crypto/bn/gcd.c +711 -0
  309. data/third_party/boringssl/crypto/bn/generic.c +1019 -0
  310. data/third_party/boringssl/crypto/bn/internal.h +294 -0
  311. data/third_party/boringssl/crypto/bn/kronecker.c +175 -0
  312. data/third_party/boringssl/crypto/bn/montgomery.c +561 -0
  313. data/third_party/boringssl/crypto/bn/mul.c +888 -0
  314. data/third_party/boringssl/crypto/bn/prime.c +845 -0
  315. data/third_party/boringssl/crypto/bn/random.c +326 -0
  316. data/third_party/boringssl/crypto/bn/rsaz_exp.c +326 -0
  317. data/third_party/boringssl/crypto/bn/rsaz_exp.h +56 -0
  318. data/third_party/boringssl/crypto/bn/shift.c +299 -0
  319. data/third_party/boringssl/crypto/bn/sqrt.c +505 -0
  320. data/third_party/boringssl/crypto/buf/buf.c +235 -0
  321. data/third_party/boringssl/crypto/bytestring/ber.c +221 -0
  322. data/third_party/boringssl/crypto/bytestring/cbb.c +411 -0
  323. data/third_party/boringssl/crypto/bytestring/cbs.c +415 -0
  324. data/third_party/boringssl/crypto/bytestring/internal.h +46 -0
  325. data/third_party/boringssl/crypto/chacha/chacha_generic.c +140 -0
  326. data/third_party/boringssl/crypto/chacha/chacha_vec.c +323 -0
  327. data/third_party/boringssl/crypto/cipher/aead.c +167 -0
  328. data/third_party/boringssl/crypto/cipher/cipher.c +652 -0
  329. data/third_party/boringssl/crypto/cipher/derive_key.c +154 -0
  330. data/third_party/boringssl/crypto/cipher/e_aes.c +1767 -0
  331. data/third_party/boringssl/crypto/cipher/e_chacha20poly1305.c +311 -0
  332. data/third_party/boringssl/crypto/cipher/e_des.c +207 -0
  333. data/third_party/boringssl/crypto/cipher/e_null.c +85 -0
  334. data/third_party/boringssl/crypto/cipher/e_rc2.c +443 -0
  335. data/third_party/boringssl/crypto/cipher/e_rc4.c +87 -0
  336. data/third_party/boringssl/crypto/cipher/e_ssl3.c +463 -0
  337. data/third_party/boringssl/crypto/cipher/e_tls.c +673 -0
  338. data/third_party/boringssl/crypto/cipher/internal.h +164 -0
  339. data/third_party/boringssl/crypto/cipher/tls_cbc.c +495 -0
  340. data/third_party/boringssl/crypto/cmac/cmac.c +239 -0
  341. data/third_party/boringssl/crypto/conf/conf.c +778 -0
  342. data/third_party/boringssl/crypto/conf/conf_def.h +127 -0
  343. data/third_party/boringssl/crypto/conf/internal.h +31 -0
  344. data/third_party/boringssl/crypto/cpu-arm.c +199 -0
  345. data/third_party/boringssl/crypto/cpu-intel.c +261 -0
  346. data/third_party/boringssl/crypto/crypto.c +140 -0
  347. data/third_party/boringssl/crypto/curve25519/curve25519.c +4897 -0
  348. data/third_party/boringssl/crypto/des/des.c +771 -0
  349. data/third_party/boringssl/crypto/des/internal.h +212 -0
  350. data/third_party/boringssl/crypto/dh/check.c +180 -0
  351. data/third_party/boringssl/crypto/dh/dh.c +463 -0
  352. data/third_party/boringssl/crypto/dh/dh_asn1.c +84 -0
  353. data/third_party/boringssl/crypto/dh/internal.h +80 -0
  354. data/third_party/boringssl/crypto/dh/params.c +301 -0
  355. data/third_party/boringssl/crypto/digest/digest.c +248 -0
  356. data/third_party/boringssl/crypto/digest/digests.c +321 -0
  357. data/third_party/boringssl/crypto/digest/internal.h +112 -0
  358. data/third_party/boringssl/crypto/digest/md32_common.h +322 -0
  359. data/third_party/boringssl/crypto/directory.h +66 -0
  360. data/third_party/boringssl/crypto/directory_posix.c +108 -0
  361. data/third_party/boringssl/crypto/directory_win.c +144 -0
  362. data/third_party/boringssl/crypto/dsa/dsa.c +908 -0
  363. data/third_party/boringssl/crypto/dsa/dsa_asn1.c +150 -0
  364. data/third_party/boringssl/crypto/dsa/internal.h +78 -0
  365. data/third_party/boringssl/crypto/ec/ec.c +889 -0
  366. data/third_party/boringssl/crypto/ec/ec_asn1.c +586 -0
  367. data/third_party/boringssl/crypto/ec/ec_key.c +482 -0
  368. data/third_party/boringssl/crypto/ec/ec_montgomery.c +280 -0
  369. data/third_party/boringssl/crypto/ec/internal.h +318 -0
  370. data/third_party/boringssl/crypto/ec/oct.c +416 -0
  371. data/third_party/boringssl/crypto/ec/p224-64.c +1305 -0
  372. data/third_party/boringssl/crypto/ec/p256-64.c +1878 -0
  373. data/third_party/boringssl/crypto/ec/p256-x86_64-table.h +9548 -0
  374. data/third_party/boringssl/crypto/ec/p256-x86_64.c +596 -0
  375. data/third_party/boringssl/crypto/ec/simple.c +1313 -0
  376. data/third_party/boringssl/crypto/ec/util-64.c +183 -0
  377. data/third_party/boringssl/crypto/ec/wnaf.c +449 -0
  378. data/third_party/boringssl/crypto/ecdh/ecdh.c +153 -0
  379. data/third_party/boringssl/crypto/ecdsa/ecdsa.c +496 -0
  380. data/third_party/boringssl/crypto/ecdsa/ecdsa_asn1.c +240 -0
  381. data/third_party/boringssl/crypto/engine/engine.c +96 -0
  382. data/third_party/boringssl/crypto/err/err.c +756 -0
  383. data/third_party/boringssl/crypto/evp/algorithm.c +153 -0
  384. data/third_party/boringssl/crypto/evp/digestsign.c +159 -0
  385. data/third_party/boringssl/crypto/evp/evp.c +411 -0
  386. data/third_party/boringssl/crypto/evp/evp_asn1.c +179 -0
  387. data/third_party/boringssl/crypto/evp/evp_ctx.c +477 -0
  388. data/third_party/boringssl/crypto/evp/internal.h +278 -0
  389. data/third_party/boringssl/crypto/evp/p_dsa_asn1.c +588 -0
  390. data/third_party/boringssl/crypto/evp/p_ec.c +283 -0
  391. data/third_party/boringssl/crypto/evp/p_ec_asn1.c +562 -0
  392. data/third_party/boringssl/crypto/evp/p_rsa.c +596 -0
  393. data/third_party/boringssl/crypto/evp/p_rsa_asn1.c +737 -0
  394. data/third_party/boringssl/crypto/evp/pbkdf.c +151 -0
  395. data/third_party/boringssl/crypto/evp/sign.c +151 -0
  396. data/third_party/boringssl/crypto/ex_data.c +294 -0
  397. data/third_party/boringssl/crypto/hkdf/hkdf.c +89 -0
  398. data/third_party/boringssl/crypto/hmac/hmac.c +213 -0
  399. data/third_party/boringssl/crypto/internal.h +532 -0
  400. data/third_party/boringssl/crypto/lhash/lhash.c +346 -0
  401. data/third_party/boringssl/crypto/md4/md4.c +225 -0
  402. data/third_party/boringssl/crypto/md5/md5.c +275 -0
  403. data/third_party/boringssl/crypto/mem.c +200 -0
  404. data/third_party/boringssl/crypto/modes/cbc.c +216 -0
  405. data/third_party/boringssl/crypto/modes/cfb.c +231 -0
  406. data/third_party/boringssl/crypto/modes/ctr.c +226 -0
  407. data/third_party/boringssl/crypto/modes/gcm.c +1252 -0
  408. data/third_party/boringssl/crypto/modes/internal.h +370 -0
  409. data/third_party/boringssl/crypto/modes/ofb.c +108 -0
  410. data/third_party/boringssl/crypto/obj/obj.c +664 -0
  411. data/third_party/boringssl/crypto/obj/obj_dat.h +5257 -0
  412. data/third_party/boringssl/crypto/obj/obj_xref.c +124 -0
  413. data/third_party/boringssl/crypto/obj/obj_xref.h +96 -0
  414. data/third_party/boringssl/crypto/pem/pem_all.c +281 -0
  415. data/third_party/boringssl/crypto/pem/pem_info.c +404 -0
  416. data/third_party/boringssl/crypto/pem/pem_lib.c +835 -0
  417. data/third_party/boringssl/crypto/pem/pem_oth.c +89 -0
  418. data/third_party/boringssl/crypto/pem/pem_pk8.c +244 -0
  419. data/third_party/boringssl/crypto/pem/pem_pkey.c +312 -0
  420. data/third_party/boringssl/crypto/pem/pem_x509.c +65 -0
  421. data/third_party/boringssl/crypto/pem/pem_xaux.c +66 -0
  422. data/third_party/boringssl/crypto/pkcs8/internal.h +83 -0
  423. data/third_party/boringssl/crypto/pkcs8/p5_pbe.c +150 -0
  424. data/third_party/boringssl/crypto/pkcs8/p5_pbev2.c +440 -0
  425. data/third_party/boringssl/crypto/pkcs8/p8_pkey.c +85 -0
  426. data/third_party/boringssl/crypto/pkcs8/pkcs8.c +1217 -0
  427. data/third_party/boringssl/crypto/poly1305/poly1305.c +331 -0
  428. data/third_party/boringssl/crypto/poly1305/poly1305_arm.c +301 -0
  429. data/third_party/boringssl/crypto/poly1305/poly1305_vec.c +892 -0
  430. data/third_party/boringssl/crypto/rand/internal.h +32 -0
  431. data/third_party/boringssl/crypto/rand/rand.c +239 -0
  432. data/third_party/boringssl/crypto/rand/urandom.c +223 -0
  433. data/third_party/boringssl/crypto/rand/windows.c +56 -0
  434. data/third_party/boringssl/crypto/rc4/rc4.c +283 -0
  435. data/third_party/boringssl/crypto/refcount_c11.c +67 -0
  436. data/third_party/boringssl/crypto/refcount_lock.c +53 -0
  437. data/third_party/boringssl/crypto/rsa/blinding.c +462 -0
  438. data/third_party/boringssl/crypto/rsa/internal.h +164 -0
  439. data/third_party/boringssl/crypto/rsa/padding.c +711 -0
  440. data/third_party/boringssl/crypto/rsa/rsa.c +808 -0
  441. data/third_party/boringssl/crypto/rsa/rsa_asn1.c +473 -0
  442. data/third_party/boringssl/crypto/rsa/rsa_impl.c +1138 -0
  443. data/third_party/boringssl/crypto/sha/sha1.c +337 -0
  444. data/third_party/boringssl/crypto/sha/sha256.c +327 -0
  445. data/third_party/boringssl/crypto/sha/sha512.c +607 -0
  446. data/third_party/boringssl/crypto/stack/stack.c +386 -0
  447. data/third_party/boringssl/crypto/test/scoped_types.h +137 -0
  448. data/third_party/boringssl/crypto/test/test_util.h +35 -0
  449. data/third_party/boringssl/crypto/thread.c +101 -0
  450. data/third_party/boringssl/crypto/thread_none.c +55 -0
  451. data/third_party/boringssl/crypto/thread_pthread.c +167 -0
  452. data/third_party/boringssl/crypto/thread_win.c +282 -0
  453. data/third_party/boringssl/crypto/time_support.c +212 -0
  454. data/third_party/boringssl/crypto/x509/a_digest.c +97 -0
  455. data/third_party/boringssl/crypto/x509/a_sign.c +136 -0
  456. data/third_party/boringssl/crypto/x509/a_strex.c +564 -0
  457. data/third_party/boringssl/crypto/x509/a_verify.c +133 -0
  458. data/third_party/boringssl/crypto/x509/asn1_gen.c +873 -0
  459. data/third_party/boringssl/crypto/x509/by_dir.c +491 -0
  460. data/third_party/boringssl/crypto/x509/by_file.c +295 -0
  461. data/third_party/boringssl/crypto/x509/charmap.h +15 -0
  462. data/third_party/boringssl/crypto/x509/i2d_pr.c +84 -0
  463. data/third_party/boringssl/crypto/x509/pkcs7.c +353 -0
  464. data/third_party/boringssl/crypto/x509/t_crl.c +129 -0
  465. data/third_party/boringssl/crypto/x509/t_req.c +246 -0
  466. data/third_party/boringssl/crypto/x509/t_x509.c +500 -0
  467. data/third_party/boringssl/crypto/x509/t_x509a.c +109 -0
  468. data/third_party/boringssl/crypto/x509/vpm_int.h +70 -0
  469. data/third_party/boringssl/crypto/x509/x509.c +152 -0
  470. data/third_party/boringssl/crypto/x509/x509_att.c +353 -0
  471. data/third_party/boringssl/crypto/x509/x509_cmp.c +490 -0
  472. data/third_party/boringssl/crypto/x509/x509_d2.c +105 -0
  473. data/third_party/boringssl/crypto/x509/x509_def.c +88 -0
  474. data/third_party/boringssl/crypto/x509/x509_ext.c +206 -0
  475. data/third_party/boringssl/crypto/x509/x509_lu.c +738 -0
  476. data/third_party/boringssl/crypto/x509/x509_obj.c +191 -0
  477. data/third_party/boringssl/crypto/x509/x509_r2x.c +113 -0
  478. data/third_party/boringssl/crypto/x509/x509_req.c +315 -0
  479. data/third_party/boringssl/crypto/x509/x509_set.c +154 -0
  480. data/third_party/boringssl/crypto/x509/x509_trs.c +304 -0
  481. data/third_party/boringssl/crypto/x509/x509_txt.c +209 -0
  482. data/third_party/boringssl/crypto/x509/x509_v3.c +271 -0
  483. data/third_party/boringssl/crypto/x509/x509_vfy.c +2456 -0
  484. data/third_party/boringssl/crypto/x509/x509_vpm.c +672 -0
  485. data/third_party/boringssl/crypto/x509/x509cset.c +172 -0
  486. data/third_party/boringssl/crypto/x509/x509name.c +381 -0
  487. data/third_party/boringssl/crypto/x509/x509rset.c +80 -0
  488. data/third_party/boringssl/crypto/x509/x509spki.c +135 -0
  489. data/third_party/boringssl/crypto/x509/x509type.c +128 -0
  490. data/third_party/boringssl/crypto/x509/x_algor.c +154 -0
  491. data/third_party/boringssl/crypto/x509/x_all.c +547 -0
  492. data/third_party/boringssl/crypto/x509/x_attrib.c +117 -0
  493. data/third_party/boringssl/crypto/x509/x_crl.c +560 -0
  494. data/third_party/boringssl/crypto/x509/x_exten.c +75 -0
  495. data/third_party/boringssl/crypto/x509/x_info.c +95 -0
  496. data/third_party/boringssl/crypto/x509/x_name.c +538 -0
  497. data/third_party/boringssl/crypto/x509/x_pkey.c +100 -0
  498. data/third_party/boringssl/crypto/x509/x_pubkey.c +384 -0
  499. data/third_party/boringssl/crypto/x509/x_req.c +112 -0
  500. data/third_party/boringssl/crypto/x509/x_sig.c +69 -0
  501. data/third_party/boringssl/crypto/x509/x_spki.c +78 -0
  502. data/third_party/boringssl/crypto/x509/x_val.c +69 -0
  503. data/third_party/boringssl/crypto/x509/x_x509.c +227 -0
  504. data/third_party/boringssl/crypto/x509/x_x509a.c +197 -0
  505. data/third_party/boringssl/crypto/x509v3/ext_dat.h +129 -0
  506. data/third_party/boringssl/crypto/x509v3/pcy_cache.c +299 -0
  507. data/third_party/boringssl/crypto/x509v3/pcy_data.c +137 -0
  508. data/third_party/boringssl/crypto/x509v3/pcy_int.h +212 -0
  509. data/third_party/boringssl/crypto/x509v3/pcy_lib.c +165 -0
  510. data/third_party/boringssl/crypto/x509v3/pcy_map.c +133 -0
  511. data/third_party/boringssl/crypto/x509v3/pcy_node.c +197 -0
  512. data/third_party/boringssl/crypto/x509v3/pcy_tree.c +876 -0
  513. data/third_party/boringssl/crypto/x509v3/v3_akey.c +212 -0
  514. data/third_party/boringssl/crypto/x509v3/v3_akeya.c +71 -0
  515. data/third_party/boringssl/crypto/x509v3/v3_alt.c +622 -0
  516. data/third_party/boringssl/crypto/x509v3/v3_bcons.c +126 -0
  517. data/third_party/boringssl/crypto/x509v3/v3_bitst.c +141 -0
  518. data/third_party/boringssl/crypto/x509v3/v3_conf.c +459 -0
  519. data/third_party/boringssl/crypto/x509v3/v3_cpols.c +475 -0
  520. data/third_party/boringssl/crypto/x509v3/v3_crld.c +616 -0
  521. data/third_party/boringssl/crypto/x509v3/v3_enum.c +98 -0
  522. data/third_party/boringssl/crypto/x509v3/v3_extku.c +145 -0
  523. data/third_party/boringssl/crypto/x509v3/v3_genn.c +252 -0
  524. data/third_party/boringssl/crypto/x509v3/v3_ia5.c +117 -0
  525. data/third_party/boringssl/crypto/x509v3/v3_info.c +200 -0
  526. data/third_party/boringssl/crypto/x509v3/v3_int.c +87 -0
  527. data/third_party/boringssl/crypto/x509v3/v3_lib.c +335 -0
  528. data/third_party/boringssl/crypto/x509v3/v3_ncons.c +510 -0
  529. data/third_party/boringssl/crypto/x509v3/v3_pci.c +335 -0
  530. data/third_party/boringssl/crypto/x509v3/v3_pcia.c +56 -0
  531. data/third_party/boringssl/crypto/x509v3/v3_pcons.c +142 -0
  532. data/third_party/boringssl/crypto/x509v3/v3_pku.c +109 -0
  533. data/third_party/boringssl/crypto/x509v3/v3_pmaps.c +156 -0
  534. data/third_party/boringssl/crypto/x509v3/v3_prn.c +207 -0
  535. data/third_party/boringssl/crypto/x509v3/v3_purp.c +805 -0
  536. data/third_party/boringssl/crypto/x509v3/v3_skey.c +148 -0
  537. data/third_party/boringssl/crypto/x509v3/v3_sxnet.c +266 -0
  538. data/third_party/boringssl/crypto/x509v3/v3_utl.c +1322 -0
  539. data/third_party/boringssl/include/openssl/aead.h +346 -0
  540. data/third_party/boringssl/include/openssl/aes.h +158 -0
  541. data/third_party/boringssl/include/openssl/arm_arch.h +127 -0
  542. data/third_party/boringssl/include/openssl/asn1.h +1168 -0
  543. data/third_party/boringssl/include/openssl/asn1_mac.h +75 -0
  544. data/third_party/boringssl/include/openssl/asn1t.h +906 -0
  545. data/third_party/boringssl/include/openssl/base.h +261 -0
  546. data/third_party/boringssl/include/openssl/base64.h +184 -0
  547. data/third_party/boringssl/include/openssl/bio.h +902 -0
  548. data/third_party/boringssl/include/openssl/blowfish.h +93 -0
  549. data/third_party/boringssl/include/openssl/bn.h +885 -0
  550. data/third_party/boringssl/include/openssl/buf.h +118 -0
  551. data/third_party/boringssl/include/openssl/buffer.h +18 -0
  552. data/third_party/boringssl/include/openssl/bytestring.h +360 -0
  553. data/third_party/boringssl/include/openssl/cast.h +96 -0
  554. data/third_party/boringssl/include/openssl/chacha.h +37 -0
  555. data/third_party/boringssl/include/openssl/cipher.h +571 -0
  556. data/third_party/boringssl/include/openssl/cmac.h +76 -0
  557. data/third_party/boringssl/include/openssl/conf.h +145 -0
  558. data/third_party/boringssl/include/openssl/cpu.h +184 -0
  559. data/third_party/boringssl/include/openssl/crypto.h +68 -0
  560. data/third_party/boringssl/include/openssl/curve25519.h +88 -0
  561. data/third_party/boringssl/include/openssl/des.h +177 -0
  562. data/third_party/boringssl/include/openssl/dh.h +238 -0
  563. data/third_party/boringssl/include/openssl/digest.h +258 -0
  564. data/third_party/boringssl/include/openssl/dsa.h +343 -0
  565. data/third_party/boringssl/include/openssl/dtls1.h +16 -0
  566. data/third_party/boringssl/include/openssl/ec.h +355 -0
  567. data/third_party/boringssl/include/openssl/ec_key.h +280 -0
  568. data/third_party/boringssl/include/openssl/ecdh.h +102 -0
  569. data/third_party/boringssl/include/openssl/ecdsa.h +206 -0
  570. data/third_party/boringssl/include/openssl/engine.h +98 -0
  571. data/third_party/boringssl/include/openssl/err.h +487 -0
  572. data/third_party/boringssl/include/openssl/evp.h +750 -0
  573. data/third_party/boringssl/include/openssl/ex_data.h +213 -0
  574. data/third_party/boringssl/include/openssl/hkdf.h +44 -0
  575. data/third_party/boringssl/include/openssl/hmac.h +160 -0
  576. data/third_party/boringssl/include/openssl/lhash.h +192 -0
  577. data/third_party/boringssl/include/openssl/lhash_macros.h +132 -0
  578. data/third_party/boringssl/include/openssl/md4.h +102 -0
  579. data/third_party/boringssl/include/openssl/md5.h +107 -0
  580. data/third_party/boringssl/include/openssl/mem.h +140 -0
  581. data/third_party/boringssl/include/openssl/obj.h +198 -0
  582. data/third_party/boringssl/include/openssl/obj_mac.h +4140 -0
  583. data/third_party/boringssl/include/openssl/objects.h +18 -0
  584. data/third_party/boringssl/include/openssl/opensslfeatures.h +60 -0
  585. data/third_party/boringssl/include/openssl/opensslv.h +18 -0
  586. data/third_party/boringssl/include/openssl/ossl_typ.h +18 -0
  587. data/third_party/boringssl/include/openssl/pem.h +521 -0
  588. data/third_party/boringssl/include/openssl/pkcs12.h +18 -0
  589. data/third_party/boringssl/include/openssl/pkcs7.h +16 -0
  590. data/third_party/boringssl/include/openssl/pkcs8.h +220 -0
  591. data/third_party/boringssl/include/openssl/poly1305.h +51 -0
  592. data/third_party/boringssl/include/openssl/pqueue.h +146 -0
  593. data/third_party/boringssl/include/openssl/rand.h +113 -0
  594. data/third_party/boringssl/include/openssl/rc4.h +90 -0
  595. data/third_party/boringssl/include/openssl/rsa.h +637 -0
  596. data/third_party/boringssl/include/openssl/safestack.h +16 -0
  597. data/third_party/boringssl/include/openssl/sha.h +256 -0
  598. data/third_party/boringssl/include/openssl/srtp.h +18 -0
  599. data/third_party/boringssl/include/openssl/ssl.h +4466 -0
  600. data/third_party/boringssl/include/openssl/ssl3.h +441 -0
  601. data/third_party/boringssl/include/openssl/stack.h +298 -0
  602. data/third_party/boringssl/include/openssl/stack_macros.h +4190 -0
  603. data/third_party/boringssl/include/openssl/thread.h +173 -0
  604. data/third_party/boringssl/include/openssl/time_support.h +90 -0
  605. data/third_party/boringssl/include/openssl/tls1.h +653 -0
  606. data/third_party/boringssl/include/openssl/type_check.h +91 -0
  607. data/third_party/boringssl/include/openssl/x509.h +1258 -0
  608. data/third_party/boringssl/include/openssl/x509_vfy.h +611 -0
  609. data/third_party/boringssl/include/openssl/x509v3.h +798 -0
  610. data/third_party/boringssl/ssl/custom_extensions.c +257 -0
  611. data/third_party/boringssl/ssl/d1_both.c +880 -0
  612. data/third_party/boringssl/ssl/d1_clnt.c +566 -0
  613. data/third_party/boringssl/ssl/d1_lib.c +340 -0
  614. data/third_party/boringssl/ssl/d1_meth.c +130 -0
  615. data/third_party/boringssl/ssl/d1_pkt.c +578 -0
  616. data/third_party/boringssl/ssl/d1_srtp.c +234 -0
  617. data/third_party/boringssl/ssl/d1_srvr.c +485 -0
  618. data/third_party/boringssl/ssl/dtls_record.c +308 -0
  619. data/third_party/boringssl/ssl/internal.h +1276 -0
  620. data/third_party/boringssl/ssl/pqueue/pqueue.c +197 -0
  621. data/third_party/boringssl/ssl/s3_both.c +571 -0
  622. data/third_party/boringssl/ssl/s3_clnt.c +2241 -0
  623. data/third_party/boringssl/ssl/s3_enc.c +494 -0
  624. data/third_party/boringssl/ssl/s3_lib.c +587 -0
  625. data/third_party/boringssl/ssl/s3_meth.c +166 -0
  626. data/third_party/boringssl/ssl/s3_pkt.c +732 -0
  627. data/third_party/boringssl/ssl/s3_srvr.c +2536 -0
  628. data/third_party/boringssl/ssl/ssl_aead_ctx.c +300 -0
  629. data/third_party/boringssl/ssl/ssl_asn1.c +718 -0
  630. data/third_party/boringssl/ssl/ssl_buffer.c +319 -0
  631. data/third_party/boringssl/ssl/ssl_cert.c +539 -0
  632. data/third_party/boringssl/ssl/ssl_cipher.c +2003 -0
  633. data/third_party/boringssl/ssl/ssl_file.c +633 -0
  634. data/third_party/boringssl/ssl/ssl_lib.c +2653 -0
  635. data/third_party/boringssl/ssl/ssl_rsa.c +423 -0
  636. data/third_party/boringssl/ssl/ssl_session.c +764 -0
  637. data/third_party/boringssl/ssl/ssl_stat.c +591 -0
  638. data/third_party/boringssl/ssl/t1_enc.c +708 -0
  639. data/third_party/boringssl/ssl/t1_lib.c +2905 -0
  640. data/third_party/boringssl/ssl/test/async_bio.h +45 -0
  641. data/third_party/boringssl/ssl/test/packeted_bio.h +44 -0
  642. data/third_party/boringssl/ssl/test/scoped_types.h +28 -0
  643. data/third_party/boringssl/ssl/test/test_config.h +108 -0
  644. data/third_party/boringssl/ssl/tls_record.c +342 -0
  645. data/third_party/zlib/adler32.c +179 -0
  646. data/third_party/zlib/compress.c +80 -0
  647. data/third_party/zlib/crc32.c +425 -0
  648. data/third_party/zlib/crc32.h +441 -0
  649. data/third_party/zlib/deflate.c +1967 -0
  650. data/third_party/zlib/deflate.h +346 -0
  651. data/third_party/zlib/gzclose.c +25 -0
  652. data/third_party/zlib/gzguts.h +209 -0
  653. data/third_party/zlib/gzlib.c +634 -0
  654. data/third_party/zlib/gzread.c +594 -0
  655. data/third_party/zlib/gzwrite.c +577 -0
  656. data/third_party/zlib/infback.c +640 -0
  657. data/third_party/zlib/inffast.c +340 -0
  658. data/third_party/zlib/inffast.h +11 -0
  659. data/third_party/zlib/inffixed.h +94 -0
  660. data/third_party/zlib/inflate.c +1512 -0
  661. data/third_party/zlib/inflate.h +122 -0
  662. data/third_party/zlib/inftrees.c +306 -0
  663. data/third_party/zlib/inftrees.h +62 -0
  664. data/third_party/zlib/trees.c +1226 -0
  665. data/third_party/zlib/trees.h +128 -0
  666. data/third_party/zlib/uncompr.c +59 -0
  667. data/third_party/zlib/zconf.h +511 -0
  668. data/third_party/zlib/zlib.h +1768 -0
  669. data/third_party/zlib/zutil.c +324 -0
  670. data/third_party/zlib/zutil.h +253 -0
  671. metadata +492 -25
  672. data/Rakefile +0 -63
  673. data/src/ruby/lib/grpc/grpc.so +0 -0
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  *
3
- * Copyright 2015, Google Inc.
3
+ * Copyright 2015-2016, Google Inc.
4
4
  * All rights reserved.
5
5
  *
6
6
  * Redistribution and use in source and binary forms, with or without
@@ -34,87 +34,6 @@
34
34
  #ifndef GRPC_BYTE_BUFFER_H
35
35
  #define GRPC_BYTE_BUFFER_H
36
36
 
37
- #include <grpc/compression.h>
38
- #include <grpc/support/slice_buffer.h>
39
-
40
- #ifdef __cplusplus
41
- extern "C" {
42
- #endif
43
-
44
- typedef enum {
45
- GRPC_BB_RAW
46
- /* Future types may include GRPC_BB_PROTOBUF, etc. */
47
- } grpc_byte_buffer_type;
48
-
49
- struct grpc_byte_buffer {
50
- void *reserved;
51
- grpc_byte_buffer_type type;
52
- union {
53
- struct {
54
- void *reserved[8];
55
- } reserved;
56
- struct {
57
- grpc_compression_algorithm compression;
58
- gpr_slice_buffer slice_buffer;
59
- } raw;
60
- } data;
61
- };
62
- typedef struct grpc_byte_buffer grpc_byte_buffer;
63
-
64
- /** Returns a RAW byte buffer instance over the given slices (up to \a nslices).
65
- *
66
- * Increases the reference count for all \a slices processed. The user is
67
- * responsible for invoking grpc_byte_buffer_destroy on the returned instance.*/
68
- grpc_byte_buffer *grpc_raw_byte_buffer_create(gpr_slice *slices,
69
- size_t nslices);
70
-
71
- /** Returns a *compressed* RAW byte buffer instance over the given slices (up to
72
- * \a nslices). The \a compression argument defines the compression algorithm
73
- * used to generate the data in \a slices.
74
- *
75
- * Increases the reference count for all \a slices processed. The user is
76
- * responsible for invoking grpc_byte_buffer_destroy on the returned instance.*/
77
- grpc_byte_buffer *grpc_raw_compressed_byte_buffer_create(
78
- gpr_slice *slices, size_t nslices, grpc_compression_algorithm compression);
79
-
80
- /** Copies input byte buffer \a bb.
81
- *
82
- * Increases the reference count of all the source slices. The user is
83
- * responsible for calling grpc_byte_buffer_destroy over the returned copy. */
84
- grpc_byte_buffer *grpc_byte_buffer_copy(grpc_byte_buffer *bb);
85
-
86
- /** Returns the size of the given byte buffer, in bytes. */
87
- size_t grpc_byte_buffer_length(grpc_byte_buffer *bb);
88
-
89
- /** Destroys \a byte_buffer deallocating all its memory. */
90
- void grpc_byte_buffer_destroy(grpc_byte_buffer *byte_buffer);
91
-
92
- /** Reader for byte buffers. Iterates over slices in the byte buffer */
93
- struct grpc_byte_buffer_reader;
94
- typedef struct grpc_byte_buffer_reader grpc_byte_buffer_reader;
95
-
96
- /** Initialize \a reader to read over \a buffer */
97
- void grpc_byte_buffer_reader_init(grpc_byte_buffer_reader *reader,
98
- grpc_byte_buffer *buffer);
99
-
100
- /** Cleanup and destroy \a reader */
101
- void grpc_byte_buffer_reader_destroy(grpc_byte_buffer_reader *reader);
102
-
103
- /** Updates \a slice with the next piece of data from from \a reader and returns
104
- * 1. Returns 0 at the end of the stream. Caller is responsible for calling
105
- * gpr_slice_unref on the result. */
106
- int grpc_byte_buffer_reader_next(grpc_byte_buffer_reader *reader,
107
- gpr_slice *slice);
108
-
109
- /** Merge all data from \a reader into single slice */
110
- gpr_slice grpc_byte_buffer_reader_readall(grpc_byte_buffer_reader *reader);
111
-
112
- /** Returns a RAW byte buffer instance from the output of \a reader. */
113
- grpc_byte_buffer *grpc_raw_byte_buffer_from_reader(
114
- grpc_byte_buffer_reader *reader);
115
-
116
- #ifdef __cplusplus
117
- }
118
- #endif
37
+ #include <grpc/impl/codegen/byte_buffer.h>
119
38
 
120
39
  #endif /* GRPC_BYTE_BUFFER_H */
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  *
3
- * Copyright 2015, Google Inc.
3
+ * Copyright 2015-2016, Google Inc.
4
4
  * All rights reserved.
5
5
  *
6
6
  * Redistribution and use in source and binary forms, with or without
@@ -59,39 +59,159 @@ enum census_features {
59
59
  * census_initialize() will return a non-zero value. It is an error to call
60
60
  * census_initialize() more than once (without an intervening
61
61
  * census_shutdown()). */
62
- int census_initialize(int features);
63
- void census_shutdown(void);
62
+ CENSUS_API int census_initialize(int features);
63
+ CENSUS_API void census_shutdown(void);
64
64
 
65
65
  /** Return the features supported by the current census implementation (not all
66
66
  * features will be available on all platforms). */
67
- int census_supported(void);
67
+ CENSUS_API int census_supported(void);
68
68
 
69
69
  /** Return the census features currently enabled. */
70
- int census_enabled(void);
70
+ CENSUS_API int census_enabled(void);
71
71
 
72
72
  /**
73
- Context is a handle used by census to represent the current tracing and
74
- tagging information. Contexts should be propagated across RPC's. Contexts
75
- are created by any of the census_start_*_op() functions. A context is
76
- typically used as argument to most census functions. Conceptually, contexts
77
- should be thought of as specific to single RPC/thread. The context can be
78
- serialized for passing across the wire, via census_context_serialize().
79
- */
73
+ A Census Context is a handle used by Census to represent the current tracing
74
+ and stats collection information. Contexts should be propagated across RPC's
75
+ (this is the responsibility of the local RPC system). A context is typically
76
+ used as the first argument to most census functions. Conceptually, they
77
+ should be thought of as specific to a single RPC/thread. The user visible
78
+ context representation is that of a collection of key:value string pairs,
79
+ each of which is termed a 'tag'; these form the basis against which Census
80
+ metrics will be recorded. Keys are unique within a context. */
80
81
  typedef struct census_context census_context;
81
82
 
82
- /* This function is called by the RPC subsystem whenever it needs to get a
83
- * serialized form of the current census context (presumably to pass across
84
- * the wire). Arguments:
85
- * 'buffer': pointer to memory into which serialized context will be placed
86
- * 'buf_size': size of 'buffer'
87
- *
88
- * Returns: the number of bytes used in buffer if successful, or 0 if the
89
- * buffer is of insufficient size.
90
- *
91
- * TODO(aveitch): determine how best to communicate required/max buffer size
92
- * so caller doesn't have to guess. */
93
- size_t census_context_serialize(const census_context *context, char *buffer,
94
- size_t buf_size);
83
+ /* A tag is a key:value pair. The key is a non-empty, printable (UTF-8
84
+ encoded), nil-terminated string. The value is a binary string, that may be
85
+ printable. There are limits on the sizes of both keys and values (see
86
+ CENSUS_MAX_TAG_KB_LEN definition below), and the number of tags that can be
87
+ propagated (CENSUS_MAX_PROPAGATED_TAGS). Users should also remember that
88
+ some systems may have limits on, e.g., the number of bytes that can be
89
+ transmitted as metadata, and that larger tags means more memory consumed
90
+ and time in processing. */
91
+ typedef struct {
92
+ const char *key;
93
+ const char *value;
94
+ size_t value_len;
95
+ uint8_t flags;
96
+ } census_tag;
97
+
98
+ /* Maximum length of a tag's key or value. */
99
+ #define CENSUS_MAX_TAG_KV_LEN 255
100
+ /* Maximum number of propagatable tags. */
101
+ #define CENSUS_MAX_PROPAGATED_TAGS 255
102
+
103
+ /* Tag flags. */
104
+ #define CENSUS_TAG_PROPAGATE 1 /* Tag should be propagated over RPC */
105
+ #define CENSUS_TAG_STATS 2 /* Tag will be used for statistics aggregation */
106
+ #define CENSUS_TAG_BINARY 4 /* Tag value is not printable */
107
+ #define CENSUS_TAG_RESERVED 8 /* Reserved for internal use. */
108
+ /* Flag values 8,16,32,64,128 are reserved for future/internal use. Clients
109
+ should not use or rely on their values. */
110
+
111
+ #define CENSUS_TAG_IS_PROPAGATED(flags) (flags & CENSUS_TAG_PROPAGATE)
112
+ #define CENSUS_TAG_IS_STATS(flags) (flags & CENSUS_TAG_STATS)
113
+ #define CENSUS_TAG_IS_BINARY(flags) (flags & CENSUS_TAG_BINARY)
114
+
115
+ /* An instance of this structure is kept by every context, and records the
116
+ basic information associated with the creation of that context. */
117
+ typedef struct {
118
+ int n_propagated_tags; /* number of propagated printable tags */
119
+ int n_propagated_binary_tags; /* number of propagated binary tags */
120
+ int n_local_tags; /* number of non-propagated (local) tags */
121
+ int n_deleted_tags; /* number of tags that were deleted */
122
+ int n_added_tags; /* number of tags that were added */
123
+ int n_modified_tags; /* number of tags that were modified */
124
+ int n_invalid_tags; /* number of tags with bad keys or values (e.g.
125
+ longer than CENSUS_MAX_TAG_KV_LEN) */
126
+ int n_ignored_tags; /* number of tags ignored because of
127
+ CENSUS_MAX_PROPAGATED_TAGS limit. */
128
+ } census_context_status;
129
+
130
+ /* Create a new context, adding and removing tags from an existing context.
131
+ This will copy all tags from the 'tags' input, so it is recommended
132
+ to add as many tags in a single operation as is practical for the client.
133
+ @param base Base context to build upon. Can be NULL.
134
+ @param tags A set of tags to be added/changed/deleted. Tags with keys that
135
+ are in 'tags', but not 'base', are added to the tag set. Keys that are in
136
+ both 'tags' and 'base' will have their value/flags modified. Tags with keys
137
+ in both, but with NULL or zero-length values, will be deleted from the tag
138
+ set. Tags with invalid (too long or short) keys or values will be ignored.
139
+ If adding a tag will result in more than CENSUS_MAX_PROPAGATED_TAGS in either
140
+ binary or non-binary tags, they will be ignored, as will deletions of
141
+ tags that don't exist.
142
+ @param ntags number of tags in 'tags'
143
+ @param status If not NULL, will return a pointer to a census_context_status
144
+ structure containing information about the new context and status of the
145
+ tags used in its creation.
146
+ @return A new, valid census_context.
147
+ */
148
+ CENSUS_API census_context *census_context_create(
149
+ const census_context *base, const census_tag *tags, int ntags,
150
+ census_context_status const **status);
151
+
152
+ /* Destroy a context. Once this function has been called, the context cannot
153
+ be reused. */
154
+ CENSUS_API void census_context_destroy(census_context *context);
155
+
156
+ /* Get a pointer to the original status from the context creation. */
157
+ CENSUS_API const census_context_status *census_context_get_status(
158
+ const census_context *context);
159
+
160
+ /* Structure used for iterating over the tegs in a context. API clients should
161
+ not use or reference internal fields - neither their contents or
162
+ presence/absence are guaranteed. */
163
+ typedef struct {
164
+ const census_context *context;
165
+ int base;
166
+ int index;
167
+ char *kvm;
168
+ } census_context_iterator;
169
+
170
+ /* Initialize a census_tag_iterator. Must be called before first use. */
171
+ CENSUS_API void census_context_initialize_iterator(
172
+ const census_context *context, census_context_iterator *iterator);
173
+
174
+ /* Get the contents of the "next" tag in the context. If there are no more
175
+ tags, returns 0 (and 'tag' contents will be unchanged), otherwise returns 1.
176
+ */
177
+ CENSUS_API int census_context_next_tag(census_context_iterator *iterator,
178
+ census_tag *tag);
179
+
180
+ /* Get a context tag by key. Returns 0 if the key is not present. */
181
+ CENSUS_API int census_context_get_tag(const census_context *context,
182
+ const char *key, census_tag *tag);
183
+
184
+ /* Tag set encode/decode functionality. These functionas are intended
185
+ for use by RPC systems only, for purposes of transmitting/receiving contexts.
186
+ */
187
+
188
+ /* Encode a context into a buffer. The propagated tags are encoded into the
189
+ buffer in two regions: one for printable tags, and one for binary tags.
190
+ @param context context to be encoded
191
+ @param buffer pointer to buffer. This address will be used to encode the
192
+ printable tags.
193
+ @param buf_size number of available bytes in buffer.
194
+ @param print_buf_size Will be set to the number of bytes consumed by
195
+ printable tags.
196
+ @param bin_buf_size Will be set to the number of bytes used to encode the
197
+ binary tags.
198
+ @return A pointer to the binary tag's encoded, or NULL if the buffer was
199
+ insufficiently large to hold the encoded tags. Thus, if successful,
200
+ printable tags are encoded into
201
+ [buffer, buffer + *print_buf_size) and binary tags into
202
+ [returned-ptr, returned-ptr + *bin_buf_size) (and the returned
203
+ pointer should be buffer + *print_buf_size) */
204
+ CENSUS_API char *census_context_encode(const census_context *context,
205
+ char *buffer, size_t buf_size,
206
+ size_t *print_buf_size,
207
+ size_t *bin_buf_size);
208
+
209
+ /* Decode context buffers encoded with census_context_encode(). Returns NULL
210
+ if there is an error in parsing either buffer. */
211
+ CENSUS_API census_context *census_context_decode(const char *buffer,
212
+ size_t size,
213
+ const char *bin_buffer,
214
+ size_t bin_size);
95
215
 
96
216
  /* Distributed traces can have a number of options. */
97
217
  enum census_trace_mask_values {
@@ -101,10 +221,10 @@ enum census_trace_mask_values {
101
221
 
102
222
  /** Get the current trace mask associated with this context. The value returned
103
223
  will be the logical or of census_trace_mask_values values. */
104
- int census_trace_mask(const census_context *context);
224
+ CENSUS_API int census_trace_mask(const census_context *context);
105
225
 
106
226
  /** Set the trace mask associated with a context. */
107
- void census_set_trace_mask(int trace_mask);
227
+ CENSUS_API void census_set_trace_mask(int trace_mask);
108
228
 
109
229
  /* The concept of "operation" is a fundamental concept for Census. In an RPC
110
230
  system, and operation typcially represents a single RPC, or a significant
@@ -152,7 +272,7 @@ typedef struct {
152
272
 
153
273
  @return A timestamp representing the operation start time.
154
274
  */
155
- census_timestamp census_start_rpc_op_timestamp(void);
275
+ CENSUS_API census_timestamp census_start_rpc_op_timestamp(void);
156
276
 
157
277
  /**
158
278
  Represent functions to map RPC name ID to service/method names. Census
@@ -166,8 +286,8 @@ census_timestamp census_start_rpc_op_timestamp(void);
166
286
  functions, maybe it should be set once at census initialization.
167
287
  */
168
288
  typedef struct {
169
- const char *(*get_rpc_service_name)(gpr_int64 id);
170
- const char *(*get_rpc_method_name)(gpr_int64 id);
289
+ const char *(*get_rpc_service_name)(int64_t id);
290
+ const char *(*get_rpc_method_name)(int64_t id);
171
291
  } census_rpc_name_info;
172
292
 
173
293
  /**
@@ -204,15 +324,16 @@ typedef struct {
204
324
 
205
325
  @return A new census context.
206
326
  */
207
- census_context *census_start_client_rpc_op(
208
- const census_context *context, gpr_int64 rpc_name_id,
327
+ CENSUS_API census_context *census_start_client_rpc_op(
328
+ const census_context *context, int64_t rpc_name_id,
209
329
  const census_rpc_name_info *rpc_name_info, const char *peer, int trace_mask,
210
330
  const census_timestamp *start_time);
211
331
 
212
332
  /**
213
333
  Add peer information to a context representing a client RPC operation.
214
334
  */
215
- void census_set_rpc_client_peer(census_context *context, const char *peer);
335
+ CENSUS_API void census_set_rpc_client_peer(census_context *context,
336
+ const char *peer);
216
337
 
217
338
  /**
218
339
  Start a server RPC operation. Returns a new context to be used in future
@@ -232,8 +353,8 @@ void census_set_rpc_client_peer(census_context *context, const char *peer);
232
353
 
233
354
  @return A new census context.
234
355
  */
235
- census_context *census_start_server_rpc_op(
236
- const char *buffer, gpr_int64 rpc_name_id,
356
+ CENSUS_API census_context *census_start_server_rpc_op(
357
+ const char *buffer, int64_t rpc_name_id,
237
358
  const census_rpc_name_info *rpc_name_info, const char *peer, int trace_mask,
238
359
  census_timestamp *start_time);
239
360
 
@@ -262,8 +383,9 @@ census_context *census_start_server_rpc_op(
262
383
 
263
384
  @return A new census context.
264
385
  */
265
- census_context *census_start_op(census_context *context, const char *family,
266
- const char *name, int trace_mask);
386
+ CENSUS_API census_context *census_start_op(census_context *context,
387
+ const char *family, const char *name,
388
+ int trace_mask);
267
389
 
268
390
  /**
269
391
  End an operation started by any of the census_start_*_op*() calls. The
@@ -274,10 +396,10 @@ census_context *census_start_op(census_context *context, const char *family,
274
396
  @param status status associated with the operation. Not interpreted by
275
397
  census.
276
398
  */
277
- void census_end_op(census_context *context, int status);
399
+ CENSUS_API void census_end_op(census_context *context, int status);
278
400
 
279
- #define CENSUS_TRACE_RECORD_START_OP ((gpr_uint32)0)
280
- #define CENSUS_TRACE_RECORD_END_OP ((gpr_uint32)1)
401
+ #define CENSUS_TRACE_RECORD_START_OP ((uint32_t)0)
402
+ #define CENSUS_TRACE_RECORD_END_OP ((uint32_t)1)
281
403
 
282
404
  /** Insert a trace record into the trace stream. The record consists of an
283
405
  arbitrary size buffer, the size of which is provided in 'n'.
@@ -286,15 +408,15 @@ void census_end_op(census_context *context, int status);
286
408
  @param buffer Pointer to buffer to use
287
409
  @param n Number of bytes in buffer
288
410
  */
289
- void census_trace_print(census_context *context, gpr_uint32 type,
290
- const char *buffer, size_t n);
411
+ CENSUS_API void census_trace_print(census_context *context, uint32_t type,
412
+ const char *buffer, size_t n);
291
413
 
292
414
  /** Trace record. */
293
415
  typedef struct {
294
416
  census_timestamp timestamp; /* Time of record creation */
295
- gpr_uint64 trace_id; /* Trace ID associated with record */
296
- gpr_uint64 op_id; /* Operation ID associated with record */
297
- gpr_uint32 type; /* Type (as used in census_trace_print() */
417
+ uint64_t trace_id; /* Trace ID associated with record */
418
+ uint64_t op_id; /* Operation ID associated with record */
419
+ uint32_t type; /* Type (as used in census_trace_print() */
298
420
  const char *buffer; /* Buffer (from census_trace_print() */
299
421
  size_t buf_size; /* Number of bytes inside buffer */
300
422
  } census_trace_record;
@@ -308,7 +430,7 @@ typedef struct {
308
430
  while scanning is ongoing.
309
431
  @returns 0 on success, non-zero on failure (e.g. if a scan is already ongoing)
310
432
  */
311
- int census_trace_scan_start(int consume);
433
+ CENSUS_API int census_trace_scan_start(int consume);
312
434
 
313
435
  /** Get a trace record. The data pointed to by the trace buffer is guaranteed
314
436
  stable until the next census_get_trace_record() call (if the consume
@@ -319,65 +441,10 @@ int census_trace_scan_start(int consume);
319
441
  census_trace_scan_start()), 0 if there is no more trace data (and
320
442
  trace_record will not be modified) or 1 otherwise.
321
443
  */
322
- int census_get_trace_record(census_trace_record *trace_record);
444
+ CENSUS_API int census_get_trace_record(census_trace_record *trace_record);
323
445
 
324
446
  /** End a scan previously started by census_trace_scan_start() */
325
- void census_trace_scan_end();
326
-
327
- /* Max number of characters in tag key */
328
- #define CENSUS_MAX_TAG_KEY_LENGTH 20
329
- /* Max number of tag value characters */
330
- #define CENSUS_MAX_TAG_VALUE_LENGTH 50
331
-
332
- /* A Census tag set is a collection of key:value string pairs; these form the
333
- basis against which Census metrics will be recorded. Keys are unique within
334
- a tag set. All contexts have an associated tag set. */
335
- typedef struct census_tag_set census_tag_set;
336
-
337
- /* Returns a pointer to a newly created, empty tag set. If size_hint > 0,
338
- indicates that the tag set is intended to hold approximately that number
339
- of tags. */
340
- census_tag_set *census_tag_set_create(size_t size_hint);
341
-
342
- /* Add a new tag key/value to an existing tag set; if the tag key already exists
343
- in the tag set, then its value is overwritten with the new one. Can also be
344
- used to delete a tag, by specifying a NULL value. If key is NULL, returns
345
- the number of tags in the tag set.
346
- Return values:
347
- -1: invalid length key or value
348
- non-negative value: the number of tags in the tag set. */
349
- int census_tag_set_add(census_tag_set *tags, const char *key,
350
- const char *value);
351
-
352
- /* Destroys a tag set. This function must be called to prevent memory leaks.
353
- Once called, the tag set cannot be used again. */
354
- void census_tag_set_destroy(census_tag_set *tags);
355
-
356
- /* Get a contexts tag set. */
357
- census_tag_set *census_context_tag_set(census_context *context);
358
-
359
- /* A read-only representation of a tag for use by census clients. */
360
- typedef struct {
361
- size_t key_len; /* Number of bytes in tag key. */
362
- const char *key; /* A pointer to the tag key. May not be null-terminated. */
363
- size_t value_len; /* Number of bytes in tag value. */
364
- const char *value; /* Pointer to the tag value. May not be null-terminated. */
365
- } census_tag_const;
366
-
367
- /* Used to iterate through a tag sets contents. */
368
- typedef struct census_tag_set_iterator census_tag_set_iterator;
369
-
370
- /* Open a tag set for iteration. The tag set must not be modified while
371
- iteration is ongoing. Returns an iterator for use in following functions. */
372
- census_tag_set_iterator *census_tag_set_open(census_tag_set *tags);
373
-
374
- /* Get the next tag in the tag set, by writing into the 'tag' argument. Returns
375
- 1 if there is a "next" tag, 0 if there are no more tags. */
376
- int census_tag_set_next(census_tag_set_iterator *it, census_tag_const *tag);
377
-
378
- /* Close an iterator opened by census_tag_set_open(). The iterator will be
379
- invalidated, and should not be used once close is called. */
380
- void census_tag_set_close(census_tag_set_iterator *it);
447
+ CENSUS_API void census_trace_scan_end();
381
448
 
382
449
  /* Core stats collection API's. The following concepts are used:
383
450
  * Aggregation: A collection of values. Census supports the following
@@ -403,13 +470,13 @@ void census_tag_set_close(census_tag_set_iterator *it);
403
470
  /* A single value to be recorded comprises two parts: an ID for the particular
404
471
  * metric and the value to be recorded against it. */
405
472
  typedef struct {
406
- gpr_uint32 metric_id;
473
+ uint32_t metric_id;
407
474
  double value;
408
475
  } census_value;
409
476
 
410
477
  /* Record new usage values against the given context. */
411
- void census_record_values(census_context *context, census_value *values,
412
- size_t nvalues);
478
+ CENSUS_API void census_record_values(census_context *context,
479
+ census_value *values, size_t nvalues);
413
480
 
414
481
  /** Type representing a particular aggregation */
415
482
  typedef struct census_aggregation_ops census_aggregation_ops;
@@ -424,8 +491,7 @@ extern census_aggregation_ops census_agg_window;
424
491
  construction via census_define_view(). */
425
492
  typedef struct {
426
493
  const census_aggregation_ops *ops;
427
- const void *
428
- create_arg; /* Argument to be used for aggregation initialization. */
494
+ const void *create_arg; /* Aaggregation initialization argument. */
429
495
  } census_aggregation;
430
496
 
431
497
  /** A census view type. Opaque. */
@@ -433,36 +499,39 @@ typedef struct census_view census_view;
433
499
 
434
500
  /** Create a new view.
435
501
  @param metric_id Metric with which this view is associated.
436
- @param tags tags that define the view
502
+ @param tags tags that define the view.
437
503
  @param aggregations aggregations to associate with the view
438
504
  @param naggregations number of aggregations
439
505
 
440
506
  @return A new census view
441
507
  */
442
- census_view *census_view_create(gpr_uint32 metric_id,
443
- const census_tag_set *tags,
444
- const census_aggregation *aggregations,
445
- size_t naggregations);
508
+
509
+ /* TODO(aveitch): consider if context is the right argument type to pass in
510
+ tags. */
511
+ CENSUS_API census_view *census_view_create(
512
+ uint32_t metric_id, const census_context *tags,
513
+ const census_aggregation *aggregations, size_t naggregations);
446
514
 
447
515
  /** Destroy a previously created view. */
448
- void census_view_delete(census_view *view);
516
+ CENSUS_API void census_view_delete(census_view *view);
449
517
 
450
518
  /** Metric ID associated with a view */
451
- size_t census_view_metric(const census_view *view);
519
+ CENSUS_API size_t census_view_metric(const census_view *view);
452
520
 
453
521
  /** Number of aggregations associated with view. */
454
- size_t census_view_naggregations(const census_view *view);
522
+ CENSUS_API size_t census_view_naggregations(const census_view *view);
455
523
 
456
524
  /** Get tags associated with view. */
457
- const census_tag_set *census_view_tags(const census_view *view);
525
+ CENSUS_API const census_context *census_view_tags(const census_view *view);
458
526
 
459
527
  /** Get aggregation descriptors associated with a view. */
460
- const census_aggregation *census_view_aggregrations(const census_view *view);
528
+ CENSUS_API const census_aggregation *census_view_aggregrations(
529
+ const census_view *view);
461
530
 
462
531
  /** Holds all the aggregation data for a particular view instantiation. Forms
463
532
  part of the data returned by census_view_data(). */
464
533
  typedef struct {
465
- const census_tag_set *tags; /* Tags for this set of aggregations. */
534
+ const census_context *tags; /* Tags for this set of aggregations. */
466
535
  const void **data; /* One data set for every aggregation in the view. */
467
536
  } census_view_aggregation_data;
468
537
 
@@ -476,10 +545,11 @@ typedef struct {
476
545
  @param view View from which to get data.
477
546
  @return Full set of data for all aggregations for the view.
478
547
  */
479
- const census_view_data *census_view_get_data(const census_view *view);
548
+ CENSUS_API const census_view_data *census_view_get_data(
549
+ const census_view *view);
480
550
 
481
551
  /** Reset all view data to zero for the specified view */
482
- void census_view_reset(census_view *view);
552
+ CENSUS_API void census_view_reset(census_view *view);
483
553
 
484
554
  #ifdef __cplusplus
485
555
  }