class XRBP::WebSocket::Message
Raw data which to write to websocket and mechanisms which to track and manage response state.
Attributes
bl[W]
connection[RW]
result[R]
time[RW]
Public Class Methods
new(data)
click to toggle source
# File lib/xrbp/websocket/message.rb, line 9 def initialize(data) @data = data @result = nil @cv = ConditionVariable.new @signalled = false @time = Time.now end
Public Instance Methods
bl()
click to toggle source
# File lib/xrbp/websocket/message.rb, line 36 def bl @bl ||= proc { |res| @result = res signal } end
signal()
click to toggle source
# File lib/xrbp/websocket/message.rb, line 21 def signal @signalled = true @cv.signal self end
to_s()
click to toggle source
# File lib/xrbp/websocket/message.rb, line 17 def to_s @data end
wait()
click to toggle source
# File lib/xrbp/websocket/message.rb, line 27 def wait connection.state_mutex.synchronize { # only wait if we haven't received response @cv.wait(connection.state_mutex) unless connection.closed? || @signalled } end