@ -27,15 +27,26 @@ $LOAD_PATH.unshift(this_dir) unless $LOAD_PATH.include?(this_dir)
require 'grpc'
require 'math_services_pb'
require 'optparse'
require 'logger'
include GRPC :: Core :: TimeConsts
module StdoutLogger
def logger
LOGGER
end
LOGGER = Logger . new ( STDOUT )
end
GRPC . extend ( StdoutLogger )
def do_div ( stub )
GRPC . logger . info ( 'request_response' )
GRPC . logger . info ( '----------------' )
req = Math :: DivArgs . new ( dividend : 7 , divisor : 3 )
GRPC . logger . info ( " div(7/3): req= #{ req . inspect } " )
resp = stub . div ( req , timeout : INFINITE_FUTURE )
resp = stub . div ( req )
GRPC . logger . info ( " Answer: #{ resp . inspect } " )
GRPC . logger . info ( '----------------' )
end
@ -56,7 +67,7 @@ def do_fib(stub)
GRPC . logger . info ( '----------------' )
req = Math :: FibArgs . new ( limit : 11 )
GRPC . logger . info ( " fib(11): req= #{ req . inspect } " )
resp = stub . fib ( req , timeout : INFINITE_FUTURE )
resp = stub . fib ( req )
resp . each do | r |
GRPC . logger . info ( " Answer: #{ r . inspect } " )
end
@ -71,7 +82,7 @@ def do_div_many(stub)
reqs << Math :: DivArgs . new ( dividend : 5 , divisor : 2 )
reqs << Math :: DivArgs . new ( dividend : 7 , divisor : 2 )
GRPC . logger . info ( " div(7/3), div(5/2), div(7/2): reqs= #{ reqs . inspect } " )
resp = stub . div_many ( reqs , timeout : INFINITE_FUTURE )
resp = stub . div_many ( reqs )
resp . each do | r |
GRPC . logger . info ( " Answer: #{ r . inspect } " )
end
@ -107,19 +118,16 @@ def main
# The Math::Math:: module occurs because the service has the same name as its
# package. That practice should be avoided by defining real services.
p options
if options [ 'secure' ]
stub_opts = {
:creds = > test_creds ,
GRPC :: Core :: Channel :: SSL_TARGET = > 'foo.test.google.fr'
GRPC :: Core :: Channel :: SSL_TARGET = > 'foo.test.google.fr' ,
timeout : INFINITE_FUTURE ,
}
p stub_opts
p options [ 'host' ]
stub = Math :: Math :: Stub . new ( options [ 'host' ] , ** stub_opts )
GRPC . logger . info ( " ... connecting securely on #{ options [ 'host' ] } " )
else
stub = Math :: Math :: Stub . new ( options [ 'host' ] )
stub = Math :: Math :: Stub . new ( options [ 'host' ] , :this_channel_is_insecure , timeout : INFINITE_FUTURE )
GRPC . logger . info ( " ... connecting insecurely on #{ options [ 'host' ] } " )
end