class GrpcKit::Rpcs::Server::RequestResponse

Public Instance Methods

invoke(stream, metadata: {}) click to toggle source

@param stream [GrpcKit::Stream::ServerStream] @param metadata [Hash<String, String>] @return [void]

# File lib/grpc_kit/rpcs/server_request_response.rb, line 12
def invoke(stream, metadata: {})
  call = GrpcKit::Calls::Server::RequestResponse.new(
    metadata: metadata,
    config: @config,
    stream: stream,
  )

  request = call.recv
  if @config.interceptor
    @config.interceptor.intercept(request, call) do
      resp = @handler.send(@config.ruby_style_method_name, request, call)
      call.send_msg(resp)
      resp
    end
  else
    resp = @handler.send(@config.ruby_style_method_name, request, call)
    call.send_msg(resp)
  end
end