grpc 1.49.0.pre1-x64-mingw-ucrt
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 +7 -0
- data/etc/roots.pem +4337 -0
- data/grpc_c.32-msvcrt.ruby +0 -0
- data/grpc_c.64-msvcrt.ruby +0 -0
- data/grpc_c.64-ucrt.ruby +0 -0
- data/src/ruby/bin/math_client.rb +140 -0
- data/src/ruby/bin/math_pb.rb +34 -0
- data/src/ruby/bin/math_server.rb +191 -0
- data/src/ruby/bin/math_services_pb.rb +51 -0
- data/src/ruby/bin/noproto_client.rb +93 -0
- data/src/ruby/bin/noproto_server.rb +97 -0
- data/src/ruby/ext/grpc/ext-export-truffleruby.clang +2 -0
- data/src/ruby/ext/grpc/ext-export-truffleruby.gcc +7 -0
- data/src/ruby/ext/grpc/ext-export.clang +2 -0
- data/src/ruby/ext/grpc/ext-export.gcc +7 -0
- data/src/ruby/ext/grpc/extconf.rb +163 -0
- data/src/ruby/ext/grpc/rb_byte_buffer.c +65 -0
- data/src/ruby/ext/grpc/rb_byte_buffer.h +35 -0
- data/src/ruby/ext/grpc/rb_call.c +1051 -0
- data/src/ruby/ext/grpc/rb_call.h +57 -0
- data/src/ruby/ext/grpc/rb_call_credentials.c +341 -0
- data/src/ruby/ext/grpc/rb_call_credentials.h +31 -0
- data/src/ruby/ext/grpc/rb_channel.c +849 -0
- data/src/ruby/ext/grpc/rb_channel.h +34 -0
- data/src/ruby/ext/grpc/rb_channel_args.c +155 -0
- data/src/ruby/ext/grpc/rb_channel_args.h +38 -0
- data/src/ruby/ext/grpc/rb_channel_credentials.c +286 -0
- data/src/ruby/ext/grpc/rb_channel_credentials.h +37 -0
- data/src/ruby/ext/grpc/rb_completion_queue.c +101 -0
- data/src/ruby/ext/grpc/rb_completion_queue.h +36 -0
- data/src/ruby/ext/grpc/rb_compression_options.c +471 -0
- data/src/ruby/ext/grpc/rb_compression_options.h +29 -0
- data/src/ruby/ext/grpc/rb_enable_cpp.cc +22 -0
- data/src/ruby/ext/grpc/rb_event_thread.c +145 -0
- data/src/ruby/ext/grpc/rb_event_thread.h +21 -0
- data/src/ruby/ext/grpc/rb_grpc.c +333 -0
- data/src/ruby/ext/grpc/rb_grpc.h +77 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +597 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +901 -0
- data/src/ruby/ext/grpc/rb_loader.c +61 -0
- data/src/ruby/ext/grpc/rb_loader.h +25 -0
- data/src/ruby/ext/grpc/rb_server.c +388 -0
- data/src/ruby/ext/grpc/rb_server.h +32 -0
- data/src/ruby/ext/grpc/rb_server_credentials.c +259 -0
- data/src/ruby/ext/grpc/rb_server_credentials.h +37 -0
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.c +218 -0
- data/src/ruby/ext/grpc/rb_xds_channel_credentials.h +37 -0
- data/src/ruby/ext/grpc/rb_xds_server_credentials.c +170 -0
- data/src/ruby/ext/grpc/rb_xds_server_credentials.h +37 -0
- data/src/ruby/lib/grpc/3.1/grpc_c.so +0 -0
- data/src/ruby/lib/grpc/core/status_codes.rb +135 -0
- data/src/ruby/lib/grpc/core/time_consts.rb +56 -0
- data/src/ruby/lib/grpc/errors.rb +277 -0
- data/src/ruby/lib/grpc/generic/active_call.rb +675 -0
- data/src/ruby/lib/grpc/generic/bidi_call.rb +233 -0
- data/src/ruby/lib/grpc/generic/client_stub.rb +503 -0
- data/src/ruby/lib/grpc/generic/interceptor_registry.rb +53 -0
- data/src/ruby/lib/grpc/generic/interceptors.rb +186 -0
- data/src/ruby/lib/grpc/generic/rpc_desc.rb +204 -0
- data/src/ruby/lib/grpc/generic/rpc_server.rb +551 -0
- data/src/ruby/lib/grpc/generic/service.rb +211 -0
- data/src/ruby/lib/grpc/google_rpc_status_utils.rb +40 -0
- data/src/ruby/lib/grpc/grpc.rb +24 -0
- data/src/ruby/lib/grpc/logconfig.rb +44 -0
- data/src/ruby/lib/grpc/notifier.rb +45 -0
- data/src/ruby/lib/grpc/structs.rb +15 -0
- data/src/ruby/lib/grpc/version.rb +18 -0
- data/src/ruby/lib/grpc.rb +37 -0
- data/src/ruby/pb/README.md +42 -0
- data/src/ruby/pb/generate_proto_ruby.sh +52 -0
- data/src/ruby/pb/grpc/health/checker.rb +75 -0
- data/src/ruby/pb/grpc/health/v1/health_pb.rb +31 -0
- data/src/ruby/pb/grpc/health/v1/health_services_pb.rb +62 -0
- data/src/ruby/pb/grpc/testing/duplicate/echo_duplicate_services_pb.rb +44 -0
- data/src/ruby/pb/grpc/testing/metrics_pb.rb +28 -0
- data/src/ruby/pb/grpc/testing/metrics_services_pb.rb +49 -0
- data/src/ruby/pb/src/proto/grpc/testing/empty_pb.rb +17 -0
- data/src/ruby/pb/src/proto/grpc/testing/messages_pb.rb +149 -0
- data/src/ruby/pb/src/proto/grpc/testing/test_pb.rb +17 -0
- data/src/ruby/pb/src/proto/grpc/testing/test_services_pb.rb +152 -0
- data/src/ruby/pb/test/client.rb +769 -0
- data/src/ruby/pb/test/server.rb +252 -0
- data/src/ruby/pb/test/xds_client.rb +415 -0
- data/src/ruby/spec/call_credentials_spec.rb +42 -0
- data/src/ruby/spec/call_spec.rb +180 -0
- data/src/ruby/spec/channel_connection_spec.rb +126 -0
- data/src/ruby/spec/channel_credentials_spec.rb +124 -0
- data/src/ruby/spec/channel_spec.rb +245 -0
- data/src/ruby/spec/client_auth_spec.rb +152 -0
- data/src/ruby/spec/client_server_spec.rb +664 -0
- data/src/ruby/spec/compression_options_spec.rb +149 -0
- data/src/ruby/spec/debug_message_spec.rb +134 -0
- data/src/ruby/spec/error_sanity_spec.rb +49 -0
- data/src/ruby/spec/errors_spec.rb +142 -0
- data/src/ruby/spec/generic/active_call_spec.rb +683 -0
- data/src/ruby/spec/generic/client_interceptors_spec.rb +153 -0
- data/src/ruby/spec/generic/client_stub_spec.rb +1083 -0
- data/src/ruby/spec/generic/interceptor_registry_spec.rb +65 -0
- data/src/ruby/spec/generic/rpc_desc_spec.rb +374 -0
- data/src/ruby/spec/generic/rpc_server_pool_spec.rb +127 -0
- data/src/ruby/spec/generic/rpc_server_spec.rb +748 -0
- data/src/ruby/spec/generic/server_interceptors_spec.rb +218 -0
- data/src/ruby/spec/generic/service_spec.rb +263 -0
- data/src/ruby/spec/google_rpc_status_utils_spec.rb +282 -0
- data/src/ruby/spec/pb/codegen/grpc/testing/package_options.proto +28 -0
- data/src/ruby/spec/pb/codegen/grpc/testing/package_options_import.proto +22 -0
- data/src/ruby/spec/pb/codegen/grpc/testing/package_options_import2.proto +23 -0
- data/src/ruby/spec/pb/codegen/grpc/testing/package_options_ruby_style.proto +41 -0
- data/src/ruby/spec/pb/codegen/grpc/testing/same_package_service_name.proto +27 -0
- data/src/ruby/spec/pb/codegen/grpc/testing/same_ruby_package_service_name.proto +29 -0
- data/src/ruby/spec/pb/codegen/package_option_spec.rb +98 -0
- data/src/ruby/spec/pb/duplicate/codegen_spec.rb +57 -0
- data/src/ruby/spec/pb/health/checker_spec.rb +236 -0
- data/src/ruby/spec/server_credentials_spec.rb +104 -0
- data/src/ruby/spec/server_spec.rb +231 -0
- data/src/ruby/spec/spec_helper.rb +61 -0
- data/src/ruby/spec/support/helpers.rb +107 -0
- data/src/ruby/spec/support/services.rb +160 -0
- data/src/ruby/spec/testdata/README +1 -0
- data/src/ruby/spec/testdata/ca.pem +20 -0
- data/src/ruby/spec/testdata/client.key +28 -0
- data/src/ruby/spec/testdata/client.pem +20 -0
- data/src/ruby/spec/testdata/server1.key +28 -0
- data/src/ruby/spec/testdata/server1.pem +22 -0
- data/src/ruby/spec/time_consts_spec.rb +74 -0
- data/src/ruby/spec/user_agent_spec.rb +74 -0
- metadata +406 -0
@@ -0,0 +1,163 @@
|
|
1
|
+
# Copyright 2015 gRPC authors.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
require 'etc'
|
16
|
+
require 'mkmf'
|
17
|
+
|
18
|
+
windows = RUBY_PLATFORM =~ /mingw|mswin/
|
19
|
+
windows_ucrt = RUBY_PLATFORM =~ /(mingw|mswin).*ucrt/
|
20
|
+
bsd = RUBY_PLATFORM =~ /bsd/
|
21
|
+
darwin = RUBY_PLATFORM =~ /darwin/
|
22
|
+
linux = RUBY_PLATFORM =~ /linux/
|
23
|
+
cross_compiling = ENV['RCD_HOST_RUBY_VERSION'] # set by rake-compiler-dock in build containers
|
24
|
+
# TruffleRuby uses the Sulong LLVM runtime, which is different from Apple's.
|
25
|
+
apple_toolchain = darwin && RUBY_ENGINE != 'truffleruby'
|
26
|
+
|
27
|
+
grpc_root = File.expand_path(File.join(File.dirname(__FILE__), '../../../..'))
|
28
|
+
|
29
|
+
grpc_config = ENV['GRPC_CONFIG'] || 'opt'
|
30
|
+
|
31
|
+
ENV['MACOSX_DEPLOYMENT_TARGET'] = '10.10'
|
32
|
+
|
33
|
+
def env_unset?(name)
|
34
|
+
ENV[name].nil? || ENV[name].size == 0
|
35
|
+
end
|
36
|
+
|
37
|
+
def rbconfig_set?(name)
|
38
|
+
RbConfig::CONFIG[name] && RbConfig::CONFIG[name].size > 0
|
39
|
+
end
|
40
|
+
|
41
|
+
def inherit_rbconfig(name)
|
42
|
+
ENV[name] = RbConfig::CONFIG[name] if env_unset?(name) && rbconfig_set?(name)
|
43
|
+
end
|
44
|
+
|
45
|
+
def env_append(name, string)
|
46
|
+
ENV[name] ||= ''
|
47
|
+
ENV[name] += ' ' + string
|
48
|
+
end
|
49
|
+
|
50
|
+
inherit_rbconfig 'AR'
|
51
|
+
inherit_rbconfig 'CC'
|
52
|
+
inherit_rbconfig 'CXX'
|
53
|
+
inherit_rbconfig 'RANLIB'
|
54
|
+
inherit_rbconfig 'STRIP'
|
55
|
+
inherit_rbconfig 'CPPFLAGS'
|
56
|
+
inherit_rbconfig 'LDFLAGS'
|
57
|
+
|
58
|
+
ENV['LD'] = ENV['CC'] if env_unset?('LD')
|
59
|
+
ENV['LDXX'] = ENV['CXX'] if env_unset?('LDXX')
|
60
|
+
|
61
|
+
if RUBY_ENGINE == 'truffleruby'
|
62
|
+
# ensure we can find the system's OpenSSL
|
63
|
+
env_append 'CPPFLAGS', RbConfig::CONFIG['cppflags']
|
64
|
+
end
|
65
|
+
|
66
|
+
if apple_toolchain && !cross_compiling
|
67
|
+
ENV['AR'] = 'libtool'
|
68
|
+
ENV['ARFLAGS'] = '-o'
|
69
|
+
end
|
70
|
+
|
71
|
+
# Don't embed on TruffleRuby (constant-time crypto is unsafe with Sulong, slow build times)
|
72
|
+
ENV['EMBED_OPENSSL'] = (RUBY_ENGINE != 'truffleruby').to_s
|
73
|
+
# Don't embed on TruffleRuby (the system zlib is already linked for the zlib C extension, slow build times)
|
74
|
+
ENV['EMBED_ZLIB'] = (RUBY_ENGINE != 'truffleruby').to_s
|
75
|
+
|
76
|
+
ENV['EMBED_CARES'] = 'true'
|
77
|
+
|
78
|
+
ENV['ARCH_FLAGS'] = RbConfig::CONFIG['ARCH_FLAG']
|
79
|
+
if apple_toolchain && !cross_compiling
|
80
|
+
if RUBY_PLATFORM =~ /arm64/
|
81
|
+
ENV['ARCH_FLAGS'] = '-arch arm64'
|
82
|
+
else
|
83
|
+
ENV['ARCH_FLAGS'] = '-arch i386 -arch x86_64'
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
env_append 'CPPFLAGS', '-DGPR_BACKWARDS_COMPATIBILITY_MODE'
|
88
|
+
env_append 'CPPFLAGS', '-DGRPC_XDS_USER_AGENT_NAME_SUFFIX="\"RUBY\""'
|
89
|
+
env_append 'CPPFLAGS', '-DGRPC_RUBY_WINDOWS_UCRT' if windows_ucrt
|
90
|
+
|
91
|
+
require_relative '../../lib/grpc/version'
|
92
|
+
env_append 'CPPFLAGS', '-DGRPC_XDS_USER_AGENT_VERSION_SUFFIX="\"' + GRPC::VERSION + '\""'
|
93
|
+
|
94
|
+
output_dir = File.expand_path(RbConfig::CONFIG['topdir'])
|
95
|
+
grpc_lib_dir = File.join(output_dir, 'libs', grpc_config)
|
96
|
+
ENV['BUILDDIR'] = output_dir
|
97
|
+
|
98
|
+
unless windows
|
99
|
+
puts 'Building internal gRPC into ' + grpc_lib_dir
|
100
|
+
nproc = 4
|
101
|
+
nproc = Etc.nprocessors if Etc.respond_to? :nprocessors
|
102
|
+
nproc_override = ENV['GRPC_RUBY_BUILD_PROCS']
|
103
|
+
unless nproc_override.nil? or nproc_override.size == 0
|
104
|
+
nproc = nproc_override
|
105
|
+
puts "Overriding make parallelism to #{nproc}"
|
106
|
+
end
|
107
|
+
make = bsd ? 'gmake' : 'make'
|
108
|
+
cmd = "#{make} -j#{nproc} -C #{grpc_root} #{grpc_lib_dir}/libgrpc.a CONFIG=#{grpc_config} Q="
|
109
|
+
puts "Building grpc native library: #{cmd}"
|
110
|
+
system(cmd)
|
111
|
+
exit 1 unless $? == 0
|
112
|
+
end
|
113
|
+
|
114
|
+
$CFLAGS << ' -I' + File.join(grpc_root, 'include')
|
115
|
+
|
116
|
+
ext_export_file = File.join(grpc_root, 'src', 'ruby', 'ext', 'grpc', 'ext-export')
|
117
|
+
ext_export_file += '-truffleruby' if RUBY_ENGINE == 'truffleruby'
|
118
|
+
$LDFLAGS << ' -Wl,--version-script="' + ext_export_file + '.gcc"' if linux
|
119
|
+
$LDFLAGS << ' -Wl,-exported_symbols_list,"' + ext_export_file + '.clang"' if apple_toolchain
|
120
|
+
|
121
|
+
$LDFLAGS << ' ' + File.join(grpc_lib_dir, 'libgrpc.a') unless windows
|
122
|
+
if grpc_config == 'gcov'
|
123
|
+
$CFLAGS << ' -O0 -fprofile-arcs -ftest-coverage'
|
124
|
+
$LDFLAGS << ' -fprofile-arcs -ftest-coverage -rdynamic'
|
125
|
+
end
|
126
|
+
|
127
|
+
if grpc_config == 'dbg'
|
128
|
+
$CFLAGS << ' -O0 -ggdb3'
|
129
|
+
end
|
130
|
+
|
131
|
+
$LDFLAGS << ' -Wl,-wrap,memcpy' if linux
|
132
|
+
# Do not statically link standard libraries on TruffleRuby as this does not work when compiling to bitcode
|
133
|
+
if linux && RUBY_ENGINE != 'truffleruby'
|
134
|
+
$LDFLAGS << ' -static-libgcc -static-libstdc++'
|
135
|
+
end
|
136
|
+
$LDFLAGS << ' -static' if windows
|
137
|
+
|
138
|
+
$CFLAGS << ' -std=c11 '
|
139
|
+
$CFLAGS << ' -Wall '
|
140
|
+
$CFLAGS << ' -Wextra '
|
141
|
+
$CFLAGS << ' -pedantic '
|
142
|
+
|
143
|
+
output = File.join('grpc', 'grpc_c')
|
144
|
+
puts 'Generating Makefile for ' + output
|
145
|
+
create_makefile(output)
|
146
|
+
|
147
|
+
strip_tool = RbConfig::CONFIG['STRIP']
|
148
|
+
strip_tool += ' -x' if apple_toolchain
|
149
|
+
|
150
|
+
if grpc_config == 'opt'
|
151
|
+
File.open('Makefile.new', 'w') do |o|
|
152
|
+
o.puts 'hijack: all strip'
|
153
|
+
o.puts
|
154
|
+
File.foreach('Makefile') do |i|
|
155
|
+
o.puts i
|
156
|
+
end
|
157
|
+
o.puts
|
158
|
+
o.puts 'strip: $(DLLIB)'
|
159
|
+
o.puts "\t$(ECHO) Stripping $(DLLIB)"
|
160
|
+
o.puts "\t$(Q) #{strip_tool} $(DLLIB)"
|
161
|
+
end
|
162
|
+
File.rename('Makefile.new', 'Makefile')
|
163
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
/*
|
2
|
+
*
|
3
|
+
* Copyright 2015 gRPC authors.
|
4
|
+
*
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
* you may not use this file except in compliance with the License.
|
7
|
+
* You may obtain a copy of the License at
|
8
|
+
*
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
*
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
* See the License for the specific language governing permissions and
|
15
|
+
* limitations under the License.
|
16
|
+
*
|
17
|
+
*/
|
18
|
+
|
19
|
+
#include <ruby/ruby.h>
|
20
|
+
|
21
|
+
#include "rb_byte_buffer.h"
|
22
|
+
|
23
|
+
#include "rb_grpc.h"
|
24
|
+
#include "rb_grpc_imports.generated.h"
|
25
|
+
|
26
|
+
#include <grpc/byte_buffer_reader.h>
|
27
|
+
#include <grpc/grpc.h>
|
28
|
+
#include <grpc/slice.h>
|
29
|
+
|
30
|
+
grpc_byte_buffer* grpc_rb_s_to_byte_buffer(char* string, size_t length) {
|
31
|
+
grpc_slice slice = grpc_slice_from_copied_buffer(string, length);
|
32
|
+
grpc_byte_buffer* buffer = grpc_raw_byte_buffer_create(&slice, 1);
|
33
|
+
grpc_slice_unref(slice);
|
34
|
+
return buffer;
|
35
|
+
}
|
36
|
+
|
37
|
+
VALUE grpc_rb_byte_buffer_to_s(grpc_byte_buffer* buffer) {
|
38
|
+
VALUE rb_string;
|
39
|
+
grpc_byte_buffer_reader reader;
|
40
|
+
grpc_slice next;
|
41
|
+
if (buffer == NULL) {
|
42
|
+
return Qnil;
|
43
|
+
}
|
44
|
+
rb_string = rb_str_buf_new(grpc_byte_buffer_length(buffer));
|
45
|
+
if (!grpc_byte_buffer_reader_init(&reader, buffer)) {
|
46
|
+
rb_raise(rb_eRuntimeError, "Error initializing byte buffer reader.");
|
47
|
+
return Qnil;
|
48
|
+
}
|
49
|
+
while (grpc_byte_buffer_reader_next(&reader, &next) != 0) {
|
50
|
+
rb_str_cat(rb_string, (const char*)GRPC_SLICE_START_PTR(next),
|
51
|
+
GRPC_SLICE_LENGTH(next));
|
52
|
+
grpc_slice_unref(next);
|
53
|
+
}
|
54
|
+
grpc_byte_buffer_reader_destroy(&reader);
|
55
|
+
return rb_string;
|
56
|
+
}
|
57
|
+
|
58
|
+
VALUE grpc_rb_slice_to_ruby_string(grpc_slice slice) {
|
59
|
+
if (GRPC_SLICE_START_PTR(slice) == NULL) {
|
60
|
+
rb_raise(rb_eRuntimeError,
|
61
|
+
"attempt to convert uninitialized grpc_slice to ruby string");
|
62
|
+
}
|
63
|
+
return rb_str_new((char*)GRPC_SLICE_START_PTR(slice),
|
64
|
+
GRPC_SLICE_LENGTH(slice));
|
65
|
+
}
|
@@ -0,0 +1,35 @@
|
|
1
|
+
/*
|
2
|
+
*
|
3
|
+
* Copyright 2015 gRPC authors.
|
4
|
+
*
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
* you may not use this file except in compliance with the License.
|
7
|
+
* You may obtain a copy of the License at
|
8
|
+
*
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
*
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
* See the License for the specific language governing permissions and
|
15
|
+
* limitations under the License.
|
16
|
+
*
|
17
|
+
*/
|
18
|
+
|
19
|
+
#ifndef GRPC_RB_BYTE_BUFFER_H_
|
20
|
+
#define GRPC_RB_BYTE_BUFFER_H_
|
21
|
+
|
22
|
+
#include <ruby/ruby.h>
|
23
|
+
|
24
|
+
#include <grpc/grpc.h>
|
25
|
+
|
26
|
+
/* Converts a char* with a length to a grpc_byte_buffer */
|
27
|
+
grpc_byte_buffer* grpc_rb_s_to_byte_buffer(char* string, size_t length);
|
28
|
+
|
29
|
+
/* Converts a grpc_byte_buffer to a ruby string */
|
30
|
+
VALUE grpc_rb_byte_buffer_to_s(grpc_byte_buffer* buffer);
|
31
|
+
|
32
|
+
/* Converts a grpc_slice to a ruby string */
|
33
|
+
VALUE grpc_rb_slice_to_ruby_string(grpc_slice slice);
|
34
|
+
|
35
|
+
#endif /* GRPC_RB_BYTE_BUFFER_H_ */
|