Class: GrpcKit::Rpcs::Server::ServerStreamer

Inherits:
Base
  • Object
show all
Defined in:
lib/grpc_kit/rpcs/server_streamer.rb

Instance Method Summary collapse

Methods inherited from Base

#initialize

Constructor Details

This class inherits a constructor from GrpcKit::Rpcs::Server::Base

Instance Method Details

#invoke(stream, session) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/grpc_kit/rpcs/server_streamer.rb', line 23

def invoke(stream, session)
  ss = GrpcKit::Streams::Server.new(stream: stream, protobuf: @config.protobuf, session: session)
  call = GrpcKit::Rpcs::Call.new(stream.headers., @config.method_name, @config.service_name, ss)

  if @config.interceptor
    @config.interceptor.intercept(call) do |c|
      request = c.recv(last: true)
      @handler.send(@config.ruby_style_method_name, request, c)
    end
  else
    request = call.recv(last: true)
    @handler.send(@config.ruby_style_method_name, request, call)
  end

  stream.end_write
end