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/compression.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
|
@@ -36,67 +36,43 @@
|
|
36
36
|
|
37
37
|
#include <stdlib.h>
|
38
38
|
|
39
|
-
#include <grpc/
|
39
|
+
#include <grpc/impl/codegen/port_platform.h>
|
40
|
+
#include <grpc/impl/codegen/compression_types.h>
|
40
41
|
|
41
42
|
#ifdef __cplusplus
|
42
43
|
extern "C" {
|
43
44
|
#endif
|
44
45
|
|
45
|
-
/** To be used in channel arguments */
|
46
|
-
#define GRPC_COMPRESSION_ALGORITHM_ARG "grpc.compression_algorithm"
|
47
|
-
#define GRPC_COMPRESSION_ALGORITHM_STATE_ARG "grpc.compression_algorithm_state"
|
48
|
-
|
49
|
-
/* The various compression algorithms supported by GRPC */
|
50
|
-
typedef enum {
|
51
|
-
GRPC_COMPRESS_NONE = 0,
|
52
|
-
GRPC_COMPRESS_DEFLATE,
|
53
|
-
GRPC_COMPRESS_GZIP,
|
54
|
-
/* TODO(ctiller): snappy */
|
55
|
-
GRPC_COMPRESS_ALGORITHMS_COUNT
|
56
|
-
} grpc_compression_algorithm;
|
57
|
-
|
58
|
-
typedef enum {
|
59
|
-
GRPC_COMPRESS_LEVEL_NONE = 0,
|
60
|
-
GRPC_COMPRESS_LEVEL_LOW,
|
61
|
-
GRPC_COMPRESS_LEVEL_MED,
|
62
|
-
GRPC_COMPRESS_LEVEL_HIGH,
|
63
|
-
GRPC_COMPRESS_LEVEL_COUNT
|
64
|
-
} grpc_compression_level;
|
65
|
-
|
66
|
-
typedef struct grpc_compression_options {
|
67
|
-
gpr_uint32 enabled_algorithms_bitset; /**< All algs are enabled by default */
|
68
|
-
grpc_compression_algorithm default_compression_algorithm; /**< for channel */
|
69
|
-
} grpc_compression_options;
|
70
|
-
|
71
46
|
/** Parses the first \a name_length bytes of \a name as a
|
72
47
|
* grpc_compression_algorithm instance, updating \a algorithm. Returns 1 upon
|
73
48
|
* success, 0 otherwise. */
|
74
|
-
int grpc_compression_algorithm_parse(
|
75
|
-
|
49
|
+
GRPC_API int grpc_compression_algorithm_parse(
|
50
|
+
const char *name, size_t name_length,
|
51
|
+
grpc_compression_algorithm *algorithm);
|
76
52
|
|
77
53
|
/** Updates \a name with the encoding name corresponding to a valid \a
|
78
54
|
* algorithm. Returns 1 upon success, 0 otherwise. */
|
79
|
-
int grpc_compression_algorithm_name(
|
80
|
-
|
55
|
+
GRPC_API int grpc_compression_algorithm_name(
|
56
|
+
grpc_compression_algorithm algorithm, char **name);
|
81
57
|
|
82
58
|
/** Returns the compression algorithm corresponding to \a level.
|
83
59
|
*
|
84
60
|
* It abort()s for unknown levels . */
|
85
|
-
grpc_compression_algorithm
|
86
|
-
|
61
|
+
GRPC_API grpc_compression_algorithm
|
62
|
+
grpc_compression_algorithm_for_level(grpc_compression_level level);
|
87
63
|
|
88
|
-
void grpc_compression_options_init(grpc_compression_options *opts);
|
64
|
+
GRPC_API void grpc_compression_options_init(grpc_compression_options *opts);
|
89
65
|
|
90
66
|
/** Mark \a algorithm as enabled in \a opts. */
|
91
|
-
void grpc_compression_options_enable_algorithm(
|
67
|
+
GRPC_API void grpc_compression_options_enable_algorithm(
|
92
68
|
grpc_compression_options *opts, grpc_compression_algorithm algorithm);
|
93
69
|
|
94
70
|
/** Mark \a algorithm as disabled in \a opts. */
|
95
|
-
void grpc_compression_options_disable_algorithm(
|
71
|
+
GRPC_API void grpc_compression_options_disable_algorithm(
|
96
72
|
grpc_compression_options *opts, grpc_compression_algorithm algorithm);
|
97
73
|
|
98
74
|
/** Returns true if \a algorithm is marked as enabled in \a opts. */
|
99
|
-
int grpc_compression_options_is_algorithm_enabled(
|
75
|
+
GRPC_API int grpc_compression_options_is_algorithm_enabled(
|
100
76
|
const grpc_compression_options *opts, grpc_compression_algorithm algorithm);
|
101
77
|
|
102
78
|
#ifdef __cplusplus
|
data/include/grpc/grpc.h
CHANGED
@@ -40,6 +40,9 @@
|
|
40
40
|
#include <grpc/byte_buffer.h>
|
41
41
|
#include <grpc/support/slice.h>
|
42
42
|
#include <grpc/support/time.h>
|
43
|
+
#include <grpc/impl/codegen/connectivity_state.h>
|
44
|
+
#include <grpc/impl/codegen/propagation_bits.h>
|
45
|
+
#include <grpc/impl/codegen/grpc_types.h>
|
43
46
|
|
44
47
|
#ifdef __cplusplus
|
45
48
|
extern "C" {
|
@@ -52,348 +55,11 @@ extern "C" {
|
|
52
55
|
* functionality lives in grpc_security.h.
|
53
56
|
*/
|
54
57
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
typedef struct grpc_alarm grpc_alarm;
|
61
|
-
|
62
|
-
/** The Channel interface allows creation of Call objects. */
|
63
|
-
typedef struct grpc_channel grpc_channel;
|
64
|
-
|
65
|
-
/** A server listens to some port and responds to request calls */
|
66
|
-
typedef struct grpc_server grpc_server;
|
67
|
-
|
68
|
-
/** A Call represents an RPC. When created, it is in a configuration state
|
69
|
-
allowing properties to be set until it is invoked. After invoke, the Call
|
70
|
-
can have messages written to it and read from it. */
|
71
|
-
typedef struct grpc_call grpc_call;
|
72
|
-
|
73
|
-
/** Type specifier for grpc_arg */
|
74
|
-
typedef enum {
|
75
|
-
GRPC_ARG_STRING,
|
76
|
-
GRPC_ARG_INTEGER,
|
77
|
-
GRPC_ARG_POINTER
|
78
|
-
} grpc_arg_type;
|
79
|
-
|
80
|
-
/** A single argument... each argument has a key and a value
|
81
|
-
|
82
|
-
A note on naming keys:
|
83
|
-
Keys are namespaced into groups, usually grouped by library, and are
|
84
|
-
keys for module XYZ are named XYZ.key1, XYZ.key2, etc. Module names must
|
85
|
-
be restricted to the regex [A-Za-z][_A-Za-z0-9]{,15}.
|
86
|
-
Key names must be restricted to the regex [A-Za-z][_A-Za-z0-9]{,47}.
|
87
|
-
|
88
|
-
GRPC core library keys are prefixed by grpc.
|
89
|
-
|
90
|
-
Library authors are strongly encouraged to \#define symbolic constants for
|
91
|
-
their keys so that it's possible to change them in the future. */
|
92
|
-
typedef struct {
|
93
|
-
grpc_arg_type type;
|
94
|
-
char *key;
|
95
|
-
union {
|
96
|
-
char *string;
|
97
|
-
int integer;
|
98
|
-
struct {
|
99
|
-
void *p;
|
100
|
-
void *(*copy)(void *p);
|
101
|
-
void (*destroy)(void *p);
|
102
|
-
} pointer;
|
103
|
-
} value;
|
104
|
-
} grpc_arg;
|
105
|
-
|
106
|
-
/** An array of arguments that can be passed around.
|
107
|
-
|
108
|
-
Used to set optional channel-level configuration.
|
109
|
-
These configuration options are modelled as key-value pairs as defined
|
110
|
-
by grpc_arg; keys are strings to allow easy backwards-compatible extension
|
111
|
-
by arbitrary parties.
|
112
|
-
All evaluation is performed at channel creation time (i.e. the values in
|
113
|
-
this structure need only live through the creation invocation). */
|
114
|
-
typedef struct {
|
115
|
-
size_t num_args;
|
116
|
-
grpc_arg *args;
|
117
|
-
} grpc_channel_args;
|
118
|
-
|
119
|
-
/* Channel argument keys: */
|
120
|
-
/** Enable census for tracing and stats collection */
|
121
|
-
#define GRPC_ARG_ENABLE_CENSUS "grpc.census"
|
122
|
-
/** Maximum number of concurrent incoming streams to allow on a http2
|
123
|
-
connection */
|
124
|
-
#define GRPC_ARG_MAX_CONCURRENT_STREAMS "grpc.max_concurrent_streams"
|
125
|
-
/** Maximum message length that the channel can receive */
|
126
|
-
#define GRPC_ARG_MAX_MESSAGE_LENGTH "grpc.max_message_length"
|
127
|
-
/** Initial sequence number for http2 transports */
|
128
|
-
#define GRPC_ARG_HTTP2_INITIAL_SEQUENCE_NUMBER \
|
129
|
-
"grpc.http2.initial_sequence_number"
|
130
|
-
/** Amount to read ahead on individual streams. Defaults to 64kb, larger
|
131
|
-
values can help throughput on high-latency connections.
|
132
|
-
NOTE: at some point we'd like to auto-tune this, and this parameter
|
133
|
-
will become a no-op. */
|
134
|
-
#define GRPC_ARG_HTTP2_STREAM_LOOKAHEAD_BYTES "grpc.http2.lookahead_bytes"
|
135
|
-
/** How much memory to use for hpack decoding */
|
136
|
-
#define GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_DECODER \
|
137
|
-
"grpc.http2.hpack_table_size.decoder"
|
138
|
-
/** How much memory to use for hpack encoding */
|
139
|
-
#define GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_ENCODER \
|
140
|
-
"grpc.http2.hpack_table_size.encoder"
|
141
|
-
/** Default authority to pass if none specified on call construction */
|
142
|
-
#define GRPC_ARG_DEFAULT_AUTHORITY "grpc.default_authority"
|
143
|
-
/** Primary user agent: goes at the start of the user-agent metadata
|
144
|
-
sent on each request */
|
145
|
-
#define GRPC_ARG_PRIMARY_USER_AGENT_STRING "grpc.primary_user_agent"
|
146
|
-
/** Secondary user agent: goes at the end of the user-agent metadata
|
147
|
-
sent on each request */
|
148
|
-
#define GRPC_ARG_SECONDARY_USER_AGENT_STRING "grpc.secondary_user_agent"
|
149
|
-
/* The caller of the secure_channel_create functions may override the target
|
150
|
-
name used for SSL host name checking using this channel argument which is of
|
151
|
-
type GRPC_ARG_STRING. This *should* be used for testing only.
|
152
|
-
If this argument is not specified, the name used for SSL host name checking
|
153
|
-
will be the target parameter (assuming that the secure channel is an SSL
|
154
|
-
channel). If this parameter is specified and the underlying is not an SSL
|
155
|
-
channel, it will just be ignored. */
|
156
|
-
#define GRPC_SSL_TARGET_NAME_OVERRIDE_ARG "grpc.ssl_target_name_override"
|
157
|
-
|
158
|
-
/** Connectivity state of a channel. */
|
159
|
-
typedef enum {
|
160
|
-
/** channel is idle */
|
161
|
-
GRPC_CHANNEL_IDLE,
|
162
|
-
/** channel is connecting */
|
163
|
-
GRPC_CHANNEL_CONNECTING,
|
164
|
-
/** channel is ready for work */
|
165
|
-
GRPC_CHANNEL_READY,
|
166
|
-
/** channel has seen a failure but expects to recover */
|
167
|
-
GRPC_CHANNEL_TRANSIENT_FAILURE,
|
168
|
-
/** channel has seen a failure that it cannot recover from */
|
169
|
-
GRPC_CHANNEL_FATAL_FAILURE
|
170
|
-
} grpc_connectivity_state;
|
171
|
-
|
172
|
-
/** Result of a grpc call. If the caller satisfies the prerequisites of a
|
173
|
-
particular operation, the grpc_call_error returned will be GRPC_CALL_OK.
|
174
|
-
Receiving any other value listed here is an indication of a bug in the
|
175
|
-
caller. */
|
176
|
-
typedef enum grpc_call_error {
|
177
|
-
/** everything went ok */
|
178
|
-
GRPC_CALL_OK = 0,
|
179
|
-
/** something failed, we don't know what */
|
180
|
-
GRPC_CALL_ERROR,
|
181
|
-
/** this method is not available on the server */
|
182
|
-
GRPC_CALL_ERROR_NOT_ON_SERVER,
|
183
|
-
/** this method is not available on the client */
|
184
|
-
GRPC_CALL_ERROR_NOT_ON_CLIENT,
|
185
|
-
/** this method must be called before server_accept */
|
186
|
-
GRPC_CALL_ERROR_ALREADY_ACCEPTED,
|
187
|
-
/** this method must be called before invoke */
|
188
|
-
GRPC_CALL_ERROR_ALREADY_INVOKED,
|
189
|
-
/** this method must be called after invoke */
|
190
|
-
GRPC_CALL_ERROR_NOT_INVOKED,
|
191
|
-
/** this call is already finished
|
192
|
-
(writes_done or write_status has already been called) */
|
193
|
-
GRPC_CALL_ERROR_ALREADY_FINISHED,
|
194
|
-
/** there is already an outstanding read/write operation on the call */
|
195
|
-
GRPC_CALL_ERROR_TOO_MANY_OPERATIONS,
|
196
|
-
/** the flags value was illegal for this call */
|
197
|
-
GRPC_CALL_ERROR_INVALID_FLAGS,
|
198
|
-
/** invalid metadata was passed to this call */
|
199
|
-
GRPC_CALL_ERROR_INVALID_METADATA,
|
200
|
-
/** invalid message was passed to this call */
|
201
|
-
GRPC_CALL_ERROR_INVALID_MESSAGE,
|
202
|
-
/** completion queue for notification has not been registered with the
|
203
|
-
server */
|
204
|
-
GRPC_CALL_ERROR_NOT_SERVER_COMPLETION_QUEUE,
|
205
|
-
/** this batch of operations leads to more operations than allowed */
|
206
|
-
GRPC_CALL_ERROR_BATCH_TOO_BIG
|
207
|
-
} grpc_call_error;
|
208
|
-
|
209
|
-
/* Write Flags: */
|
210
|
-
/** Hint that the write may be buffered and need not go out on the wire
|
211
|
-
immediately. GRPC is free to buffer the message until the next non-buffered
|
212
|
-
write, or until writes_done, but it need not buffer completely or at all. */
|
213
|
-
#define GRPC_WRITE_BUFFER_HINT (0x00000001u)
|
214
|
-
/** Force compression to be disabled for a particular write
|
215
|
-
(start_write/add_metadata). Illegal on invoke/accept. */
|
216
|
-
#define GRPC_WRITE_NO_COMPRESS (0x00000002u)
|
217
|
-
/** Mask of all valid flags. */
|
218
|
-
#define GRPC_WRITE_USED_MASK (GRPC_WRITE_BUFFER_HINT | GRPC_WRITE_NO_COMPRESS)
|
219
|
-
|
220
|
-
/** A single metadata element */
|
221
|
-
typedef struct grpc_metadata {
|
222
|
-
const char *key;
|
223
|
-
const char *value;
|
224
|
-
size_t value_length;
|
225
|
-
gpr_uint32 flags;
|
226
|
-
|
227
|
-
/** The following fields are reserved for grpc internal use.
|
228
|
-
There is no need to initialize them, and they will be set to garbage
|
229
|
-
during calls to grpc. */
|
230
|
-
struct {
|
231
|
-
void *obfuscated[4];
|
232
|
-
} internal_data;
|
233
|
-
} grpc_metadata;
|
234
|
-
|
235
|
-
/** The type of completion (for grpc_event) */
|
236
|
-
typedef enum grpc_completion_type {
|
237
|
-
/** Shutting down */
|
238
|
-
GRPC_QUEUE_SHUTDOWN,
|
239
|
-
/** No event before timeout */
|
240
|
-
GRPC_QUEUE_TIMEOUT,
|
241
|
-
/** Operation completion */
|
242
|
-
GRPC_OP_COMPLETE
|
243
|
-
} grpc_completion_type;
|
244
|
-
|
245
|
-
/** The result of an operation.
|
246
|
-
|
247
|
-
Returned by a completion queue when the operation started with tag. */
|
248
|
-
typedef struct grpc_event {
|
249
|
-
/** The type of the completion. */
|
250
|
-
grpc_completion_type type;
|
251
|
-
/** non-zero if the operation was successful, 0 upon failure.
|
252
|
-
Only GRPC_OP_COMPLETE can succeed or fail. */
|
253
|
-
int success;
|
254
|
-
/** The tag passed to grpc_call_start_batch etc to start this operation.
|
255
|
-
Only GRPC_OP_COMPLETE has a tag. */
|
256
|
-
void *tag;
|
257
|
-
} grpc_event;
|
258
|
-
|
259
|
-
typedef struct {
|
260
|
-
size_t count;
|
261
|
-
size_t capacity;
|
262
|
-
grpc_metadata *metadata;
|
263
|
-
} grpc_metadata_array;
|
264
|
-
|
265
|
-
void grpc_metadata_array_init(grpc_metadata_array *array);
|
266
|
-
void grpc_metadata_array_destroy(grpc_metadata_array *array);
|
267
|
-
|
268
|
-
typedef struct {
|
269
|
-
char *method;
|
270
|
-
size_t method_capacity;
|
271
|
-
char *host;
|
272
|
-
size_t host_capacity;
|
273
|
-
gpr_timespec deadline;
|
274
|
-
void *reserved;
|
275
|
-
} grpc_call_details;
|
276
|
-
|
277
|
-
void grpc_call_details_init(grpc_call_details *details);
|
278
|
-
void grpc_call_details_destroy(grpc_call_details *details);
|
279
|
-
|
280
|
-
typedef enum {
|
281
|
-
/** Send initial metadata: one and only one instance MUST be sent for each
|
282
|
-
call, unless the call was cancelled - in which case this can be skipped.
|
283
|
-
This op completes after all bytes of metadata have been accepted by
|
284
|
-
outgoing flow control. */
|
285
|
-
GRPC_OP_SEND_INITIAL_METADATA = 0,
|
286
|
-
/** Send a message: 0 or more of these operations can occur for each call.
|
287
|
-
This op completes after all bytes for the message have been accepted by
|
288
|
-
outgoing flow control. */
|
289
|
-
GRPC_OP_SEND_MESSAGE,
|
290
|
-
/** Send a close from the client: one and only one instance MUST be sent from
|
291
|
-
the client, unless the call was cancelled - in which case this can be
|
292
|
-
skipped.
|
293
|
-
This op completes after all bytes for the call (including the close)
|
294
|
-
have passed outgoing flow control. */
|
295
|
-
GRPC_OP_SEND_CLOSE_FROM_CLIENT,
|
296
|
-
/** Send status from the server: one and only one instance MUST be sent from
|
297
|
-
the server unless the call was cancelled - in which case this can be
|
298
|
-
skipped.
|
299
|
-
This op completes after all bytes for the call (including the status)
|
300
|
-
have passed outgoing flow control. */
|
301
|
-
GRPC_OP_SEND_STATUS_FROM_SERVER,
|
302
|
-
/** Receive initial metadata: one and only one MUST be made on the client,
|
303
|
-
must not be made on the server.
|
304
|
-
This op completes after all initial metadata has been read from the
|
305
|
-
peer. */
|
306
|
-
GRPC_OP_RECV_INITIAL_METADATA,
|
307
|
-
/** Receive a message: 0 or more of these operations can occur for each call.
|
308
|
-
This op completes after all bytes of the received message have been
|
309
|
-
read, or after a half-close has been received on this call. */
|
310
|
-
GRPC_OP_RECV_MESSAGE,
|
311
|
-
/** Receive status on the client: one and only one must be made on the client.
|
312
|
-
This operation always succeeds, meaning ops paired with this operation
|
313
|
-
will also appear to succeed, even though they may not have. In that case
|
314
|
-
the status will indicate some failure.
|
315
|
-
This op completes after all activity on the call has completed. */
|
316
|
-
GRPC_OP_RECV_STATUS_ON_CLIENT,
|
317
|
-
/** Receive close on the server: one and only one must be made on the
|
318
|
-
server.
|
319
|
-
This op completes after the close has been received by the server. */
|
320
|
-
GRPC_OP_RECV_CLOSE_ON_SERVER
|
321
|
-
} grpc_op_type;
|
322
|
-
|
323
|
-
/** Operation data: one field for each op type (except SEND_CLOSE_FROM_CLIENT
|
324
|
-
which has no arguments) */
|
325
|
-
typedef struct grpc_op {
|
326
|
-
/** Operation type, as defined by grpc_op_type */
|
327
|
-
grpc_op_type op;
|
328
|
-
/** Write flags bitset for grpc_begin_messages */
|
329
|
-
gpr_uint32 flags;
|
330
|
-
/** Reserved for future usage */
|
331
|
-
void *reserved;
|
332
|
-
union {
|
333
|
-
/** Reserved for future usage */
|
334
|
-
struct {
|
335
|
-
void *reserved[8];
|
336
|
-
} reserved;
|
337
|
-
struct {
|
338
|
-
size_t count;
|
339
|
-
grpc_metadata *metadata;
|
340
|
-
} send_initial_metadata;
|
341
|
-
grpc_byte_buffer *send_message;
|
342
|
-
struct {
|
343
|
-
size_t trailing_metadata_count;
|
344
|
-
grpc_metadata *trailing_metadata;
|
345
|
-
grpc_status_code status;
|
346
|
-
const char *status_details;
|
347
|
-
} send_status_from_server;
|
348
|
-
/** ownership of the array is with the caller, but ownership of the elements
|
349
|
-
stays with the call object (ie key, value members are owned by the call
|
350
|
-
object, recv_initial_metadata->array is owned by the caller).
|
351
|
-
After the operation completes, call grpc_metadata_array_destroy on this
|
352
|
-
value, or reuse it in a future op. */
|
353
|
-
grpc_metadata_array *recv_initial_metadata;
|
354
|
-
/** ownership of the byte buffer is moved to the caller; the caller must
|
355
|
-
call grpc_byte_buffer_destroy on this value, or reuse it in a future op.
|
356
|
-
*/
|
357
|
-
grpc_byte_buffer **recv_message;
|
358
|
-
struct {
|
359
|
-
/** ownership of the array is with the caller, but ownership of the
|
360
|
-
elements stays with the call object (ie key, value members are owned
|
361
|
-
by the call object, trailing_metadata->array is owned by the caller).
|
362
|
-
After the operation completes, call grpc_metadata_array_destroy on
|
363
|
-
this
|
364
|
-
value, or reuse it in a future op. */
|
365
|
-
grpc_metadata_array *trailing_metadata;
|
366
|
-
grpc_status_code *status;
|
367
|
-
/** status_details is a buffer owned by the application before the op
|
368
|
-
completes and after the op has completed. During the operation
|
369
|
-
status_details may be reallocated to a size larger than
|
370
|
-
*status_details_capacity, in which case *status_details_capacity will
|
371
|
-
be updated with the new array capacity.
|
372
|
-
|
373
|
-
Pre-allocating space:
|
374
|
-
size_t my_capacity = 8;
|
375
|
-
char *my_details = gpr_malloc(my_capacity);
|
376
|
-
x.status_details = &my_details;
|
377
|
-
x.status_details_capacity = &my_capacity;
|
378
|
-
|
379
|
-
Not pre-allocating space:
|
380
|
-
size_t my_capacity = 0;
|
381
|
-
char *my_details = NULL;
|
382
|
-
x.status_details = &my_details;
|
383
|
-
x.status_details_capacity = &my_capacity;
|
384
|
-
|
385
|
-
After the call:
|
386
|
-
gpr_free(my_details); */
|
387
|
-
char **status_details;
|
388
|
-
size_t *status_details_capacity;
|
389
|
-
} recv_status_on_client;
|
390
|
-
struct {
|
391
|
-
/** out argument, set to 1 if the call failed in any way (seen as a
|
392
|
-
cancellation on the server), or 0 if the call succeeded */
|
393
|
-
int *cancelled;
|
394
|
-
} recv_close_on_server;
|
395
|
-
} data;
|
396
|
-
} grpc_op;
|
58
|
+
GRPC_API void grpc_metadata_array_init(grpc_metadata_array *array);
|
59
|
+
GRPC_API void grpc_metadata_array_destroy(grpc_metadata_array *array);
|
60
|
+
|
61
|
+
GRPC_API void grpc_call_details_init(grpc_call_details *details);
|
62
|
+
GRPC_API void grpc_call_details_destroy(grpc_call_details *details);
|
397
63
|
|
398
64
|
/** Registers a plugin to be initialized and destroyed with the library.
|
399
65
|
|
@@ -403,27 +69,7 @@ typedef struct grpc_op {
|
|
403
69
|
(and hence so will \a init and \a destroy).
|
404
70
|
It is safe to pass NULL to either argument. Plugins are destroyed in
|
405
71
|
the reverse order they were initialized. */
|
406
|
-
void grpc_register_plugin(void (*init)(void), void (*destroy)(void));
|
407
|
-
|
408
|
-
/* Propagation bits: this can be bitwise or-ed to form propagation_mask for
|
409
|
-
* grpc_call */
|
410
|
-
/** Propagate deadline */
|
411
|
-
#define GRPC_PROPAGATE_DEADLINE ((gpr_uint32)1)
|
412
|
-
/** Propagate census context */
|
413
|
-
#define GRPC_PROPAGATE_CENSUS_STATS_CONTEXT ((gpr_uint32)2)
|
414
|
-
#define GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT ((gpr_uint32)4)
|
415
|
-
/** Propagate cancellation */
|
416
|
-
#define GRPC_PROPAGATE_CANCELLATION ((gpr_uint32)8)
|
417
|
-
|
418
|
-
/* Default propagation mask: clients of the core API are encouraged to encode
|
419
|
-
deltas from this in their implementations... ie write:
|
420
|
-
GRPC_PROPAGATE_DEFAULTS & ~GRPC_PROPAGATE_DEADLINE to disable deadline
|
421
|
-
propagation. Doing so gives flexibility in the future to define new
|
422
|
-
propagation types that are default inherited or not. */
|
423
|
-
#define GRPC_PROPAGATE_DEFAULTS \
|
424
|
-
((gpr_uint32)(( \
|
425
|
-
0xffff | GRPC_PROPAGATE_DEADLINE | GRPC_PROPAGATE_CENSUS_STATS_CONTEXT | \
|
426
|
-
GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT | GRPC_PROPAGATE_CANCELLATION)))
|
72
|
+
GRPC_API void grpc_register_plugin(void (*init)(void), void (*destroy)(void));
|
427
73
|
|
428
74
|
/** Initialize the grpc library.
|
429
75
|
|
@@ -431,7 +77,7 @@ void grpc_register_plugin(void (*init)(void), void (*destroy)(void));
|
|
431
77
|
(To avoid overhead, little checking is done, and some things may work. We
|
432
78
|
do not warrant that they will continue to do so in future revisions of this
|
433
79
|
library). */
|
434
|
-
void grpc_init(void);
|
80
|
+
GRPC_API void grpc_init(void);
|
435
81
|
|
436
82
|
/** Shut down the grpc library.
|
437
83
|
|
@@ -439,13 +85,13 @@ void grpc_init(void);
|
|
439
85
|
executing within the grpc library.
|
440
86
|
Prior to calling, all application owned grpc objects must have been
|
441
87
|
destroyed. */
|
442
|
-
void grpc_shutdown(void);
|
88
|
+
GRPC_API void grpc_shutdown(void);
|
443
89
|
|
444
90
|
/** Return a string representing the current version of grpc */
|
445
|
-
const char *grpc_version_string(void);
|
91
|
+
GRPC_API const char *grpc_version_string(void);
|
446
92
|
|
447
93
|
/** Create a completion queue */
|
448
|
-
grpc_completion_queue *grpc_completion_queue_create(void *reserved);
|
94
|
+
GRPC_API grpc_completion_queue *grpc_completion_queue_create(void *reserved);
|
449
95
|
|
450
96
|
/** Blocks until an event is available, the completion queue is being shut down,
|
451
97
|
or deadline is reached.
|
@@ -455,8 +101,9 @@ grpc_completion_queue *grpc_completion_queue_create(void *reserved);
|
|
455
101
|
|
456
102
|
Callers must not call grpc_completion_queue_next and
|
457
103
|
grpc_completion_queue_pluck simultaneously on the same completion queue. */
|
458
|
-
grpc_event grpc_completion_queue_next(grpc_completion_queue *cq,
|
459
|
-
|
104
|
+
GRPC_API grpc_event grpc_completion_queue_next(grpc_completion_queue *cq,
|
105
|
+
gpr_timespec deadline,
|
106
|
+
void *reserved);
|
460
107
|
|
461
108
|
/** Blocks until an event with tag 'tag' is available, the completion queue is
|
462
109
|
being shutdown or deadline is reached.
|
@@ -469,8 +116,9 @@ grpc_event grpc_completion_queue_next(grpc_completion_queue *cq,
|
|
469
116
|
|
470
117
|
Completion queues support a maximum of GRPC_MAX_COMPLETION_QUEUE_PLUCKERS
|
471
118
|
concurrently executing plucks at any time. */
|
472
|
-
grpc_event
|
473
|
-
|
119
|
+
GRPC_API grpc_event
|
120
|
+
grpc_completion_queue_pluck(grpc_completion_queue *cq, void *tag,
|
121
|
+
gpr_timespec deadline, void *reserved);
|
474
122
|
|
475
123
|
/** Maximum number of outstanding grpc_completion_queue_pluck executions per
|
476
124
|
completion queue */
|
@@ -483,11 +131,11 @@ grpc_event grpc_completion_queue_pluck(grpc_completion_queue *cq, void *tag,
|
|
483
131
|
|
484
132
|
After calling this function applications should ensure that no
|
485
133
|
NEW work is added to be published on this completion queue. */
|
486
|
-
void grpc_completion_queue_shutdown(grpc_completion_queue *cq);
|
134
|
+
GRPC_API void grpc_completion_queue_shutdown(grpc_completion_queue *cq);
|
487
135
|
|
488
136
|
/** Destroy a completion queue. The caller must ensure that the queue is
|
489
137
|
drained and no threads are executing grpc_completion_queue_next */
|
490
|
-
void grpc_completion_queue_destroy(grpc_completion_queue *cq);
|
138
|
+
GRPC_API void grpc_completion_queue_destroy(grpc_completion_queue *cq);
|
491
139
|
|
492
140
|
/** Create a completion queue alarm instance associated to \a cq.
|
493
141
|
*
|
@@ -495,26 +143,27 @@ void grpc_completion_queue_destroy(grpc_completion_queue *cq);
|
|
495
143
|
* grpc_alarm_cancel), an event with tag \a tag will be added to \a cq. If the
|
496
144
|
* alarm expired, the event's success bit will be true, false otherwise (ie,
|
497
145
|
* upon cancellation). */
|
498
|
-
grpc_alarm *grpc_alarm_create(grpc_completion_queue *cq,
|
499
|
-
|
146
|
+
GRPC_API grpc_alarm *grpc_alarm_create(grpc_completion_queue *cq,
|
147
|
+
gpr_timespec deadline, void *tag);
|
500
148
|
|
501
149
|
/** Cancel a completion queue alarm. Calling this function over an alarm that
|
502
150
|
* has already fired has no effect. */
|
503
|
-
void grpc_alarm_cancel(grpc_alarm *alarm);
|
151
|
+
GRPC_API void grpc_alarm_cancel(grpc_alarm *alarm);
|
504
152
|
|
505
153
|
/** Destroy the given completion queue alarm, cancelling it in the process. */
|
506
|
-
void grpc_alarm_destroy(grpc_alarm *alarm);
|
154
|
+
GRPC_API void grpc_alarm_destroy(grpc_alarm *alarm);
|
507
155
|
|
508
156
|
/** Check the connectivity state of a channel. */
|
509
|
-
grpc_connectivity_state
|
510
|
-
|
157
|
+
GRPC_API grpc_connectivity_state
|
158
|
+
grpc_channel_check_connectivity_state(grpc_channel *channel,
|
159
|
+
int try_to_connect);
|
511
160
|
|
512
161
|
/** Watch for a change in connectivity state.
|
513
162
|
Once the channel connectivity state is different from last_observed_state,
|
514
163
|
tag will be enqueued on cq with success=1.
|
515
164
|
If deadline expires BEFORE the state is changed, tag will be enqueued on cq
|
516
165
|
with success=0. */
|
517
|
-
void grpc_channel_watch_connectivity_state(
|
166
|
+
GRPC_API void grpc_channel_watch_connectivity_state(
|
518
167
|
grpc_channel *channel, grpc_connectivity_state last_observed_state,
|
519
168
|
gpr_timespec deadline, grpc_completion_queue *cq, void *tag);
|
520
169
|
|
@@ -524,25 +173,25 @@ void grpc_channel_watch_connectivity_state(
|
|
524
173
|
If parent_call is non-NULL, it must be a server-side call. It will be used
|
525
174
|
to propagate properties from the server call to this new client call.
|
526
175
|
*/
|
527
|
-
grpc_call *grpc_channel_create_call(
|
528
|
-
|
529
|
-
|
530
|
-
|
531
|
-
const char *method, const char *host,
|
532
|
-
gpr_timespec deadline, void *reserved);
|
176
|
+
GRPC_API grpc_call *grpc_channel_create_call(
|
177
|
+
grpc_channel *channel, grpc_call *parent_call, uint32_t propagation_mask,
|
178
|
+
grpc_completion_queue *completion_queue, const char *method,
|
179
|
+
const char *host, gpr_timespec deadline, void *reserved);
|
533
180
|
|
534
181
|
/** Ping the channels peer (load balanced channels will select one sub-channel
|
535
182
|
to ping); if the channel is not connected, posts a failed. */
|
536
|
-
void grpc_channel_ping(grpc_channel *channel,
|
537
|
-
|
183
|
+
GRPC_API void grpc_channel_ping(grpc_channel *channel,
|
184
|
+
grpc_completion_queue *cq, void *tag,
|
185
|
+
void *reserved);
|
538
186
|
|
539
187
|
/** Pre-register a method/host pair on a channel. */
|
540
|
-
void *grpc_channel_register_call(grpc_channel *channel,
|
541
|
-
|
188
|
+
GRPC_API void *grpc_channel_register_call(grpc_channel *channel,
|
189
|
+
const char *method, const char *host,
|
190
|
+
void *reserved);
|
542
191
|
|
543
192
|
/** Create a call given a handle returned from grpc_channel_register_call */
|
544
|
-
grpc_call *grpc_channel_create_registered_call(
|
545
|
-
grpc_channel *channel, grpc_call *parent_call,
|
193
|
+
GRPC_API grpc_call *grpc_channel_create_registered_call(
|
194
|
+
grpc_channel *channel, grpc_call *parent_call, uint32_t propagation_mask,
|
546
195
|
grpc_completion_queue *completion_queue, void *registered_call_handle,
|
547
196
|
gpr_timespec deadline, void *reserved);
|
548
197
|
|
@@ -557,8 +206,9 @@ grpc_call *grpc_channel_create_registered_call(
|
|
557
206
|
needs to be synchronized. As an optimization, you may synchronize batches
|
558
207
|
containing just send operations independently from batches containing just
|
559
208
|
receive operations. */
|
560
|
-
grpc_call_error grpc_call_start_batch(grpc_call *call,
|
561
|
-
|
209
|
+
GRPC_API grpc_call_error grpc_call_start_batch(grpc_call *call,
|
210
|
+
const grpc_op *ops, size_t nops,
|
211
|
+
void *tag, void *reserved);
|
562
212
|
|
563
213
|
/** Returns a newly allocated string representing the endpoint to which this
|
564
214
|
call is communicating with. The string is in the uri format accepted by
|
@@ -568,38 +218,36 @@ grpc_call_error grpc_call_start_batch(grpc_call *call, const grpc_op *ops,
|
|
568
218
|
WARNING: this value is never authenticated or subject to any security
|
569
219
|
related code. It must not be used for any authentication related
|
570
220
|
functionality. Instead, use grpc_auth_context. */
|
571
|
-
char *grpc_call_get_peer(grpc_call *call);
|
221
|
+
GRPC_API char *grpc_call_get_peer(grpc_call *call);
|
572
222
|
|
573
223
|
struct census_context;
|
574
224
|
|
575
225
|
/* Set census context for a call; Must be called before first call to
|
576
226
|
grpc_call_start_batch(). */
|
577
|
-
void grpc_census_call_set_context(grpc_call *call,
|
578
|
-
|
227
|
+
GRPC_API void grpc_census_call_set_context(grpc_call *call,
|
228
|
+
struct census_context *context);
|
579
229
|
|
580
230
|
/* Retrieve the calls current census context. */
|
581
|
-
struct census_context *grpc_census_call_get_context(grpc_call *call);
|
231
|
+
GRPC_API struct census_context *grpc_census_call_get_context(grpc_call *call);
|
582
232
|
|
583
233
|
/** Return a newly allocated string representing the target a channel was
|
584
234
|
created for. */
|
585
|
-
char *grpc_channel_get_target(grpc_channel *channel);
|
235
|
+
GRPC_API char *grpc_channel_get_target(grpc_channel *channel);
|
586
236
|
|
587
237
|
/** Create a client channel to 'target'. Additional channel level configuration
|
588
238
|
MAY be provided by grpc_channel_args, though the expectation is that most
|
589
239
|
clients will want to simply pass NULL. See grpc_channel_args definition for
|
590
240
|
more on this. The data in 'args' need only live through the invocation of
|
591
241
|
this function. */
|
592
|
-
grpc_channel *grpc_insecure_channel_create(
|
593
|
-
|
594
|
-
void *reserved);
|
242
|
+
GRPC_API grpc_channel *grpc_insecure_channel_create(
|
243
|
+
const char *target, const grpc_channel_args *args, void *reserved);
|
595
244
|
|
596
245
|
/** Create a lame client: this client fails every operation attempted on it. */
|
597
|
-
grpc_channel *grpc_lame_client_channel_create(
|
598
|
-
|
599
|
-
const char *error_message);
|
246
|
+
GRPC_API grpc_channel *grpc_lame_client_channel_create(
|
247
|
+
const char *target, grpc_status_code error_code, const char *error_message);
|
600
248
|
|
601
249
|
/** Close and destroy a grpc channel */
|
602
|
-
void grpc_channel_destroy(grpc_channel *channel);
|
250
|
+
GRPC_API void grpc_channel_destroy(grpc_channel *channel);
|
603
251
|
|
604
252
|
/* Error handling for grpc_call
|
605
253
|
Most grpc_call functions return a grpc_error. If the error is not GRPC_OK
|
@@ -612,7 +260,7 @@ void grpc_channel_destroy(grpc_channel *channel);
|
|
612
260
|
THREAD-SAFETY grpc_call_cancel and grpc_call_cancel_with_status
|
613
261
|
are thread-safe, and can be called at any point before grpc_call_destroy
|
614
262
|
is called.*/
|
615
|
-
grpc_call_error grpc_call_cancel(grpc_call *call, void *reserved);
|
263
|
+
GRPC_API grpc_call_error grpc_call_cancel(grpc_call *call, void *reserved);
|
616
264
|
|
617
265
|
/** Called by clients to cancel an RPC on the server.
|
618
266
|
Can be called multiple times, from any thread.
|
@@ -620,14 +268,13 @@ grpc_call_error grpc_call_cancel(grpc_call *call, void *reserved);
|
|
620
268
|
and description passed in.
|
621
269
|
Importantly, this function does not send status nor description to the
|
622
270
|
remote endpoint. */
|
623
|
-
grpc_call_error
|
624
|
-
|
625
|
-
|
626
|
-
void *reserved);
|
271
|
+
GRPC_API grpc_call_error
|
272
|
+
grpc_call_cancel_with_status(grpc_call *call, grpc_status_code status,
|
273
|
+
const char *description, void *reserved);
|
627
274
|
|
628
275
|
/** Destroy a call.
|
629
276
|
THREAD SAFETY: grpc_call_destroy is thread-compatible */
|
630
|
-
void grpc_call_destroy(grpc_call *call);
|
277
|
+
GRPC_API void grpc_call_destroy(grpc_call *call);
|
631
278
|
|
632
279
|
/** Request notification of a new call.
|
633
280
|
Once a call is received, a notification tagged with \a tag_new is added to
|
@@ -637,11 +284,13 @@ void grpc_call_destroy(grpc_call *call);
|
|
637
284
|
to \a cq_bound_to_call.
|
638
285
|
Note that \a cq_for_notification must have been registered to the server via
|
639
286
|
\a grpc_server_register_completion_queue. */
|
640
|
-
grpc_call_error
|
641
|
-
|
642
|
-
|
643
|
-
|
644
|
-
|
287
|
+
GRPC_API grpc_call_error
|
288
|
+
grpc_server_request_call(grpc_server *server, grpc_call **call,
|
289
|
+
grpc_call_details *details,
|
290
|
+
grpc_metadata_array *request_metadata,
|
291
|
+
grpc_completion_queue *cq_bound_to_call,
|
292
|
+
grpc_completion_queue *cq_for_notification,
|
293
|
+
void *tag_new);
|
645
294
|
|
646
295
|
/** Registers a method in the server.
|
647
296
|
Methods to this (host, method) pair will not be reported by
|
@@ -650,13 +299,14 @@ grpc_call_error grpc_server_request_call(
|
|
650
299
|
registered_method (as returned by this function).
|
651
300
|
Must be called before grpc_server_start.
|
652
301
|
Returns NULL on failure. */
|
653
|
-
void *grpc_server_register_method(grpc_server *server,
|
654
|
-
|
302
|
+
GRPC_API void *grpc_server_register_method(grpc_server *server,
|
303
|
+
const char *method,
|
304
|
+
const char *host);
|
655
305
|
|
656
306
|
/** Request notification of a new pre-registered call. 'cq_for_notification'
|
657
307
|
must have been registered to the server via
|
658
308
|
grpc_server_register_completion_queue. */
|
659
|
-
grpc_call_error grpc_server_request_registered_call(
|
309
|
+
GRPC_API grpc_call_error grpc_server_request_registered_call(
|
660
310
|
grpc_server *server, void *registered_method, grpc_call **call,
|
661
311
|
gpr_timespec *deadline, grpc_metadata_array *request_metadata,
|
662
312
|
grpc_byte_buffer **optional_payload,
|
@@ -667,23 +317,25 @@ grpc_call_error grpc_server_request_registered_call(
|
|
667
317
|
be specified with args. If no additional configuration is needed, args can
|
668
318
|
be NULL. See grpc_channel_args for more. The data in 'args' need only live
|
669
319
|
through the invocation of this function. */
|
670
|
-
grpc_server *grpc_server_create(const grpc_channel_args *args,
|
320
|
+
GRPC_API grpc_server *grpc_server_create(const grpc_channel_args *args,
|
321
|
+
void *reserved);
|
671
322
|
|
672
323
|
/** Register a completion queue with the server. Must be done for any
|
673
324
|
notification completion queue that is passed to grpc_server_request_*_call
|
674
325
|
and to grpc_server_shutdown_and_notify. Must be performed prior to
|
675
326
|
grpc_server_start. */
|
676
|
-
void grpc_server_register_completion_queue(grpc_server *server,
|
677
|
-
|
678
|
-
|
327
|
+
GRPC_API void grpc_server_register_completion_queue(grpc_server *server,
|
328
|
+
grpc_completion_queue *cq,
|
329
|
+
void *reserved);
|
679
330
|
|
680
331
|
/** Add a HTTP2 over plaintext over tcp listener.
|
681
332
|
Returns bound port number on success, 0 on failure.
|
682
333
|
REQUIRES: server not started */
|
683
|
-
int grpc_server_add_insecure_http2_port(grpc_server *server,
|
334
|
+
GRPC_API int grpc_server_add_insecure_http2_port(grpc_server *server,
|
335
|
+
const char *addr);
|
684
336
|
|
685
337
|
/** Start a server - tells all listeners to start listening */
|
686
|
-
void grpc_server_start(grpc_server *server);
|
338
|
+
GRPC_API void grpc_server_start(grpc_server *server);
|
687
339
|
|
688
340
|
/** Begin shutting down a server.
|
689
341
|
After completion, no new calls or connections will be admitted.
|
@@ -692,18 +344,19 @@ void grpc_server_start(grpc_server *server);
|
|
692
344
|
Shutdown is idempotent, and all tags will be notified at once if multiple
|
693
345
|
grpc_server_shutdown_and_notify calls are made. 'cq' must have been
|
694
346
|
registered to this server via grpc_server_register_completion_queue. */
|
695
|
-
void grpc_server_shutdown_and_notify(grpc_server *server,
|
696
|
-
|
347
|
+
GRPC_API void grpc_server_shutdown_and_notify(grpc_server *server,
|
348
|
+
grpc_completion_queue *cq,
|
349
|
+
void *tag);
|
697
350
|
|
698
351
|
/** Cancel all in-progress calls.
|
699
352
|
Only usable after shutdown. */
|
700
|
-
void grpc_server_cancel_all_calls(grpc_server *server);
|
353
|
+
GRPC_API void grpc_server_cancel_all_calls(grpc_server *server);
|
701
354
|
|
702
355
|
/** Destroy a server.
|
703
356
|
Shutdown must have completed beforehand (i.e. all tags generated by
|
704
357
|
grpc_server_shutdown_and_notify must have been received, and at least
|
705
358
|
one call to grpc_server_shutdown_and_notify must have been made). */
|
706
|
-
void grpc_server_destroy(grpc_server *server);
|
359
|
+
GRPC_API void grpc_server_destroy(grpc_server *server);
|
707
360
|
|
708
361
|
/** Enable or disable a tracer.
|
709
362
|
|
@@ -713,17 +366,18 @@ void grpc_server_destroy(grpc_server *server);
|
|
713
366
|
|
714
367
|
Use of this function is not strictly thread-safe, but the
|
715
368
|
thread-safety issues raised by it should not be of concern. */
|
716
|
-
int grpc_tracer_set_enabled(const char *name, int enabled);
|
369
|
+
GRPC_API int grpc_tracer_set_enabled(const char *name, int enabled);
|
717
370
|
|
718
371
|
/** Check whether a metadata key is legal (will be accepted by core) */
|
719
|
-
int grpc_header_key_is_legal(const char *key, size_t length);
|
372
|
+
GRPC_API int grpc_header_key_is_legal(const char *key, size_t length);
|
720
373
|
|
721
374
|
/** Check whether a non-binary metadata value is legal (will be accepted by
|
722
375
|
core) */
|
723
|
-
int grpc_header_nonbin_value_is_legal(const char *value,
|
376
|
+
GRPC_API int grpc_header_nonbin_value_is_legal(const char *value,
|
377
|
+
size_t length);
|
724
378
|
|
725
379
|
/** Check whether a metadata key corresponds to a binary value */
|
726
|
-
int grpc_is_binary_header(const char *key, size_t length);
|
380
|
+
GRPC_API int grpc_is_binary_header(const char *key, size_t length);
|
727
381
|
|
728
382
|
#ifdef __cplusplus
|
729
383
|
}
|