Class: Temporalio::Internal::Bridge::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/temporalio/internal/bridge/client.rb

Defined Under Namespace

Classes: HTTPConnectProxyOptions, KeepAliveOptions, Options, RPCRetryOptions, TLSOptions

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.new(runtime, options) ⇒ Object



54
55
56
57
58
59
60
61
# File 'lib/temporalio/internal/bridge/client.rb', line 54

def self.new(runtime, options)
  queue = Queue.new
  async_new(runtime, options, queue)
  result = queue.pop
  raise result if result.is_a?(Exception)

  result
end

Instance Method Details

#_invoke_rpc(service:, rpc:, request:, response_class:, rpc_options:) ⇒ Object



63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# File 'lib/temporalio/internal/bridge/client.rb', line 63

def _invoke_rpc(
  service:,
  rpc:,
  request:,
  response_class:,
  rpc_options:
)
  # Build cancellation token if needed
  if rpc_options&.cancellation
    rpc_cancellation_token = CancellationToken.new
    rpc_options&.cancellation&.add_cancel_callback { rpc_cancellation_token.cancel }
  end

  queue = Queue.new
  async_invoke_rpc(
    service:,
    rpc:,
    request: request.to_proto,
    rpc_retry: rpc_options&.override_retry || false,
    rpc_metadata: rpc_options&.,
    rpc_timeout: rpc_options&.timeout,
    rpc_cancellation_token:,
    queue:
  )
  result = queue.pop
  raise result if result.is_a?(Exception)

  response_class.decode(result)
end