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
@@ -0,0 +1,362 @@
|
|
1
|
+
/*
|
2
|
+
*
|
3
|
+
* Copyright 2015-2016, Google Inc.
|
4
|
+
* All rights reserved.
|
5
|
+
*
|
6
|
+
* Redistribution and use in source and binary forms, with or without
|
7
|
+
* modification, are permitted provided that the following conditions are
|
8
|
+
* met:
|
9
|
+
*
|
10
|
+
* * Redistributions of source code must retain the above copyright
|
11
|
+
* notice, this list of conditions and the following disclaimer.
|
12
|
+
* * Redistributions in binary form must reproduce the above
|
13
|
+
* copyright notice, this list of conditions and the following disclaimer
|
14
|
+
* in the documentation and/or other materials provided with the
|
15
|
+
* distribution.
|
16
|
+
* * Neither the name of Google Inc. nor the names of its
|
17
|
+
* contributors may be used to endorse or promote products derived from
|
18
|
+
* this software without specific prior written permission.
|
19
|
+
*
|
20
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
21
|
+
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
22
|
+
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
23
|
+
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
24
|
+
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
25
|
+
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
26
|
+
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
27
|
+
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
28
|
+
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
29
|
+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
30
|
+
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
31
|
+
*
|
32
|
+
*/
|
33
|
+
|
34
|
+
#ifndef GRPC_IMPL_CODEGEN_PORT_PLATFORM_H
|
35
|
+
#define GRPC_IMPL_CODEGEN_PORT_PLATFORM_H
|
36
|
+
|
37
|
+
/* Get windows.h included everywhere (we need it) */
|
38
|
+
#if defined(_WIN64) || defined(WIN64) || defined(_WIN32) || defined(WIN32)
|
39
|
+
#ifndef WIN32_LEAN_AND_MEAN
|
40
|
+
#define GRPC_WIN32_LEAN_AND_MEAN_WAS_NOT_DEFINED
|
41
|
+
#define WIN32_LEAN_AND_MEAN
|
42
|
+
#endif /* WIN32_LEAN_AND_MEAN */
|
43
|
+
|
44
|
+
#ifndef NOMINMAX
|
45
|
+
#define GRPC_NOMINMX_WAS_NOT_DEFINED
|
46
|
+
#define NOMINMAX
|
47
|
+
#endif /* NOMINMAX */
|
48
|
+
|
49
|
+
#ifndef _WIN32_WINNT
|
50
|
+
#error \
|
51
|
+
"Please compile grpc with _WIN32_WINNT of at least 0x600 (aka Windows Vista)"
|
52
|
+
#else /* !defined(_WIN32_WINNT) */
|
53
|
+
#if (_WIN32_WINNT < 0x0600)
|
54
|
+
#error \
|
55
|
+
"Please compile grpc with _WIN32_WINNT of at least 0x600 (aka Windows Vista)"
|
56
|
+
#endif /* _WIN32_WINNT < 0x0600 */
|
57
|
+
#endif /* defined(_WIN32_WINNT) */
|
58
|
+
|
59
|
+
#include <windows.h>
|
60
|
+
|
61
|
+
#ifdef GRPC_WIN32_LEAN_AND_MEAN_WAS_NOT_DEFINED
|
62
|
+
#undef GRPC_WIN32_LEAN_AND_MEAN_WAS_NOT_DEFINED
|
63
|
+
#undef WIN32_LEAN_AND_MEAN
|
64
|
+
#endif /* GRPC_WIN32_LEAN_AND_MEAN_WAS_NOT_DEFINED */
|
65
|
+
|
66
|
+
#ifdef GRPC_NOMINMAX_WAS_NOT_DEFINED
|
67
|
+
#undef GRPC_NOMINMAX_WAS_NOT_DEFINED
|
68
|
+
#undef NOMINMAX
|
69
|
+
#endif /* GRPC_WIN32_LEAN_AND_MEAN_WAS_NOT_DEFINED */
|
70
|
+
#endif /* defined(_WIN64) || defined(WIN64) || defined(_WIN32) || \
|
71
|
+
defined(WIN32) */
|
72
|
+
|
73
|
+
/* Override this file with one for your platform if you need to redefine
|
74
|
+
things. */
|
75
|
+
|
76
|
+
#if !defined(GPR_NO_AUTODETECT_PLATFORM)
|
77
|
+
#if defined(_WIN64) || defined(WIN64)
|
78
|
+
#define GPR_PLATFORM_STRING "windows"
|
79
|
+
#define GPR_WIN32 1
|
80
|
+
#define GPR_ARCH_64 1
|
81
|
+
#define GPR_GETPID_IN_PROCESS_H 1
|
82
|
+
#define GPR_WINSOCK_SOCKET 1
|
83
|
+
#define GPR_WINDOWS_SUBPROCESS 1
|
84
|
+
#ifdef __GNUC__
|
85
|
+
#define GPR_GCC_ATOMIC 1
|
86
|
+
#define GPR_GCC_TLS 1
|
87
|
+
#else
|
88
|
+
#define GPR_WIN32_ATOMIC 1
|
89
|
+
#define GPR_MSVC_TLS 1
|
90
|
+
#endif
|
91
|
+
#define GPR_WINDOWS_CRASH_HANDLER 1
|
92
|
+
#elif defined(_WIN32) || defined(WIN32)
|
93
|
+
#define GPR_PLATFORM_STRING "windows"
|
94
|
+
#define GPR_ARCH_32 1
|
95
|
+
#define GPR_WIN32 1
|
96
|
+
#define GPR_GETPID_IN_PROCESS_H 1
|
97
|
+
#define GPR_WINSOCK_SOCKET 1
|
98
|
+
#define GPR_WINDOWS_SUBPROCESS 1
|
99
|
+
#ifdef __GNUC__
|
100
|
+
#define GPR_GCC_ATOMIC 1
|
101
|
+
#define GPR_GCC_TLS 1
|
102
|
+
#else
|
103
|
+
#define GPR_WIN32_ATOMIC 1
|
104
|
+
#define GPR_MSVC_TLS 1
|
105
|
+
#endif
|
106
|
+
#define GPR_WINDOWS_CRASH_HANDLER 1
|
107
|
+
#elif defined(ANDROID) || defined(__ANDROID__)
|
108
|
+
#define GPR_PLATFORM_STRING "android"
|
109
|
+
#define GPR_ANDROID 1
|
110
|
+
#define GPR_ARCH_32 1
|
111
|
+
#define GPR_CPU_LINUX 1
|
112
|
+
#define GPR_GCC_SYNC 1
|
113
|
+
#define GPR_GCC_TLS 1
|
114
|
+
#define GPR_POSIX_MULTIPOLL_WITH_POLL 1
|
115
|
+
#define GPR_POSIX_WAKEUP_FD 1
|
116
|
+
#define GPR_LINUX_EVENTFD 1
|
117
|
+
#define GPR_POSIX_SOCKET 1
|
118
|
+
#define GPR_POSIX_SOCKETADDR 1
|
119
|
+
#define GPR_POSIX_SOCKETUTILS 1
|
120
|
+
#define GPR_POSIX_ENV 1
|
121
|
+
#define GPR_POSIX_FILE 1
|
122
|
+
#define GPR_POSIX_STRING 1
|
123
|
+
#define GPR_POSIX_SUBPROCESS 1
|
124
|
+
#define GPR_POSIX_SYNC 1
|
125
|
+
#define GPR_POSIX_TIME 1
|
126
|
+
#define GPR_GETPID_IN_UNISTD_H 1
|
127
|
+
#define GPR_HAVE_MSG_NOSIGNAL 1
|
128
|
+
#elif defined(__linux__)
|
129
|
+
#define GPR_POSIX_CRASH_HANDLER 1
|
130
|
+
#define GPR_PLATFORM_STRING "linux"
|
131
|
+
#ifndef _BSD_SOURCE
|
132
|
+
#define _BSD_SOURCE
|
133
|
+
#endif
|
134
|
+
#ifndef _DEFAULT_SOURCE
|
135
|
+
#define _DEFAULT_SOURCE
|
136
|
+
#endif
|
137
|
+
#ifndef _GNU_SOURCE
|
138
|
+
#define _GNU_SOURCE
|
139
|
+
#endif
|
140
|
+
#include <features.h>
|
141
|
+
#define GPR_CPU_LINUX 1
|
142
|
+
#define GPR_GCC_ATOMIC 1
|
143
|
+
#define GPR_GCC_TLS 1
|
144
|
+
#define GPR_LINUX 1
|
145
|
+
#define GPR_LINUX_MULTIPOLL_WITH_EPOLL 1
|
146
|
+
#define GPR_POSIX_WAKEUP_FD 1
|
147
|
+
#define GPR_POSIX_SOCKET 1
|
148
|
+
#define GPR_POSIX_SOCKETADDR 1
|
149
|
+
#ifdef __GLIBC_PREREQ
|
150
|
+
#if __GLIBC_PREREQ(2, 9)
|
151
|
+
#define GPR_LINUX_EVENTFD 1
|
152
|
+
#endif
|
153
|
+
#if __GLIBC_PREREQ(2, 10)
|
154
|
+
#define GPR_LINUX_SOCKETUTILS 1
|
155
|
+
#endif
|
156
|
+
#endif
|
157
|
+
#define GPR_LINUX_ENV 1
|
158
|
+
#ifndef GPR_LINUX_EVENTFD
|
159
|
+
#define GPR_POSIX_NO_SPECIAL_WAKEUP_FD 1
|
160
|
+
#endif
|
161
|
+
#ifndef GPR_LINUX_SOCKETUTILS
|
162
|
+
#define GPR_POSIX_SOCKETUTILS
|
163
|
+
#endif
|
164
|
+
#define GPR_POSIX_FILE 1
|
165
|
+
#define GPR_POSIX_STRING 1
|
166
|
+
#define GPR_POSIX_SUBPROCESS 1
|
167
|
+
#define GPR_POSIX_SYNC 1
|
168
|
+
#define GPR_POSIX_TIME 1
|
169
|
+
#define GPR_GETPID_IN_UNISTD_H 1
|
170
|
+
#define GPR_HAVE_MSG_NOSIGNAL 1
|
171
|
+
#ifdef _LP64
|
172
|
+
#define GPR_ARCH_64 1
|
173
|
+
#else /* _LP64 */
|
174
|
+
#define GPR_ARCH_32 1
|
175
|
+
#endif /* _LP64 */
|
176
|
+
#elif defined(__APPLE__)
|
177
|
+
#include <TargetConditionals.h>
|
178
|
+
#ifndef _BSD_SOURCE
|
179
|
+
#define _BSD_SOURCE
|
180
|
+
#endif
|
181
|
+
#define GPR_MSG_IOVLEN_TYPE int
|
182
|
+
#if TARGET_OS_IPHONE
|
183
|
+
#define GPR_FORBID_UNREACHABLE_CODE 1
|
184
|
+
#define GPR_PLATFORM_STRING "ios"
|
185
|
+
#define GPR_CPU_IPHONE 1
|
186
|
+
#define GPR_PTHREAD_TLS 1
|
187
|
+
#else /* TARGET_OS_IPHONE */
|
188
|
+
#define GPR_PLATFORM_STRING "osx"
|
189
|
+
#define GPR_CPU_POSIX 1
|
190
|
+
#define GPR_GCC_TLS 1
|
191
|
+
#define GPR_POSIX_CRASH_HANDLER 1
|
192
|
+
#endif
|
193
|
+
#define GPR_GCC_ATOMIC 1
|
194
|
+
#define GPR_POSIX_LOG 1
|
195
|
+
#define GPR_POSIX_MULTIPOLL_WITH_POLL 1
|
196
|
+
#define GPR_POSIX_WAKEUP_FD 1
|
197
|
+
#define GPR_POSIX_NO_SPECIAL_WAKEUP_FD 1
|
198
|
+
#define GPR_POSIX_SOCKET 1
|
199
|
+
#define GPR_POSIX_SOCKETADDR 1
|
200
|
+
#define GPR_POSIX_SOCKETUTILS 1
|
201
|
+
#define GPR_POSIX_ENV 1
|
202
|
+
#define GPR_POSIX_FILE 1
|
203
|
+
#define GPR_POSIX_STRING 1
|
204
|
+
#define GPR_POSIX_SUBPROCESS 1
|
205
|
+
#define GPR_POSIX_SYNC 1
|
206
|
+
#define GPR_POSIX_TIME 1
|
207
|
+
#define GPR_GETPID_IN_UNISTD_H 1
|
208
|
+
#define GPR_HAVE_SO_NOSIGPIPE 1
|
209
|
+
#ifdef _LP64
|
210
|
+
#define GPR_ARCH_64 1
|
211
|
+
#else /* _LP64 */
|
212
|
+
#define GPR_ARCH_32 1
|
213
|
+
#endif /* _LP64 */
|
214
|
+
#elif defined(__FreeBSD__)
|
215
|
+
#define GPR_PLATFORM_STRING "freebsd"
|
216
|
+
#ifndef _BSD_SOURCE
|
217
|
+
#define _BSD_SOURCE
|
218
|
+
#endif
|
219
|
+
#define GPR_CPU_POSIX 1
|
220
|
+
#define GPR_GCC_ATOMIC 1
|
221
|
+
#define GPR_GCC_TLS 1
|
222
|
+
#define GPR_POSIX_LOG 1
|
223
|
+
#define GPR_POSIX_MULTIPOLL_WITH_POLL 1
|
224
|
+
#define GPR_POSIX_WAKEUP_FD 1
|
225
|
+
#define GPR_POSIX_NO_SPECIAL_WAKEUP_FD 1
|
226
|
+
#define GPR_POSIX_SOCKET 1
|
227
|
+
#define GPR_POSIX_SOCKETADDR 1
|
228
|
+
#define GPR_POSIX_SOCKETUTILS 1
|
229
|
+
#define GPR_POSIX_ENV 1
|
230
|
+
#define GPR_POSIX_FILE 1
|
231
|
+
#define GPR_POSIX_STRING 1
|
232
|
+
#define GPR_POSIX_SUBPROCESS 1
|
233
|
+
#define GPR_POSIX_SYNC 1
|
234
|
+
#define GPR_POSIX_TIME 1
|
235
|
+
#define GPR_GETPID_IN_UNISTD_H 1
|
236
|
+
#define GPR_HAVE_SO_NOSIGPIPE 1
|
237
|
+
#ifdef _LP64
|
238
|
+
#define GPR_ARCH_64 1
|
239
|
+
#else /* _LP64 */
|
240
|
+
#define GPR_ARCH_32 1
|
241
|
+
#endif /* _LP64 */
|
242
|
+
#else
|
243
|
+
#error Could not auto-detect platform
|
244
|
+
#endif
|
245
|
+
#endif /* GPR_NO_AUTODETECT_PLATFORM */
|
246
|
+
|
247
|
+
#ifndef GPR_PLATFORM_STRING
|
248
|
+
#warning "GPR_PLATFORM_STRING not auto-detected"
|
249
|
+
#define GPR_PLATFORM_STRING "unknown"
|
250
|
+
#endif
|
251
|
+
|
252
|
+
#ifdef GPR_GCOV
|
253
|
+
#undef GPR_FORBID_UNREACHABLE_CODE
|
254
|
+
#define GPR_FORBID_UNREACHABLE_CODE 1
|
255
|
+
#endif
|
256
|
+
|
257
|
+
#ifdef _MSC_VER
|
258
|
+
#if _MSC_VER < 1700
|
259
|
+
typedef __int8 int8_t;
|
260
|
+
typedef __int16 int16_t;
|
261
|
+
typedef __int32 int32_t;
|
262
|
+
typedef __int64 int64_t;
|
263
|
+
typedef unsigned __int8 uint8_t;
|
264
|
+
typedef unsigned __int16 uint16_t;
|
265
|
+
typedef unsigned __int32 uint32_t;
|
266
|
+
typedef unsigned __int64 uint64_t;
|
267
|
+
#else
|
268
|
+
#include <stdint.h>
|
269
|
+
#endif /* _MSC_VER < 1700 */
|
270
|
+
#else
|
271
|
+
#include <stdint.h>
|
272
|
+
#endif /* _MSC_VER */
|
273
|
+
|
274
|
+
/* Cache line alignment */
|
275
|
+
#ifndef GPR_CACHELINE_SIZE_LOG
|
276
|
+
#if defined(__i386__) || defined(__x86_64__)
|
277
|
+
#define GPR_CACHELINE_SIZE_LOG 6
|
278
|
+
#endif
|
279
|
+
#ifndef GPR_CACHELINE_SIZE_LOG
|
280
|
+
/* A reasonable default guess. Note that overestimates tend to waste more
|
281
|
+
space, while underestimates tend to waste more time. */
|
282
|
+
#define GPR_CACHELINE_SIZE_LOG 6
|
283
|
+
#endif /* GPR_CACHELINE_SIZE_LOG */
|
284
|
+
#endif /* GPR_CACHELINE_SIZE_LOG */
|
285
|
+
|
286
|
+
#define GPR_CACHELINE_SIZE (1 << GPR_CACHELINE_SIZE_LOG)
|
287
|
+
|
288
|
+
/* scrub GCC_ATOMIC if it's not available on this compiler */
|
289
|
+
#if defined(GPR_GCC_ATOMIC) && !defined(__ATOMIC_RELAXED)
|
290
|
+
#undef GPR_GCC_ATOMIC
|
291
|
+
#define GPR_GCC_SYNC 1
|
292
|
+
#endif
|
293
|
+
|
294
|
+
/* Validate platform combinations */
|
295
|
+
#if defined(GPR_GCC_ATOMIC) + defined(GPR_GCC_SYNC) + \
|
296
|
+
defined(GPR_WIN32_ATOMIC) != \
|
297
|
+
1
|
298
|
+
#error Must define exactly one of GPR_GCC_ATOMIC, GPR_GCC_SYNC, GPR_WIN32_ATOMIC
|
299
|
+
#endif
|
300
|
+
|
301
|
+
#if defined(GPR_ARCH_32) + defined(GPR_ARCH_64) != 1
|
302
|
+
#error Must define exactly one of GPR_ARCH_32, GPR_ARCH_64
|
303
|
+
#endif
|
304
|
+
|
305
|
+
#if defined(GPR_CPU_LINUX) + defined(GPR_CPU_POSIX) + defined(GPR_WIN32) + \
|
306
|
+
defined(GPR_CPU_IPHONE) + defined(GPR_CPU_CUSTOM) != \
|
307
|
+
1
|
308
|
+
#error Must define exactly one of GPR_CPU_LINUX, GPR_CPU_POSIX, GPR_WIN32, GPR_CPU_IPHONE, GPR_CPU_CUSTOM
|
309
|
+
#endif
|
310
|
+
|
311
|
+
#if defined(GPR_POSIX_MULTIPOLL_WITH_POLL) && !defined(GPR_POSIX_SOCKET)
|
312
|
+
#error Must define GPR_POSIX_SOCKET to use GPR_POSIX_MULTIPOLL_WITH_POLL
|
313
|
+
#endif
|
314
|
+
|
315
|
+
#if defined(GPR_POSIX_SOCKET) + defined(GPR_WINSOCK_SOCKET) + \
|
316
|
+
defined(GPR_CUSTOM_SOCKET) != \
|
317
|
+
1
|
318
|
+
#error Must define exactly one of GPR_POSIX_SOCKET, GPR_WINSOCK_SOCKET, GPR_CUSTOM_SOCKET
|
319
|
+
#endif
|
320
|
+
|
321
|
+
#if defined(GPR_MSVC_TLS) + defined(GPR_GCC_TLS) + defined(GPR_PTHREAD_TLS) + \
|
322
|
+
defined(GPR_CUSTOM_TLS) != \
|
323
|
+
1
|
324
|
+
#error Must define exactly one of GPR_MSVC_TLS, GPR_GCC_TLS, GPR_PTHREAD_TLS, GPR_CUSTOM_TLS
|
325
|
+
#endif
|
326
|
+
|
327
|
+
/* maximum alignment needed for any type on this platform, rounded up to a
|
328
|
+
power of two */
|
329
|
+
#define GPR_MAX_ALIGNMENT 16
|
330
|
+
|
331
|
+
#ifndef GRPC_MUST_USE_RESULT
|
332
|
+
#ifdef __GNUC__
|
333
|
+
#define GRPC_MUST_USE_RESULT __attribute__((warn_unused_result))
|
334
|
+
#else
|
335
|
+
#define GRPC_MUST_USE_RESULT
|
336
|
+
#endif
|
337
|
+
#endif
|
338
|
+
|
339
|
+
#if GPR_FORBID_UNREACHABLE_CODE
|
340
|
+
#define GPR_UNREACHABLE_CODE(STATEMENT)
|
341
|
+
#else
|
342
|
+
#define GPR_UNREACHABLE_CODE(STATEMENT) \
|
343
|
+
do { \
|
344
|
+
gpr_log(GPR_ERROR, "Should never reach here."); \
|
345
|
+
abort(); \
|
346
|
+
STATEMENT; \
|
347
|
+
} while (0)
|
348
|
+
#endif /* GPR_FORBID_UNREACHABLE_CODE */
|
349
|
+
|
350
|
+
#ifndef GPR_API
|
351
|
+
#define GPR_API
|
352
|
+
#endif
|
353
|
+
|
354
|
+
#ifndef GRPC_API
|
355
|
+
#define GRPC_API GPR_API
|
356
|
+
#endif
|
357
|
+
|
358
|
+
#ifndef CENSUS_API
|
359
|
+
#define CENSUS_API GRPC_API
|
360
|
+
#endif
|
361
|
+
|
362
|
+
#endif /* GRPC_IMPL_CODEGEN_PORT_PLATFORM_H */
|
@@ -0,0 +1,67 @@
|
|
1
|
+
/*
|
2
|
+
*
|
3
|
+
* Copyright 2016, Google Inc.
|
4
|
+
* All rights reserved.
|
5
|
+
*
|
6
|
+
* Redistribution and use in source and binary forms, with or without
|
7
|
+
* modification, are permitted provided that the following conditions are
|
8
|
+
* met:
|
9
|
+
*
|
10
|
+
* * Redistributions of source code must retain the above copyright
|
11
|
+
* notice, this list of conditions and the following disclaimer.
|
12
|
+
* * Redistributions in binary form must reproduce the above
|
13
|
+
* copyright notice, this list of conditions and the following disclaimer
|
14
|
+
* in the documentation and/or other materials provided with the
|
15
|
+
* distribution.
|
16
|
+
* * Neither the name of Google Inc. nor the names of its
|
17
|
+
* contributors may be used to endorse or promote products derived from
|
18
|
+
* this software without specific prior written permission.
|
19
|
+
*
|
20
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
21
|
+
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
22
|
+
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
23
|
+
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
24
|
+
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
25
|
+
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
26
|
+
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
27
|
+
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
28
|
+
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
29
|
+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
30
|
+
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
31
|
+
*
|
32
|
+
*/
|
33
|
+
|
34
|
+
#ifndef GRPC_IMPL_CODEGEN_H
|
35
|
+
#define GRPC_IMPL_CODEGEN_H
|
36
|
+
|
37
|
+
#include <grpc/impl/codegen/port_platform.h>
|
38
|
+
|
39
|
+
#ifdef __cplusplus
|
40
|
+
extern "C" {
|
41
|
+
#endif
|
42
|
+
|
43
|
+
/* Propagation bits: this can be bitwise or-ed to form propagation_mask for
|
44
|
+
* grpc_call */
|
45
|
+
/** Propagate deadline */
|
46
|
+
#define GRPC_PROPAGATE_DEADLINE ((uint32_t)1)
|
47
|
+
/** Propagate census context */
|
48
|
+
#define GRPC_PROPAGATE_CENSUS_STATS_CONTEXT ((uint32_t)2)
|
49
|
+
#define GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT ((uint32_t)4)
|
50
|
+
/** Propagate cancellation */
|
51
|
+
#define GRPC_PROPAGATE_CANCELLATION ((uint32_t)8)
|
52
|
+
|
53
|
+
/* Default propagation mask: clients of the core API are encouraged to encode
|
54
|
+
deltas from this in their implementations... ie write:
|
55
|
+
GRPC_PROPAGATE_DEFAULTS & ~GRPC_PROPAGATE_DEADLINE to disable deadline
|
56
|
+
propagation. Doing so gives flexibility in the future to define new
|
57
|
+
propagation types that are default inherited or not. */
|
58
|
+
#define GRPC_PROPAGATE_DEFAULTS \
|
59
|
+
((uint32_t)(( \
|
60
|
+
0xffff | GRPC_PROPAGATE_DEADLINE | GRPC_PROPAGATE_CENSUS_STATS_CONTEXT | \
|
61
|
+
GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT | GRPC_PROPAGATE_CANCELLATION)))
|
62
|
+
|
63
|
+
#ifdef __cplusplus
|
64
|
+
}
|
65
|
+
#endif
|
66
|
+
|
67
|
+
#endif /* GRPC_IMPL_CODEGEN_H */
|
@@ -0,0 +1,182 @@
|
|
1
|
+
/*
|
2
|
+
*
|
3
|
+
* Copyright 2015-2016, Google Inc.
|
4
|
+
* All rights reserved.
|
5
|
+
*
|
6
|
+
* Redistribution and use in source and binary forms, with or without
|
7
|
+
* modification, are permitted provided that the following conditions are
|
8
|
+
* met:
|
9
|
+
*
|
10
|
+
* * Redistributions of source code must retain the above copyright
|
11
|
+
* notice, this list of conditions and the following disclaimer.
|
12
|
+
* * Redistributions in binary form must reproduce the above
|
13
|
+
* copyright notice, this list of conditions and the following disclaimer
|
14
|
+
* in the documentation and/or other materials provided with the
|
15
|
+
* distribution.
|
16
|
+
* * Neither the name of Google Inc. nor the names of its
|
17
|
+
* contributors may be used to endorse or promote products derived from
|
18
|
+
* this software without specific prior written permission.
|
19
|
+
*
|
20
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
21
|
+
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
22
|
+
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
23
|
+
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
24
|
+
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
25
|
+
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
26
|
+
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
27
|
+
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
28
|
+
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
29
|
+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
30
|
+
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
31
|
+
*
|
32
|
+
*/
|
33
|
+
|
34
|
+
#ifndef GRPC_IMPL_CODEGEN_SLICE_H
|
35
|
+
#define GRPC_IMPL_CODEGEN_SLICE_H
|
36
|
+
|
37
|
+
#include <grpc/impl/codegen/sync.h>
|
38
|
+
|
39
|
+
#include <stddef.h>
|
40
|
+
|
41
|
+
#ifdef __cplusplus
|
42
|
+
extern "C" {
|
43
|
+
#endif
|
44
|
+
|
45
|
+
/* Slice API
|
46
|
+
|
47
|
+
A slice represents a contiguous reference counted array of bytes.
|
48
|
+
It is cheap to take references to a slice, and it is cheap to create a
|
49
|
+
slice pointing to a subset of another slice.
|
50
|
+
|
51
|
+
The data-structure for slices is exposed here to allow non-gpr code to
|
52
|
+
build slices from whatever data they have available.
|
53
|
+
|
54
|
+
When defining interfaces that handle slices, care should be taken to define
|
55
|
+
reference ownership semantics (who should call unref?) and mutability
|
56
|
+
constraints (is the callee allowed to modify the slice?) */
|
57
|
+
|
58
|
+
/* Reference count container for gpr_slice. Contains function pointers to
|
59
|
+
increment and decrement reference counts. Implementations should cleanup
|
60
|
+
when the reference count drops to zero.
|
61
|
+
Typically client code should not touch this, and use gpr_slice_malloc,
|
62
|
+
gpr_slice_new, or gpr_slice_new_with_len instead. */
|
63
|
+
typedef struct gpr_slice_refcount {
|
64
|
+
void (*ref)(void *);
|
65
|
+
void (*unref)(void *);
|
66
|
+
} gpr_slice_refcount;
|
67
|
+
|
68
|
+
#define GPR_SLICE_INLINED_SIZE (sizeof(size_t) + sizeof(uint8_t *) - 1)
|
69
|
+
|
70
|
+
/* A gpr_slice s, if initialized, represents the byte range
|
71
|
+
s.bytes[0..s.length-1].
|
72
|
+
|
73
|
+
It can have an associated ref count which has a destruction routine to be run
|
74
|
+
when the ref count reaches zero (see gpr_slice_new() and grp_slice_unref()).
|
75
|
+
Multiple gpr_slice values may share a ref count.
|
76
|
+
|
77
|
+
If the slice does not have a refcount, it represents an inlined small piece
|
78
|
+
of data that is copied by value. */
|
79
|
+
typedef struct gpr_slice {
|
80
|
+
struct gpr_slice_refcount *refcount;
|
81
|
+
union {
|
82
|
+
struct {
|
83
|
+
uint8_t *bytes;
|
84
|
+
size_t length;
|
85
|
+
} refcounted;
|
86
|
+
struct {
|
87
|
+
uint8_t length;
|
88
|
+
uint8_t bytes[GPR_SLICE_INLINED_SIZE];
|
89
|
+
} inlined;
|
90
|
+
} data;
|
91
|
+
} gpr_slice;
|
92
|
+
|
93
|
+
#define GPR_SLICE_START_PTR(slice) \
|
94
|
+
((slice).refcount ? (slice).data.refcounted.bytes \
|
95
|
+
: (slice).data.inlined.bytes)
|
96
|
+
#define GPR_SLICE_LENGTH(slice) \
|
97
|
+
((slice).refcount ? (slice).data.refcounted.length \
|
98
|
+
: (slice).data.inlined.length)
|
99
|
+
#define GPR_SLICE_SET_LENGTH(slice, newlen) \
|
100
|
+
((slice).refcount ? ((slice).data.refcounted.length = (size_t)(newlen)) \
|
101
|
+
: ((slice).data.inlined.length = (uint8_t)(newlen)))
|
102
|
+
#define GPR_SLICE_END_PTR(slice) \
|
103
|
+
GPR_SLICE_START_PTR(slice) + GPR_SLICE_LENGTH(slice)
|
104
|
+
#define GPR_SLICE_IS_EMPTY(slice) (GPR_SLICE_LENGTH(slice) == 0)
|
105
|
+
|
106
|
+
/* Increment the refcount of s. Requires slice is initialized.
|
107
|
+
Returns s. */
|
108
|
+
GPR_API gpr_slice gpr_slice_ref(gpr_slice s);
|
109
|
+
|
110
|
+
/* Decrement the ref count of s. If the ref count of s reaches zero, all
|
111
|
+
slices sharing the ref count are destroyed, and considered no longer
|
112
|
+
initialized. If s is ultimately derived from a call to gpr_slice_new(start,
|
113
|
+
len, dest) where dest!=NULL , then (*dest)(start) is called, else if s is
|
114
|
+
ultimately derived from a call to gpr_slice_new_with_len(start, len, dest)
|
115
|
+
where dest!=NULL , then (*dest)(start, len). Requires s initialized. */
|
116
|
+
GPR_API void gpr_slice_unref(gpr_slice s);
|
117
|
+
|
118
|
+
/* Create a slice pointing at some data. Calls malloc to allocate a refcount
|
119
|
+
for the object, and arranges that destroy will be called with the pointer
|
120
|
+
passed in at destruction. */
|
121
|
+
GPR_API gpr_slice gpr_slice_new(void *p, size_t len, void (*destroy)(void *));
|
122
|
+
|
123
|
+
/* Equivalent to gpr_slice_new, but with a two argument destroy function that
|
124
|
+
also takes the slice length. */
|
125
|
+
GPR_API gpr_slice
|
126
|
+
gpr_slice_new_with_len(void *p, size_t len, void (*destroy)(void *, size_t));
|
127
|
+
|
128
|
+
/* Equivalent to gpr_slice_new(malloc(len), len, free), but saves one malloc()
|
129
|
+
call.
|
130
|
+
Aborts if malloc() fails. */
|
131
|
+
GPR_API gpr_slice gpr_slice_malloc(size_t length);
|
132
|
+
|
133
|
+
/* Create a slice by copying a string.
|
134
|
+
Does not preserve null terminators.
|
135
|
+
Equivalent to:
|
136
|
+
size_t len = strlen(source);
|
137
|
+
gpr_slice slice = gpr_slice_malloc(len);
|
138
|
+
memcpy(slice->data, source, len); */
|
139
|
+
GPR_API gpr_slice gpr_slice_from_copied_string(const char *source);
|
140
|
+
|
141
|
+
/* Create a slice by copying a buffer.
|
142
|
+
Equivalent to:
|
143
|
+
gpr_slice slice = gpr_slice_malloc(len);
|
144
|
+
memcpy(slice->data, source, len); */
|
145
|
+
GPR_API gpr_slice gpr_slice_from_copied_buffer(const char *source, size_t len);
|
146
|
+
|
147
|
+
/* Create a slice pointing to constant memory */
|
148
|
+
GPR_API gpr_slice gpr_slice_from_static_string(const char *source);
|
149
|
+
|
150
|
+
/* Return a result slice derived from s, which shares a ref count with s, where
|
151
|
+
result.data==s.data+begin, and result.length==end-begin.
|
152
|
+
The ref count of s is increased by one.
|
153
|
+
Requires s initialized, begin <= end, begin <= s.length, and
|
154
|
+
end <= source->length. */
|
155
|
+
GPR_API gpr_slice gpr_slice_sub(gpr_slice s, size_t begin, size_t end);
|
156
|
+
|
157
|
+
/* The same as gpr_slice_sub, but without altering the ref count */
|
158
|
+
GPR_API gpr_slice gpr_slice_sub_no_ref(gpr_slice s, size_t begin, size_t end);
|
159
|
+
|
160
|
+
/* Splits s into two: modifies s to be s[0:split], and returns a new slice,
|
161
|
+
sharing a refcount with s, that contains s[split:s.length].
|
162
|
+
Requires s intialized, split <= s.length */
|
163
|
+
GPR_API gpr_slice gpr_slice_split_tail(gpr_slice *s, size_t split);
|
164
|
+
|
165
|
+
/* Splits s into two: modifies s to be s[split:s.length], and returns a new
|
166
|
+
slice, sharing a refcount with s, that contains s[0:split].
|
167
|
+
Requires s intialized, split <= s.length */
|
168
|
+
GPR_API gpr_slice gpr_slice_split_head(gpr_slice *s, size_t split);
|
169
|
+
|
170
|
+
GPR_API gpr_slice gpr_empty_slice(void);
|
171
|
+
|
172
|
+
/* Returns <0 if a < b, ==0 if a == b, >0 if a > b
|
173
|
+
The order is arbitrary, and is not guaranteed to be stable across different
|
174
|
+
versions of the API. */
|
175
|
+
GPR_API int gpr_slice_cmp(gpr_slice a, gpr_slice b);
|
176
|
+
GPR_API int gpr_slice_str_cmp(gpr_slice a, const char *b);
|
177
|
+
|
178
|
+
#ifdef __cplusplus
|
179
|
+
}
|
180
|
+
#endif
|
181
|
+
|
182
|
+
#endif /* GRPC_IMPL_CODEGEN_SLICE_H */
|