class GrpcKit::Transport::ServerTransport

Public Class Methods

new(control_queue, stream) click to toggle source

@param session [GrpcKit::ControlQueue] @param stream [GrpcKit::Session::Stream]

# File lib/grpc_kit/transport/server_transport.rb, line 12
def initialize(control_queue, stream)
  @control_queue = control_queue
  @stream = stream
end

Public Instance Methods

end_write() click to toggle source

@return [void]

# File lib/grpc_kit/transport/server_transport.rb, line 59
def end_write
  @stream.end_write
end
read_data(last: false) click to toggle source

@param last [Boolean] @return [nil,Array<Boolean,Integer,String>] nil when closed, tuple of Length-Prefixed-Message

# File lib/grpc_kit/transport/server_transport.rb, line 40
def read_data(last: false)
  data_in_buffer = unpack(nil)
  return data_in_buffer if data_in_buffer
  loop do
    data = recv_data(last: last)
    return nil unless data
    message = unpack(data)
    return message if message
  end
end
recv_headers() click to toggle source

@return [Hash<String,String>]

# File lib/grpc_kit/transport/server_transport.rb, line 64
def recv_headers
  @stream.headers
end
start_response(headers) click to toggle source

@param headers [Hash<String, String>] @return [void]

# File lib/grpc_kit/transport/server_transport.rb, line 19
def start_response(headers)
  @control_queue.submit_response(@stream.stream_id, headers)
  send_data
end
submit_headers(headers) click to toggle source

@param headers [Hash<String, String>] @return [void]

# File lib/grpc_kit/transport/server_transport.rb, line 26
def submit_headers(headers)
  @control_queue.submit_headers(@stream.stream_id, headers)
end
write_data(buf, last: false) click to toggle source

@param buf [String] @param last [Boolean] @return [void]

# File lib/grpc_kit/transport/server_transport.rb, line 33
def write_data(buf, last: false)
  @stream.write_send_data(pack(buf), last: last)
  send_data
end
write_trailers(trailer) click to toggle source

@param trailer [Hash<String, String>] @return [void]

# File lib/grpc_kit/transport/server_transport.rb, line 53
def write_trailers(trailer)
  @stream.write_trailers_data(trailer)
  send_data
end

Private Instance Methods

recv_data(last: false) click to toggle source
# File lib/grpc_kit/transport/server_transport.rb, line 70
def recv_data(last: false)
  @stream.read_recv_data(last: last, blocking: true)
end
send_data() click to toggle source
# File lib/grpc_kit/transport/server_transport.rb, line 74
def send_data
  @control_queue.resume_data(@stream.stream_id)
end