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.
261 262 263 |
# File 'lib/datagrout_conduit/transport/ws.rb', line 261 def initialize @queue = ::Thread::Queue.new end |
Instance Method Details
#reject(reason) ⇒ Object
275 276 277 |
# File 'lib/datagrout_conduit/transport/ws.rb', line 275 def reject(reason) @queue.push([:error, reason]) end |
#resolve(value) ⇒ Object
271 272 273 |
# File 'lib/datagrout_conduit/transport/ws.rb', line 271 def resolve(value) @queue.push([:ok, value]) end |
#wait(timeout: 30) ⇒ Object
265 266 267 268 269 |
# File 'lib/datagrout_conduit/transport/ws.rb', line 265 def wait(timeout: 30) Timeout.timeout(timeout) { @queue.pop } rescue Timeout::Error [:error, "Request timed out after #{timeout}s"] end |