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