Sha256: 865124e32f8081385540e312e17c16e1b3e2763acdc7ab123584b5264dd60a59

Contents?: true

Size: 1.32 KB

Versions: 2

Compression:

Stored size: 1.32 KB

Contents

# frozen_string_literal: true

require 'grpc_kit/rpcs/base'

module GrpcKit
  module Rpcs
    module Client
      class ServerStreamer < Base
        def invoke(session, request, authority:, metadata: {}, timeout: nil, **opts)
          cs = GrpcKit::Streams::Client.new(path: @config.path, protobuf: @config.protobuf, session: session, authority: authority)
          call = GrpcKit::Rpcs::Call.new(metadata, @config.method_name, @config.service_name, cs)

          @config.interceptor.intercept(call) do |c|
            c.send_msg(request, last: true)
            c
          end
        end
      end
    end

    module Server
      class ServerStreamer < Base
        def invoke(stream, session)
          ss = GrpcKit::Streams::Server.new(stream: stream, protobuf: @config.protobuf, session: session)
          call = GrpcKit::Rpcs::Call.new(stream.headers.metadata, @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
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
grpc_kit-0.1.2 lib/grpc_kit/rpcs/server_streamer.rb
grpc_kit-0.1.1 lib/grpc_kit/rpcs/server_streamer.rb