Class: DatagroutConduit::Transport::Ws::RequestFuture
- Inherits:
-
Object
- Object
- DatagroutConduit::Transport::Ws::RequestFuture
- Defined in:
- lib/datagrout_conduit/transport/ws.rb
Overview
── Request future ────────────────────────────────────────────────────────
Instance Method Summary collapse
-
#initialize ⇒ RequestFuture
constructor
A new instance of RequestFuture.
- #reject(reason) ⇒ Object
- #resolve(value) ⇒ Object
- #wait(timeout: 30) ⇒ Object
Constructor Details
#initialize ⇒ RequestFuture
Returns a new instance of RequestFuture.
277 278 279 |
# File 'lib/datagrout_conduit/transport/ws.rb', line 277 def initialize @queue = ::Thread::Queue.new end |
Instance Method Details
#reject(reason) ⇒ Object
291 292 293 |
# File 'lib/datagrout_conduit/transport/ws.rb', line 291 def reject(reason) @queue.push([:error, reason]) end |
#resolve(value) ⇒ Object
287 288 289 |
# File 'lib/datagrout_conduit/transport/ws.rb', line 287 def resolve(value) @queue.push([:ok, value]) end |
#wait(timeout: 30) ⇒ Object
281 282 283 284 285 |
# File 'lib/datagrout_conduit/transport/ws.rb', line 281 def wait(timeout: 30) Timeout.timeout(timeout) { @queue.pop } rescue Timeout::Error [:error, "Request timed out after #{timeout}s"] end |