Class: GrpcKit::Streams::Server
- Inherits:
-
Object
- Object
- GrpcKit::Streams::Server
- Extended by:
- Forwardable
- Defined in:
- lib/grpc_kit/streams/server.rb
Instance Method Summary collapse
-
#initialize(stream:, session:, config:) ⇒ Server
constructor
A new instance of Server.
- #recv(last: false) ⇒ Object
- #send_msg(data, last: false) ⇒ Object
- #send_status(status: GrpcKit::StatusCodes::INTERNAL, msg: nil, metadata: {}) ⇒ Object
- #send_trailer ⇒ Object
Constructor Details
#initialize(stream:, session:, config:) ⇒ Server
Returns a new instance of Server.
15 16 17 18 19 |
# File 'lib/grpc_kit/streams/server.rb', line 15 def initialize(stream:, session:, config:) @stream = GrpcKit::Stream.new(protobuf: config.protobuf, session: session, stream: stream) @config = config @sent_first_msg = false end |
Instance Method Details
#recv(last: false) ⇒ Object
33 34 35 36 37 38 |
# File 'lib/grpc_kit/streams/server.rb', line 33 def recv(last: false) data = @stream.recv(last: last, limit_size: @config.) raise StopIteration if data.nil? data end |
#send_msg(data, last: false) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/grpc_kit/streams/server.rb', line 21 def send_msg(data, last: false) if last @stream.send_trailer # TODO: pass trailer metadata end @stream.send(data, last: last, limit_size: @config.) return if @sent_first_msg @stream.submit_response @sent_first_msg = true end |
#send_status(status: GrpcKit::StatusCodes::INTERNAL, msg: nil, metadata: {}) ⇒ Object
45 46 47 48 49 50 51 |
# File 'lib/grpc_kit/streams/server.rb', line 45 def send_status(status: GrpcKit::StatusCodes::INTERNAL, msg: nil, metadata: {}) @stream.send_trailer(status: status, msg: msg, metadata: ) return if @sent_first_msg @stream.submit_response(piggyback_trailer: true) @sent_first_msg = true end |
#send_trailer ⇒ Object
40 41 42 43 |
# File 'lib/grpc_kit/streams/server.rb', line 40 def send_trailer @stream.send_trailer # TODO: pass trailer metadata @stream.end_write end |