Class: Gritz::Client::CallContext
- Inherits:
-
Object
- Object
- Gritz::Client::CallContext
- Defined in:
- /home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/client/call_context.rb
Overview
Middleware state for an outgoing RPC, independent of its transport.
Instance Attribute Summary collapse
- #kind ⇒ Object readonly
- #logger ⇒ Object readonly
- #method ⇒ Object readonly
- #operation ⇒ Object
- #options ⇒ Object readonly
- #parent ⇒ Object readonly
- #request ⇒ Object
- #response_block ⇒ Object
- #store ⇒ Object readonly
- #trace_context ⇒ Object
Instance Method Summary collapse
- #cancelled? ⇒ Boolean
- #check_cancelled! ⇒ Object
- #check_deadline! ⇒ Object
- #deadline ⇒ Object
-
#initialize(method:, kind:, request:, options:, parent:, terminal:) ⇒ CallContext
constructor
A new instance of CallContext.
- #metadata ⇒ Object
- #remaining ⇒ Object
- #request_id ⇒ Object
Constructor Details
#initialize(method:, kind:, request:, options:, parent:, terminal:) ⇒ CallContext
Returns a new instance of CallContext.
13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/client/call_context.rb', line 13 def initialize(method:, kind:, request:, options:, parent:, terminal:) service, name = method.delete_prefix("/").split("/", 2) @method = MethodDescriptor.new(service:, name:, input_type: nil, output_type: nil, client_streaming: %i[client_streaming bidi].include?(kind), server_streaming: %i[server_streaming bidi].include?(kind)) @kind = kind @request = request @options = @parent = parent @terminal = terminal @store = {} @logger = parent&.logger || Logger.new($stderr) @trace_context = parent&.trace_context end |
Instance Attribute Details
#kind ⇒ Object (readonly)
10 11 12 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/client/call_context.rb', line 10 def kind @kind end |
#logger ⇒ Object (readonly)
10 11 12 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/client/call_context.rb', line 10 def logger @logger end |
#method ⇒ Object (readonly)
10 11 12 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/client/call_context.rb', line 10 def method @method end |
#operation ⇒ Object
11 12 13 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/client/call_context.rb', line 11 def operation @operation end |
#options ⇒ Object (readonly)
10 11 12 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/client/call_context.rb', line 10 def @options end |
#parent ⇒ Object (readonly)
10 11 12 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/client/call_context.rb', line 10 def parent @parent end |
#request ⇒ Object
11 12 13 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/client/call_context.rb', line 11 def request @request end |
#response_block ⇒ Object
11 12 13 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/client/call_context.rb', line 11 def response_block @response_block end |
#store ⇒ Object (readonly)
10 11 12 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/client/call_context.rb', line 10 def store @store end |
#trace_context ⇒ Object
11 12 13 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/client/call_context.rb', line 11 def trace_context @trace_context end |
Instance Method Details
#cancelled? ⇒ Boolean
32 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/client/call_context.rb', line 32 def cancelled? = !!(store[:gritz_cancelled] || parent&.cancelled? || operation&.cancelled?) |
#check_cancelled! ⇒ Object
38 39 40 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/client/call_context.rb', line 38 def check_cancelled! raise Errors::Cancelled, "request cancelled" if cancelled? end |
#check_deadline! ⇒ Object
34 35 36 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/client/call_context.rb', line 34 def check_deadline! raise Errors::DeadlineExceeded, "deadline exceeded" if deadline && remaining.zero? end |
#deadline ⇒ Object
29 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/client/call_context.rb', line 29 def deadline = [:deadline] |
#metadata ⇒ Object
28 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/client/call_context.rb', line 28 def = [:metadata] |
#remaining ⇒ Object
30 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/client/call_context.rb', line 30 def remaining = deadline && [deadline - Time.now, 0.0].max |
#request_id ⇒ Object
31 |
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/client/call_context.rb', line 31 def request_id = ["x-request-id"] |