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.
- checksums.yaml +4 -4
- data/Makefile +5707 -22222
- data/include/grpc/byte_buffer.h +2 -83
- data/include/grpc/census.h +191 -121
- data/include/grpc/compression.h +14 -38
- data/include/grpc/grpc.h +88 -434
- data/include/grpc/grpc_security.h +76 -46
- data/include/grpc/grpc_zookeeper.h +1 -1
- data/include/grpc/impl/codegen/alloc.h +74 -0
- data/include/grpc/impl/codegen/atm.h +92 -0
- data/include/grpc/impl/codegen/atm_gcc_atomic.h +72 -0
- data/include/grpc/impl/codegen/atm_gcc_sync.h +87 -0
- data/include/grpc/impl/codegen/atm_win32.h +125 -0
- data/include/grpc/impl/codegen/byte_buffer.h +121 -0
- data/include/grpc/impl/codegen/compression_types.h +73 -0
- data/include/grpc/impl/codegen/connectivity_state.h +59 -0
- data/include/grpc/impl/codegen/grpc_types.h +373 -0
- data/include/grpc/impl/codegen/log.h +110 -0
- data/include/grpc/impl/codegen/port_platform.h +362 -0
- data/include/grpc/impl/codegen/propagation_bits.h +67 -0
- data/include/grpc/impl/codegen/slice.h +182 -0
- data/include/grpc/impl/codegen/slice_buffer.h +105 -0
- data/include/grpc/impl/codegen/status.h +163 -0
- data/include/grpc/impl/codegen/sync.h +316 -0
- data/include/grpc/impl/codegen/sync_generic.h +55 -0
- data/{src/core/census/context.h → include/grpc/impl/codegen/sync_posix.h} +11 -11
- data/include/grpc/impl/codegen/sync_win32.h +49 -0
- data/include/grpc/impl/codegen/time.h +132 -0
- data/include/grpc/status.h +2 -126
- data/include/grpc/support/alloc.h +2 -35
- data/include/grpc/support/atm.h +2 -55
- data/include/grpc/support/atm_gcc_atomic.h +5 -38
- data/include/grpc/support/atm_gcc_sync.h +2 -50
- data/include/grpc/support/atm_win32.h +2 -88
- data/include/grpc/support/avl.h +7 -7
- data/include/grpc/support/cmdline.h +15 -13
- data/include/grpc/support/cpu.h +5 -3
- data/include/grpc/support/histogram.h +23 -20
- data/include/grpc/support/host_port.h +5 -3
- data/include/grpc/support/log.h +2 -71
- data/include/grpc/support/log_win32.h +2 -2
- data/include/grpc/support/port_platform.h +2 -319
- data/include/grpc/support/slice.h +2 -145
- data/include/grpc/support/slice_buffer.h +2 -65
- data/include/grpc/support/string_util.h +3 -3
- data/include/grpc/support/subprocess.h +8 -6
- data/include/grpc/support/sync.h +2 -278
- data/include/grpc/support/sync_generic.h +2 -18
- data/include/grpc/support/sync_posix.h +2 -10
- data/include/grpc/support/sync_win32.h +2 -12
- data/include/grpc/support/thd.h +11 -11
- data/include/grpc/support/time.h +2 -91
- data/include/grpc/support/tls.h +1 -1
- data/include/grpc/support/tls_gcc.h +1 -1
- data/include/grpc/support/tls_msvc.h +1 -1
- data/include/grpc/support/tls_pthread.h +2 -2
- data/src/boringssl/err_data.c +1252 -0
- data/src/core/census/context.c +492 -8
- data/src/core/census/grpc_filter.c +3 -3
- data/src/core/census/initialize.c +4 -7
- data/src/core/census/operation.c +2 -2
- data/src/core/census/placeholders.c +109 -0
- data/src/core/census/rpc_metric_id.h +6 -6
- data/src/core/census/tracing.c +1 -1
- data/src/core/channel/channel_args.c +4 -3
- data/src/core/channel/channel_stack.c +1 -1
- data/src/core/channel/client_channel.c +18 -14
- data/src/core/channel/client_uchannel.c +3 -3
- data/src/core/channel/compress_filter.c +8 -8
- data/src/core/channel/http_client_filter.c +2 -2
- data/src/core/channel/http_server_filter.c +9 -9
- data/src/core/channel/subchannel_call_holder.c +12 -10
- data/src/core/client_config/lb_policies/pick_first.c +49 -31
- data/src/core/client_config/lb_policies/round_robin.c +7 -7
- data/src/core/client_config/resolvers/dns_resolver.c +3 -3
- data/src/core/client_config/resolvers/sockaddr_resolver.c +5 -5
- data/src/core/client_config/subchannel.c +36 -25
- data/src/core/compression/algorithm.c +3 -3
- data/src/core/httpcli/format_request.c +1 -1
- data/src/core/httpcli/httpcli.c +5 -5
- data/src/core/httpcli/httpcli_security_connector.c +2 -3
- data/src/core/httpcli/parser.c +7 -7
- data/src/core/httpcli/parser.h +1 -1
- data/src/core/iomgr/closure.c +7 -7
- data/src/core/iomgr/closure.h +6 -5
- data/src/core/iomgr/exec_ctx.c +12 -8
- data/src/core/iomgr/exec_ctx.h +12 -5
- data/src/core/iomgr/executor.c +4 -4
- data/src/core/iomgr/executor.h +2 -2
- data/src/core/iomgr/fd_posix.c +28 -17
- data/src/core/iomgr/fd_posix.h +7 -4
- data/src/core/iomgr/iocp_windows.c +6 -8
- data/src/core/iomgr/pollset_multipoller_with_epoll.c +70 -5
- data/src/core/iomgr/pollset_multipoller_with_poll_posix.c +4 -2
- data/src/core/iomgr/pollset_posix.c +15 -15
- data/src/core/iomgr/pollset_posix.h +4 -2
- data/src/core/iomgr/pollset_windows.c +3 -12
- data/src/core/iomgr/resolve_address_posix.c +2 -2
- data/src/core/iomgr/resolve_address_windows.c +2 -2
- data/src/core/iomgr/sockaddr_utils.c +6 -6
- data/src/core/iomgr/sockaddr_win32.h +1 -6
- data/src/core/iomgr/tcp_client_posix.c +7 -7
- data/src/core/iomgr/tcp_client_windows.c +4 -4
- data/src/core/iomgr/tcp_posix.c +14 -8
- data/src/core/iomgr/tcp_posix.h +7 -1
- data/src/core/iomgr/tcp_server.h +40 -20
- data/src/core/iomgr/tcp_server_posix.c +106 -49
- data/src/core/iomgr/tcp_server_windows.c +98 -49
- data/src/core/iomgr/tcp_windows.c +11 -15
- data/src/core/iomgr/timer.c +8 -8
- data/src/core/iomgr/timer.h +1 -1
- data/src/core/iomgr/timer_heap.c +10 -10
- data/src/core/iomgr/timer_heap.h +2 -2
- data/src/core/iomgr/udp_server.c +2 -12
- data/src/core/iomgr/udp_server.h +1 -9
- data/src/core/iomgr/workqueue.h +2 -4
- data/src/core/iomgr/workqueue_posix.c +3 -3
- data/src/core/json/json_reader.c +11 -12
- data/src/core/json/json_reader.h +4 -4
- data/src/core/json/json_string.c +19 -19
- data/src/core/json/json_writer.c +7 -9
- data/src/core/profiling/basic_timers.c +1 -1
- data/src/core/security/base64.c +9 -9
- data/src/core/security/client_auth_filter.c +4 -4
- data/src/core/security/credentials.c +5 -5
- data/src/core/security/google_default_credentials.c +3 -3
- data/src/core/security/handshake.c +6 -5
- data/src/core/security/json_token.c +13 -7
- data/src/core/security/jwt_verifier.c +3 -2
- data/src/core/security/secure_endpoint.c +16 -16
- data/src/core/security/security_connector.c +47 -17
- data/src/core/security/security_connector.h +5 -5
- data/src/core/security/server_auth_filter.c +3 -3
- data/src/core/security/server_secure_chttp2.c +30 -31
- data/src/core/statistics/census_interface.h +2 -2
- data/src/core/statistics/census_rpc_stats.h +3 -3
- data/src/core/support/alloc.c +1 -1
- data/src/core/support/cpu_posix.c +2 -2
- data/src/core/support/env_linux.c +12 -2
- data/src/core/support/env_win32.c +15 -7
- data/src/core/support/histogram.c +5 -5
- data/src/core/support/log_posix.c +1 -1
- data/src/core/support/log_win32.c +4 -3
- data/src/core/support/murmur_hash.c +11 -11
- data/src/core/support/murmur_hash.h +1 -1
- data/src/core/support/slice.c +11 -11
- data/src/core/support/slice_buffer.c +6 -6
- data/src/core/support/stack_lockfree.c +20 -10
- data/src/core/support/string.c +15 -15
- data/src/core/support/string.h +5 -5
- data/src/core/support/string_win32.c +5 -5
- data/src/core/support/subprocess_windows.c +141 -0
- data/src/core/support/sync.c +4 -4
- data/src/core/support/sync_posix.c +2 -2
- data/src/core/support/sync_win32.c +10 -5
- data/src/core/support/time.c +29 -29
- data/src/core/support/time_posix.c +15 -6
- data/src/core/support/time_precise.c +2 -2
- data/src/core/support/time_win32.c +18 -9
- data/src/core/support/tls_pthread.c +1 -1
- data/src/core/support/wrap_memcpy.c +53 -0
- data/src/core/surface/alarm.c +83 -0
- data/src/core/surface/byte_buffer_reader.c +1 -1
- data/src/core/surface/call.c +78 -69
- data/src/core/surface/call.h +2 -2
- data/src/core/surface/call_test_only.h +2 -2
- data/src/core/surface/channel.c +9 -9
- data/src/core/surface/channel.h +1 -1
- data/src/core/surface/channel_connectivity.c +3 -3
- data/src/core/surface/channel_create.c +3 -3
- data/src/core/surface/channel_ping.c +2 -2
- data/src/core/surface/completion_queue.c +11 -12
- data/src/core/surface/completion_queue.h +1 -1
- data/src/core/surface/init.c +7 -5
- data/src/core/surface/lame_client.c +3 -3
- data/src/core/surface/secure_channel_create.c +3 -3
- data/src/core/surface/server.c +28 -28
- data/src/core/surface/server_chttp2.c +8 -8
- data/src/core/surface/server_create.c +1 -4
- data/src/core/surface/validate_metadata.c +3 -3
- data/src/core/surface/version.c +2 -2
- data/src/core/transport/byte_stream.c +8 -6
- data/src/core/transport/byte_stream.h +6 -5
- data/src/core/transport/chttp2/bin_encoder.c +29 -29
- data/src/core/transport/chttp2/frame_data.c +29 -26
- data/src/core/transport/chttp2/frame_data.h +6 -6
- data/src/core/transport/chttp2/frame_goaway.c +30 -30
- data/src/core/transport/chttp2/frame_goaway.h +6 -6
- data/src/core/transport/chttp2/frame_ping.c +6 -6
- data/src/core/transport/chttp2/frame_ping.h +5 -5
- data/src/core/transport/chttp2/frame_rst_stream.c +18 -19
- data/src/core/transport/chttp2/frame_rst_stream.h +4 -4
- data/src/core/transport/chttp2/frame_settings.c +30 -30
- data/src/core/transport/chttp2/frame_settings.h +13 -13
- data/src/core/transport/chttp2/frame_window_update.c +17 -18
- data/src/core/transport/chttp2/frame_window_update.h +5 -7
- data/src/core/transport/chttp2/hpack_encoder.c +69 -73
- data/src/core/transport/chttp2/hpack_encoder.h +16 -16
- data/src/core/transport/chttp2/hpack_parser.c +167 -167
- data/src/core/transport/chttp2/hpack_parser.h +16 -16
- data/src/core/transport/chttp2/hpack_table.c +13 -13
- data/src/core/transport/chttp2/hpack_table.h +11 -11
- data/src/core/transport/chttp2/internal.h +97 -86
- data/src/core/transport/chttp2/parsing.c +25 -25
- data/src/core/transport/chttp2/stream_lists.c +26 -3
- data/src/core/transport/chttp2/stream_map.c +13 -14
- data/src/core/transport/chttp2/stream_map.h +6 -7
- data/src/core/transport/chttp2/timeout_encoding.c +19 -16
- data/src/core/transport/chttp2/varint.c +8 -9
- data/src/core/transport/chttp2/varint.h +7 -8
- data/src/core/transport/chttp2/writing.c +26 -23
- data/src/core/transport/chttp2_transport.c +133 -92
- data/src/core/transport/connectivity_state.c +6 -6
- data/src/core/transport/metadata.c +18 -18
- data/src/core/transport/metadata.h +5 -5
- data/src/core/transport/static_metadata.c +15 -16
- data/src/core/transport/static_metadata.h +5 -5
- data/src/core/transport/transport.c +5 -5
- data/src/core/transport/transport.h +14 -1
- data/src/core/tsi/fake_transport_security.c +7 -7
- data/src/core/tsi/ssl_transport_security.c +6 -4
- data/src/core/tsi/ssl_types.h +55 -0
- data/src/ruby/ext/grpc/extconf.rb +51 -14
- data/src/ruby/ext/grpc/rb_byte_buffer.c +3 -1
- data/src/ruby/ext/grpc/rb_call.c +6 -3
- data/src/ruby/ext/grpc/rb_call_credentials.c +4 -0
- data/src/ruby/ext/grpc/rb_channel.c +4 -2
- data/src/ruby/ext/grpc/rb_channel_args.c +3 -1
- data/src/ruby/ext/grpc/rb_channel_credentials.c +3 -1
- data/src/ruby/ext/grpc/rb_completion_queue.c +3 -1
- data/src/ruby/ext/grpc/rb_event_thread.c +5 -0
- data/src/ruby/ext/grpc/rb_grpc.c +11 -3
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +560 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +843 -0
- data/src/ruby/ext/grpc/rb_loader.c +72 -0
- data/src/ruby/ext/grpc/rb_loader.h +40 -0
- data/src/ruby/ext/grpc/rb_server.c +3 -1
- data/src/ruby/ext/grpc/rb_server_credentials.c +4 -2
- data/src/ruby/lib/grpc/generic/bidi_call.rb +1 -1
- data/src/ruby/lib/grpc/generic/rpc_desc.rb +1 -1
- data/src/ruby/lib/grpc/generic/rpc_server.rb +1 -1
- data/src/ruby/lib/grpc/grpc.rb +34 -0
- data/src/ruby/lib/grpc/version.rb +1 -1
- data/src/ruby/spec/pb/health/checker_spec.rb +1 -1
- data/third_party/boringssl/crypto/aes/aes.c +1142 -0
- data/third_party/boringssl/crypto/aes/internal.h +87 -0
- data/third_party/boringssl/crypto/aes/mode_wrappers.c +108 -0
- data/third_party/boringssl/crypto/asn1/a_bitstr.c +255 -0
- data/third_party/boringssl/crypto/asn1/a_bool.c +112 -0
- data/third_party/boringssl/crypto/asn1/a_bytes.c +317 -0
- data/third_party/boringssl/crypto/asn1/a_d2i_fp.c +286 -0
- data/third_party/boringssl/crypto/asn1/a_dup.c +103 -0
- data/third_party/boringssl/crypto/asn1/a_enum.c +183 -0
- data/third_party/boringssl/crypto/asn1/a_gentm.c +255 -0
- data/third_party/boringssl/crypto/asn1/a_i2d_fp.c +154 -0
- data/third_party/boringssl/crypto/asn1/a_int.c +456 -0
- data/third_party/boringssl/crypto/asn1/a_mbstr.c +390 -0
- data/third_party/boringssl/crypto/asn1/a_object.c +412 -0
- data/third_party/boringssl/crypto/asn1/a_octet.c +70 -0
- data/third_party/boringssl/crypto/asn1/a_print.c +119 -0
- data/third_party/boringssl/crypto/asn1/a_strnid.c +286 -0
- data/third_party/boringssl/crypto/asn1/a_time.c +221 -0
- data/third_party/boringssl/crypto/asn1/a_type.c +160 -0
- data/third_party/boringssl/crypto/asn1/a_utctm.c +342 -0
- data/third_party/boringssl/crypto/asn1/a_utf8.c +210 -0
- data/third_party/boringssl/crypto/asn1/asn1_lib.c +510 -0
- data/third_party/boringssl/crypto/asn1/asn1_locl.h +73 -0
- data/third_party/boringssl/crypto/asn1/asn1_par.c +444 -0
- data/third_party/boringssl/crypto/asn1/asn_pack.c +104 -0
- data/third_party/boringssl/crypto/asn1/bio_asn1.c +496 -0
- data/third_party/boringssl/crypto/asn1/bio_ndef.c +254 -0
- data/third_party/boringssl/crypto/asn1/f_enum.c +206 -0
- data/third_party/boringssl/crypto/asn1/f_int.c +210 -0
- data/third_party/boringssl/crypto/asn1/f_string.c +204 -0
- data/third_party/boringssl/crypto/asn1/t_bitst.c +102 -0
- data/third_party/boringssl/crypto/asn1/t_pkey.c +112 -0
- data/third_party/boringssl/crypto/asn1/tasn_dec.c +1342 -0
- data/third_party/boringssl/crypto/asn1/tasn_enc.c +695 -0
- data/third_party/boringssl/crypto/asn1/tasn_fre.c +264 -0
- data/third_party/boringssl/crypto/asn1/tasn_new.c +398 -0
- data/third_party/boringssl/crypto/asn1/tasn_prn.c +642 -0
- data/third_party/boringssl/crypto/asn1/tasn_typ.c +137 -0
- data/third_party/boringssl/crypto/asn1/tasn_utl.c +266 -0
- data/third_party/boringssl/crypto/asn1/x_bignum.c +143 -0
- data/third_party/boringssl/crypto/asn1/x_long.c +182 -0
- data/third_party/boringssl/crypto/base64/base64.c +478 -0
- data/third_party/boringssl/crypto/bio/bio.c +608 -0
- data/third_party/boringssl/crypto/bio/bio_mem.c +327 -0
- data/third_party/boringssl/crypto/bio/buffer.c +496 -0
- data/third_party/boringssl/crypto/bio/connect.c +544 -0
- data/third_party/boringssl/crypto/bio/fd.c +270 -0
- data/third_party/boringssl/crypto/bio/file.c +349 -0
- data/third_party/boringssl/crypto/bio/hexdump.c +192 -0
- data/third_party/boringssl/crypto/bio/internal.h +108 -0
- data/third_party/boringssl/crypto/bio/pair.c +803 -0
- data/third_party/boringssl/crypto/bio/printf.c +119 -0
- data/third_party/boringssl/crypto/bio/socket.c +195 -0
- data/third_party/boringssl/crypto/bio/socket_helper.c +113 -0
- data/third_party/boringssl/crypto/bn/add.c +377 -0
- data/third_party/boringssl/crypto/bn/asm/x86_64-gcc.c +599 -0
- data/third_party/boringssl/crypto/bn/bn.c +341 -0
- data/third_party/boringssl/crypto/bn/bn_asn1.c +93 -0
- data/third_party/boringssl/crypto/bn/cmp.c +200 -0
- data/third_party/boringssl/crypto/bn/convert.c +597 -0
- data/third_party/boringssl/crypto/bn/ctx.c +311 -0
- data/third_party/boringssl/crypto/bn/div.c +625 -0
- data/third_party/boringssl/crypto/bn/exponentiation.c +1544 -0
- data/third_party/boringssl/crypto/bn/gcd.c +711 -0
- data/third_party/boringssl/crypto/bn/generic.c +1019 -0
- data/third_party/boringssl/crypto/bn/internal.h +294 -0
- data/third_party/boringssl/crypto/bn/kronecker.c +175 -0
- data/third_party/boringssl/crypto/bn/montgomery.c +561 -0
- data/third_party/boringssl/crypto/bn/mul.c +888 -0
- data/third_party/boringssl/crypto/bn/prime.c +845 -0
- data/third_party/boringssl/crypto/bn/random.c +326 -0
- data/third_party/boringssl/crypto/bn/rsaz_exp.c +326 -0
- data/third_party/boringssl/crypto/bn/rsaz_exp.h +56 -0
- data/third_party/boringssl/crypto/bn/shift.c +299 -0
- data/third_party/boringssl/crypto/bn/sqrt.c +505 -0
- data/third_party/boringssl/crypto/buf/buf.c +235 -0
- data/third_party/boringssl/crypto/bytestring/ber.c +221 -0
- data/third_party/boringssl/crypto/bytestring/cbb.c +411 -0
- data/third_party/boringssl/crypto/bytestring/cbs.c +415 -0
- data/third_party/boringssl/crypto/bytestring/internal.h +46 -0
- data/third_party/boringssl/crypto/chacha/chacha_generic.c +140 -0
- data/third_party/boringssl/crypto/chacha/chacha_vec.c +323 -0
- data/third_party/boringssl/crypto/cipher/aead.c +167 -0
- data/third_party/boringssl/crypto/cipher/cipher.c +652 -0
- data/third_party/boringssl/crypto/cipher/derive_key.c +154 -0
- data/third_party/boringssl/crypto/cipher/e_aes.c +1767 -0
- data/third_party/boringssl/crypto/cipher/e_chacha20poly1305.c +311 -0
- data/third_party/boringssl/crypto/cipher/e_des.c +207 -0
- data/third_party/boringssl/crypto/cipher/e_null.c +85 -0
- data/third_party/boringssl/crypto/cipher/e_rc2.c +443 -0
- data/third_party/boringssl/crypto/cipher/e_rc4.c +87 -0
- data/third_party/boringssl/crypto/cipher/e_ssl3.c +463 -0
- data/third_party/boringssl/crypto/cipher/e_tls.c +673 -0
- data/third_party/boringssl/crypto/cipher/internal.h +164 -0
- data/third_party/boringssl/crypto/cipher/tls_cbc.c +495 -0
- data/third_party/boringssl/crypto/cmac/cmac.c +239 -0
- data/third_party/boringssl/crypto/conf/conf.c +778 -0
- data/third_party/boringssl/crypto/conf/conf_def.h +127 -0
- data/third_party/boringssl/crypto/conf/internal.h +31 -0
- data/third_party/boringssl/crypto/cpu-arm.c +199 -0
- data/third_party/boringssl/crypto/cpu-intel.c +261 -0
- data/third_party/boringssl/crypto/crypto.c +140 -0
- data/third_party/boringssl/crypto/curve25519/curve25519.c +4897 -0
- data/third_party/boringssl/crypto/des/des.c +771 -0
- data/third_party/boringssl/crypto/des/internal.h +212 -0
- data/third_party/boringssl/crypto/dh/check.c +180 -0
- data/third_party/boringssl/crypto/dh/dh.c +463 -0
- data/third_party/boringssl/crypto/dh/dh_asn1.c +84 -0
- data/third_party/boringssl/crypto/dh/internal.h +80 -0
- data/third_party/boringssl/crypto/dh/params.c +301 -0
- data/third_party/boringssl/crypto/digest/digest.c +248 -0
- data/third_party/boringssl/crypto/digest/digests.c +321 -0
- data/third_party/boringssl/crypto/digest/internal.h +112 -0
- data/third_party/boringssl/crypto/digest/md32_common.h +322 -0
- data/third_party/boringssl/crypto/directory.h +66 -0
- data/third_party/boringssl/crypto/directory_posix.c +108 -0
- data/third_party/boringssl/crypto/directory_win.c +144 -0
- data/third_party/boringssl/crypto/dsa/dsa.c +908 -0
- data/third_party/boringssl/crypto/dsa/dsa_asn1.c +150 -0
- data/third_party/boringssl/crypto/dsa/internal.h +78 -0
- data/third_party/boringssl/crypto/ec/ec.c +889 -0
- data/third_party/boringssl/crypto/ec/ec_asn1.c +586 -0
- data/third_party/boringssl/crypto/ec/ec_key.c +482 -0
- data/third_party/boringssl/crypto/ec/ec_montgomery.c +280 -0
- data/third_party/boringssl/crypto/ec/internal.h +318 -0
- data/third_party/boringssl/crypto/ec/oct.c +416 -0
- data/third_party/boringssl/crypto/ec/p224-64.c +1305 -0
- data/third_party/boringssl/crypto/ec/p256-64.c +1878 -0
- data/third_party/boringssl/crypto/ec/p256-x86_64-table.h +9548 -0
- data/third_party/boringssl/crypto/ec/p256-x86_64.c +596 -0
- data/third_party/boringssl/crypto/ec/simple.c +1313 -0
- data/third_party/boringssl/crypto/ec/util-64.c +183 -0
- data/third_party/boringssl/crypto/ec/wnaf.c +449 -0
- data/third_party/boringssl/crypto/ecdh/ecdh.c +153 -0
- data/third_party/boringssl/crypto/ecdsa/ecdsa.c +496 -0
- data/third_party/boringssl/crypto/ecdsa/ecdsa_asn1.c +240 -0
- data/third_party/boringssl/crypto/engine/engine.c +96 -0
- data/third_party/boringssl/crypto/err/err.c +756 -0
- data/third_party/boringssl/crypto/evp/algorithm.c +153 -0
- data/third_party/boringssl/crypto/evp/digestsign.c +159 -0
- data/third_party/boringssl/crypto/evp/evp.c +411 -0
- data/third_party/boringssl/crypto/evp/evp_asn1.c +179 -0
- data/third_party/boringssl/crypto/evp/evp_ctx.c +477 -0
- data/third_party/boringssl/crypto/evp/internal.h +278 -0
- data/third_party/boringssl/crypto/evp/p_dsa_asn1.c +588 -0
- data/third_party/boringssl/crypto/evp/p_ec.c +283 -0
- data/third_party/boringssl/crypto/evp/p_ec_asn1.c +562 -0
- data/third_party/boringssl/crypto/evp/p_rsa.c +596 -0
- data/third_party/boringssl/crypto/evp/p_rsa_asn1.c +737 -0
- data/third_party/boringssl/crypto/evp/pbkdf.c +151 -0
- data/third_party/boringssl/crypto/evp/sign.c +151 -0
- data/third_party/boringssl/crypto/ex_data.c +294 -0
- data/third_party/boringssl/crypto/hkdf/hkdf.c +89 -0
- data/third_party/boringssl/crypto/hmac/hmac.c +213 -0
- data/third_party/boringssl/crypto/internal.h +532 -0
- data/third_party/boringssl/crypto/lhash/lhash.c +346 -0
- data/third_party/boringssl/crypto/md4/md4.c +225 -0
- data/third_party/boringssl/crypto/md5/md5.c +275 -0
- data/third_party/boringssl/crypto/mem.c +200 -0
- data/third_party/boringssl/crypto/modes/cbc.c +216 -0
- data/third_party/boringssl/crypto/modes/cfb.c +231 -0
- data/third_party/boringssl/crypto/modes/ctr.c +226 -0
- data/third_party/boringssl/crypto/modes/gcm.c +1252 -0
- data/third_party/boringssl/crypto/modes/internal.h +370 -0
- data/third_party/boringssl/crypto/modes/ofb.c +108 -0
- data/third_party/boringssl/crypto/obj/obj.c +664 -0
- data/third_party/boringssl/crypto/obj/obj_dat.h +5257 -0
- data/third_party/boringssl/crypto/obj/obj_xref.c +124 -0
- data/third_party/boringssl/crypto/obj/obj_xref.h +96 -0
- data/third_party/boringssl/crypto/pem/pem_all.c +281 -0
- data/third_party/boringssl/crypto/pem/pem_info.c +404 -0
- data/third_party/boringssl/crypto/pem/pem_lib.c +835 -0
- data/third_party/boringssl/crypto/pem/pem_oth.c +89 -0
- data/third_party/boringssl/crypto/pem/pem_pk8.c +244 -0
- data/third_party/boringssl/crypto/pem/pem_pkey.c +312 -0
- data/third_party/boringssl/crypto/pem/pem_x509.c +65 -0
- data/third_party/boringssl/crypto/pem/pem_xaux.c +66 -0
- data/third_party/boringssl/crypto/pkcs8/internal.h +83 -0
- data/third_party/boringssl/crypto/pkcs8/p5_pbe.c +150 -0
- data/third_party/boringssl/crypto/pkcs8/p5_pbev2.c +440 -0
- data/third_party/boringssl/crypto/pkcs8/p8_pkey.c +85 -0
- data/third_party/boringssl/crypto/pkcs8/pkcs8.c +1217 -0
- data/third_party/boringssl/crypto/poly1305/poly1305.c +331 -0
- data/third_party/boringssl/crypto/poly1305/poly1305_arm.c +301 -0
- data/third_party/boringssl/crypto/poly1305/poly1305_vec.c +892 -0
- data/third_party/boringssl/crypto/rand/internal.h +32 -0
- data/third_party/boringssl/crypto/rand/rand.c +239 -0
- data/third_party/boringssl/crypto/rand/urandom.c +223 -0
- data/third_party/boringssl/crypto/rand/windows.c +56 -0
- data/third_party/boringssl/crypto/rc4/rc4.c +283 -0
- data/third_party/boringssl/crypto/refcount_c11.c +67 -0
- data/third_party/boringssl/crypto/refcount_lock.c +53 -0
- data/third_party/boringssl/crypto/rsa/blinding.c +462 -0
- data/third_party/boringssl/crypto/rsa/internal.h +164 -0
- data/third_party/boringssl/crypto/rsa/padding.c +711 -0
- data/third_party/boringssl/crypto/rsa/rsa.c +808 -0
- data/third_party/boringssl/crypto/rsa/rsa_asn1.c +473 -0
- data/third_party/boringssl/crypto/rsa/rsa_impl.c +1138 -0
- data/third_party/boringssl/crypto/sha/sha1.c +337 -0
- data/third_party/boringssl/crypto/sha/sha256.c +327 -0
- data/third_party/boringssl/crypto/sha/sha512.c +607 -0
- data/third_party/boringssl/crypto/stack/stack.c +386 -0
- data/third_party/boringssl/crypto/test/scoped_types.h +137 -0
- data/third_party/boringssl/crypto/test/test_util.h +35 -0
- data/third_party/boringssl/crypto/thread.c +101 -0
- data/third_party/boringssl/crypto/thread_none.c +55 -0
- data/third_party/boringssl/crypto/thread_pthread.c +167 -0
- data/third_party/boringssl/crypto/thread_win.c +282 -0
- data/third_party/boringssl/crypto/time_support.c +212 -0
- data/third_party/boringssl/crypto/x509/a_digest.c +97 -0
- data/third_party/boringssl/crypto/x509/a_sign.c +136 -0
- data/third_party/boringssl/crypto/x509/a_strex.c +564 -0
- data/third_party/boringssl/crypto/x509/a_verify.c +133 -0
- data/third_party/boringssl/crypto/x509/asn1_gen.c +873 -0
- data/third_party/boringssl/crypto/x509/by_dir.c +491 -0
- data/third_party/boringssl/crypto/x509/by_file.c +295 -0
- data/third_party/boringssl/crypto/x509/charmap.h +15 -0
- data/third_party/boringssl/crypto/x509/i2d_pr.c +84 -0
- data/third_party/boringssl/crypto/x509/pkcs7.c +353 -0
- data/third_party/boringssl/crypto/x509/t_crl.c +129 -0
- data/third_party/boringssl/crypto/x509/t_req.c +246 -0
- data/third_party/boringssl/crypto/x509/t_x509.c +500 -0
- data/third_party/boringssl/crypto/x509/t_x509a.c +109 -0
- data/third_party/boringssl/crypto/x509/vpm_int.h +70 -0
- data/third_party/boringssl/crypto/x509/x509.c +152 -0
- data/third_party/boringssl/crypto/x509/x509_att.c +353 -0
- data/third_party/boringssl/crypto/x509/x509_cmp.c +490 -0
- data/third_party/boringssl/crypto/x509/x509_d2.c +105 -0
- data/third_party/boringssl/crypto/x509/x509_def.c +88 -0
- data/third_party/boringssl/crypto/x509/x509_ext.c +206 -0
- data/third_party/boringssl/crypto/x509/x509_lu.c +738 -0
- data/third_party/boringssl/crypto/x509/x509_obj.c +191 -0
- data/third_party/boringssl/crypto/x509/x509_r2x.c +113 -0
- data/third_party/boringssl/crypto/x509/x509_req.c +315 -0
- data/third_party/boringssl/crypto/x509/x509_set.c +154 -0
- data/third_party/boringssl/crypto/x509/x509_trs.c +304 -0
- data/third_party/boringssl/crypto/x509/x509_txt.c +209 -0
- data/third_party/boringssl/crypto/x509/x509_v3.c +271 -0
- data/third_party/boringssl/crypto/x509/x509_vfy.c +2456 -0
- data/third_party/boringssl/crypto/x509/x509_vpm.c +672 -0
- data/third_party/boringssl/crypto/x509/x509cset.c +172 -0
- data/third_party/boringssl/crypto/x509/x509name.c +381 -0
- data/third_party/boringssl/crypto/x509/x509rset.c +80 -0
- data/third_party/boringssl/crypto/x509/x509spki.c +135 -0
- data/third_party/boringssl/crypto/x509/x509type.c +128 -0
- data/third_party/boringssl/crypto/x509/x_algor.c +154 -0
- data/third_party/boringssl/crypto/x509/x_all.c +547 -0
- data/third_party/boringssl/crypto/x509/x_attrib.c +117 -0
- data/third_party/boringssl/crypto/x509/x_crl.c +560 -0
- data/third_party/boringssl/crypto/x509/x_exten.c +75 -0
- data/third_party/boringssl/crypto/x509/x_info.c +95 -0
- data/third_party/boringssl/crypto/x509/x_name.c +538 -0
- data/third_party/boringssl/crypto/x509/x_pkey.c +100 -0
- data/third_party/boringssl/crypto/x509/x_pubkey.c +384 -0
- data/third_party/boringssl/crypto/x509/x_req.c +112 -0
- data/third_party/boringssl/crypto/x509/x_sig.c +69 -0
- data/third_party/boringssl/crypto/x509/x_spki.c +78 -0
- data/third_party/boringssl/crypto/x509/x_val.c +69 -0
- data/third_party/boringssl/crypto/x509/x_x509.c +227 -0
- data/third_party/boringssl/crypto/x509/x_x509a.c +197 -0
- data/third_party/boringssl/crypto/x509v3/ext_dat.h +129 -0
- data/third_party/boringssl/crypto/x509v3/pcy_cache.c +299 -0
- data/third_party/boringssl/crypto/x509v3/pcy_data.c +137 -0
- data/third_party/boringssl/crypto/x509v3/pcy_int.h +212 -0
- data/third_party/boringssl/crypto/x509v3/pcy_lib.c +165 -0
- data/third_party/boringssl/crypto/x509v3/pcy_map.c +133 -0
- data/third_party/boringssl/crypto/x509v3/pcy_node.c +197 -0
- data/third_party/boringssl/crypto/x509v3/pcy_tree.c +876 -0
- data/third_party/boringssl/crypto/x509v3/v3_akey.c +212 -0
- data/third_party/boringssl/crypto/x509v3/v3_akeya.c +71 -0
- data/third_party/boringssl/crypto/x509v3/v3_alt.c +622 -0
- data/third_party/boringssl/crypto/x509v3/v3_bcons.c +126 -0
- data/third_party/boringssl/crypto/x509v3/v3_bitst.c +141 -0
- data/third_party/boringssl/crypto/x509v3/v3_conf.c +459 -0
- data/third_party/boringssl/crypto/x509v3/v3_cpols.c +475 -0
- data/third_party/boringssl/crypto/x509v3/v3_crld.c +616 -0
- data/third_party/boringssl/crypto/x509v3/v3_enum.c +98 -0
- data/third_party/boringssl/crypto/x509v3/v3_extku.c +145 -0
- data/third_party/boringssl/crypto/x509v3/v3_genn.c +252 -0
- data/third_party/boringssl/crypto/x509v3/v3_ia5.c +117 -0
- data/third_party/boringssl/crypto/x509v3/v3_info.c +200 -0
- data/third_party/boringssl/crypto/x509v3/v3_int.c +87 -0
- data/third_party/boringssl/crypto/x509v3/v3_lib.c +335 -0
- data/third_party/boringssl/crypto/x509v3/v3_ncons.c +510 -0
- data/third_party/boringssl/crypto/x509v3/v3_pci.c +335 -0
- data/third_party/boringssl/crypto/x509v3/v3_pcia.c +56 -0
- data/third_party/boringssl/crypto/x509v3/v3_pcons.c +142 -0
- data/third_party/boringssl/crypto/x509v3/v3_pku.c +109 -0
- data/third_party/boringssl/crypto/x509v3/v3_pmaps.c +156 -0
- data/third_party/boringssl/crypto/x509v3/v3_prn.c +207 -0
- data/third_party/boringssl/crypto/x509v3/v3_purp.c +805 -0
- data/third_party/boringssl/crypto/x509v3/v3_skey.c +148 -0
- data/third_party/boringssl/crypto/x509v3/v3_sxnet.c +266 -0
- data/third_party/boringssl/crypto/x509v3/v3_utl.c +1322 -0
- data/third_party/boringssl/include/openssl/aead.h +346 -0
- data/third_party/boringssl/include/openssl/aes.h +158 -0
- data/third_party/boringssl/include/openssl/arm_arch.h +127 -0
- data/third_party/boringssl/include/openssl/asn1.h +1168 -0
- data/third_party/boringssl/include/openssl/asn1_mac.h +75 -0
- data/third_party/boringssl/include/openssl/asn1t.h +906 -0
- data/third_party/boringssl/include/openssl/base.h +261 -0
- data/third_party/boringssl/include/openssl/base64.h +184 -0
- data/third_party/boringssl/include/openssl/bio.h +902 -0
- data/third_party/boringssl/include/openssl/blowfish.h +93 -0
- data/third_party/boringssl/include/openssl/bn.h +885 -0
- data/third_party/boringssl/include/openssl/buf.h +118 -0
- data/third_party/boringssl/include/openssl/buffer.h +18 -0
- data/third_party/boringssl/include/openssl/bytestring.h +360 -0
- data/third_party/boringssl/include/openssl/cast.h +96 -0
- data/third_party/boringssl/include/openssl/chacha.h +37 -0
- data/third_party/boringssl/include/openssl/cipher.h +571 -0
- data/third_party/boringssl/include/openssl/cmac.h +76 -0
- data/third_party/boringssl/include/openssl/conf.h +145 -0
- data/third_party/boringssl/include/openssl/cpu.h +184 -0
- data/third_party/boringssl/include/openssl/crypto.h +68 -0
- data/third_party/boringssl/include/openssl/curve25519.h +88 -0
- data/third_party/boringssl/include/openssl/des.h +177 -0
- data/third_party/boringssl/include/openssl/dh.h +238 -0
- data/third_party/boringssl/include/openssl/digest.h +258 -0
- data/third_party/boringssl/include/openssl/dsa.h +343 -0
- data/third_party/boringssl/include/openssl/dtls1.h +16 -0
- data/third_party/boringssl/include/openssl/ec.h +355 -0
- data/third_party/boringssl/include/openssl/ec_key.h +280 -0
- data/third_party/boringssl/include/openssl/ecdh.h +102 -0
- data/third_party/boringssl/include/openssl/ecdsa.h +206 -0
- data/third_party/boringssl/include/openssl/engine.h +98 -0
- data/third_party/boringssl/include/openssl/err.h +487 -0
- data/third_party/boringssl/include/openssl/evp.h +750 -0
- data/third_party/boringssl/include/openssl/ex_data.h +213 -0
- data/third_party/boringssl/include/openssl/hkdf.h +44 -0
- data/third_party/boringssl/include/openssl/hmac.h +160 -0
- data/third_party/boringssl/include/openssl/lhash.h +192 -0
- data/third_party/boringssl/include/openssl/lhash_macros.h +132 -0
- data/third_party/boringssl/include/openssl/md4.h +102 -0
- data/third_party/boringssl/include/openssl/md5.h +107 -0
- data/third_party/boringssl/include/openssl/mem.h +140 -0
- data/third_party/boringssl/include/openssl/obj.h +198 -0
- data/third_party/boringssl/include/openssl/obj_mac.h +4140 -0
- data/third_party/boringssl/include/openssl/objects.h +18 -0
- data/third_party/boringssl/include/openssl/opensslfeatures.h +60 -0
- data/third_party/boringssl/include/openssl/opensslv.h +18 -0
- data/third_party/boringssl/include/openssl/ossl_typ.h +18 -0
- data/third_party/boringssl/include/openssl/pem.h +521 -0
- data/third_party/boringssl/include/openssl/pkcs12.h +18 -0
- data/third_party/boringssl/include/openssl/pkcs7.h +16 -0
- data/third_party/boringssl/include/openssl/pkcs8.h +220 -0
- data/third_party/boringssl/include/openssl/poly1305.h +51 -0
- data/third_party/boringssl/include/openssl/pqueue.h +146 -0
- data/third_party/boringssl/include/openssl/rand.h +113 -0
- data/third_party/boringssl/include/openssl/rc4.h +90 -0
- data/third_party/boringssl/include/openssl/rsa.h +637 -0
- data/third_party/boringssl/include/openssl/safestack.h +16 -0
- data/third_party/boringssl/include/openssl/sha.h +256 -0
- data/third_party/boringssl/include/openssl/srtp.h +18 -0
- data/third_party/boringssl/include/openssl/ssl.h +4466 -0
- data/third_party/boringssl/include/openssl/ssl3.h +441 -0
- data/third_party/boringssl/include/openssl/stack.h +298 -0
- data/third_party/boringssl/include/openssl/stack_macros.h +4190 -0
- data/third_party/boringssl/include/openssl/thread.h +173 -0
- data/third_party/boringssl/include/openssl/time_support.h +90 -0
- data/third_party/boringssl/include/openssl/tls1.h +653 -0
- data/third_party/boringssl/include/openssl/type_check.h +91 -0
- data/third_party/boringssl/include/openssl/x509.h +1258 -0
- data/third_party/boringssl/include/openssl/x509_vfy.h +611 -0
- data/third_party/boringssl/include/openssl/x509v3.h +798 -0
- data/third_party/boringssl/ssl/custom_extensions.c +257 -0
- data/third_party/boringssl/ssl/d1_both.c +880 -0
- data/third_party/boringssl/ssl/d1_clnt.c +566 -0
- data/third_party/boringssl/ssl/d1_lib.c +340 -0
- data/third_party/boringssl/ssl/d1_meth.c +130 -0
- data/third_party/boringssl/ssl/d1_pkt.c +578 -0
- data/third_party/boringssl/ssl/d1_srtp.c +234 -0
- data/third_party/boringssl/ssl/d1_srvr.c +485 -0
- data/third_party/boringssl/ssl/dtls_record.c +308 -0
- data/third_party/boringssl/ssl/internal.h +1276 -0
- data/third_party/boringssl/ssl/pqueue/pqueue.c +197 -0
- data/third_party/boringssl/ssl/s3_both.c +571 -0
- data/third_party/boringssl/ssl/s3_clnt.c +2241 -0
- data/third_party/boringssl/ssl/s3_enc.c +494 -0
- data/third_party/boringssl/ssl/s3_lib.c +587 -0
- data/third_party/boringssl/ssl/s3_meth.c +166 -0
- data/third_party/boringssl/ssl/s3_pkt.c +732 -0
- data/third_party/boringssl/ssl/s3_srvr.c +2536 -0
- data/third_party/boringssl/ssl/ssl_aead_ctx.c +300 -0
- data/third_party/boringssl/ssl/ssl_asn1.c +718 -0
- data/third_party/boringssl/ssl/ssl_buffer.c +319 -0
- data/third_party/boringssl/ssl/ssl_cert.c +539 -0
- data/third_party/boringssl/ssl/ssl_cipher.c +2003 -0
- data/third_party/boringssl/ssl/ssl_file.c +633 -0
- data/third_party/boringssl/ssl/ssl_lib.c +2653 -0
- data/third_party/boringssl/ssl/ssl_rsa.c +423 -0
- data/third_party/boringssl/ssl/ssl_session.c +764 -0
- data/third_party/boringssl/ssl/ssl_stat.c +591 -0
- data/third_party/boringssl/ssl/t1_enc.c +708 -0
- data/third_party/boringssl/ssl/t1_lib.c +2905 -0
- data/third_party/boringssl/ssl/test/async_bio.h +45 -0
- data/third_party/boringssl/ssl/test/packeted_bio.h +44 -0
- data/third_party/boringssl/ssl/test/scoped_types.h +28 -0
- data/third_party/boringssl/ssl/test/test_config.h +108 -0
- data/third_party/boringssl/ssl/tls_record.c +342 -0
- data/third_party/zlib/adler32.c +179 -0
- data/third_party/zlib/compress.c +80 -0
- data/third_party/zlib/crc32.c +425 -0
- data/third_party/zlib/crc32.h +441 -0
- data/third_party/zlib/deflate.c +1967 -0
- data/third_party/zlib/deflate.h +346 -0
- data/third_party/zlib/gzclose.c +25 -0
- data/third_party/zlib/gzguts.h +209 -0
- data/third_party/zlib/gzlib.c +634 -0
- data/third_party/zlib/gzread.c +594 -0
- data/third_party/zlib/gzwrite.c +577 -0
- data/third_party/zlib/infback.c +640 -0
- data/third_party/zlib/inffast.c +340 -0
- data/third_party/zlib/inffast.h +11 -0
- data/third_party/zlib/inffixed.h +94 -0
- data/third_party/zlib/inflate.c +1512 -0
- data/third_party/zlib/inflate.h +122 -0
- data/third_party/zlib/inftrees.c +306 -0
- data/third_party/zlib/inftrees.h +62 -0
- data/third_party/zlib/trees.c +1226 -0
- data/third_party/zlib/trees.h +128 -0
- data/third_party/zlib/uncompr.c +59 -0
- data/third_party/zlib/zconf.h +511 -0
- data/third_party/zlib/zlib.h +1768 -0
- data/third_party/zlib/zutil.c +324 -0
- data/third_party/zlib/zutil.h +253 -0
- metadata +492 -25
- data/Rakefile +0 -63
- data/src/ruby/lib/grpc/grpc.so +0 -0
data/include/grpc/byte_buffer.h
CHANGED
@@ -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/
|
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 */
|
data/include/grpc/census.h
CHANGED
@@ -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
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
should be thought of as specific to single RPC/thread. The
|
78
|
-
|
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
|
-
/*
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
*
|
92
|
-
*
|
93
|
-
size_t
|
94
|
-
|
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)(
|
170
|
-
const char *(*get_rpc_method_name)(
|
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,
|
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,
|
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,
|
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,
|
266
|
-
|
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 ((
|
280
|
-
#define CENSUS_TRACE_RECORD_END_OP ((
|
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,
|
290
|
-
|
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
|
-
|
296
|
-
|
297
|
-
|
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
|
-
|
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,
|
412
|
-
|
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
|
-
|
443
|
-
|
444
|
-
|
445
|
-
|
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
|
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(
|
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
|
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(
|
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
|
}
|