Class: GrpcKit::Rpcs::Client::RequestResponse
- Inherits:
-
GrpcKit::Rpcs::ClientRpc
- Object
- GrpcKit::Rpcs::ClientRpc
- GrpcKit::Rpcs::Client::RequestResponse
- Defined in:
- lib/grpc_kit/rpcs/client_request_response.rb
Instance Attribute Summary
Attributes inherited from GrpcKit::Rpcs::ClientRpc
Instance Method Summary collapse
Methods inherited from GrpcKit::Rpcs::ClientRpc
Constructor Details
This class inherits a constructor from GrpcKit::Rpcs::ClientRpc
Instance Method Details
#invoke(stream, request, metadata: {}, timeout: nil) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/grpc_kit/rpcs/client_request_response.rb', line 9 def invoke(stream, request, metadata: {}, timeout: nil) call = GrpcKit::Calls::Client::RequestResponse.new( metadata: , config: @config, timeout: timeout, stream: stream, ) # TODO: DRY if @config.interceptor && timeout @config.interceptor.intercept(request, call, call.) do |r, c, _| Timeout.timeout(timeout.to_f, GrpcKit::Errors::DeadlineExceeded) do call.send_msg(request, timeout: timeout.to_s, last: true) call.recv(last: true) end end elsif @config.interceptor && !timeout @config.interceptor.intercept(request, call, call.) do |r, c, _| call.send_msg(request, last: true) call.recv(last: true) end elsif !@config.interceptor && timeout Timeout.timeout(timeout.to_f, GrpcKit::Errors::DeadlineExceeded) do call.send_msg(request, timeout: timeout.to_s, last: true) call.recv(last: true) end else call.send_msg(request, last: true) call.recv(last: true) end end |