Method: FullDuplexEnumerator#each_item

Defined in:
src/ruby/pb/test/server.rb

#each_itemObject



146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
# File 'src/ruby/pb/test/server.rb', line 146

def each_item
  return enum_for(:each_item) unless block_given?
  GRPC.logger.info('interop-server: started receiving')
  begin
    cls = StreamingOutputCallResponse
    @requests.each do |req|
      maybe_echo_status_and_message(req)
      req.response_parameters.each do |params|
        resp_size = params.size
        GRPC.logger.info("read a req, response size is #{resp_size}")
        yield cls.new(payload: Payload.new(type: req.response_type,
                                            body: nulls(resp_size)))
      end
    end
    GRPC.logger.info('interop-server: finished receiving')
  rescue StandardError => e
    GRPC.logger.info('interop-server: failed')
    GRPC.logger.warn(e)
    fail e
  end
end