| 
					
				 | 
			
			
				@@ -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 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |