class GrpcKit::Rpcs::Client::RequestResponse
Public Instance Methods
invoke(stream, request, metadata: {}, timeout: nil)
click to toggle source
@param stream [GrpcKit::Stream::ClientStream] @param request [Object] request message @param metadata [Hash<String, String>] @param timeout [GrpcKit::GrpcTime] @return [Object] response message
# File lib/grpc_kit/rpcs/client_request_response.rb, line 14 def invoke(stream, request, metadata: {}, timeout: nil) call = GrpcKit::Calls::Client::RequestResponse.new( metadata: metadata, config: @config, timeout: timeout, stream: stream, ) Timeout.timeout(timeout&.to_f, GrpcKit::Errors::DeadlineExceeded) do if @config.interceptor @config.interceptor.intercept(request, call, call.metadata) do call.send_msg(request) call.recv end else call.send_msg(request) call.recv end end end