class ObjectFramework::GRPC::Call
Public Class Methods
Source
# File lib/object_framework/grpc/server.rb, line 34 def initialize(connection:, stream:, descriptor:, message_limit:) @connection, @stream, @descriptor, @limit = connection, stream, descriptor, message_limit @started = false end
Public Instance Methods
Source
# File lib/object_framework/grpc/server.rb, line 50 def finish(status: 0, code: "ok", message: "") return if @connection.reset?(@stream) trailers = [["grpc-status", status.to_s], ["error-code", code], ["operation-id", @stream.context.operation_id]] trailers << ["grpc-message", escape(message)] unless message.empty? trailers = initial_headers + trailers unless @started @connection.send_headers(@stream, trailers, end_stream: true) end
Source
# File lib/object_framework/grpc/server.rb, line 39 def send(value) @stream.context.cancellation.check! payload = @descriptor.encode(value) raise CapacityExceeded, "Message exceeds configured limit" if payload.bytesize > @limit unless @started @connection.send_headers(@stream, initial_headers) @started = true end @connection.send_data(@stream, Messages.frame(payload)) end