class Sumac::Reference
Attributes
exposed_id[R]
Public Class Methods
new(connection, exposed_id)
click to toggle source
Calls superclass method
# File lib/sumac/reference.rb, line 25 def initialize(connection, exposed_id) super() raise "argument 'connection' must be a Connection" unless connection.is_a?(Connection) @connection = connection raise unless exposed_id.is_a?(Integer) @exposed_id = exposed_id @forget_condition_variable = ConditionVariable.new end
Public Instance Methods
callable?()
click to toggle source
# File lib/sumac/reference.rb, line 54 def callable? at?(:active) end
destroy()
click to toggle source
# File lib/sumac/reference.rb, line 58 def destroy raise unless at?(:detached) to(:stale) end
detach()
click to toggle source
# File lib/sumac/reference.rb, line 50 def detach to(:detached) end
local_forget_request()
click to toggle source
# File lib/sumac/reference.rb, line 34 def local_forget_request to(:forget_requested) if at?(:active) @forget_condition_variable.wait(@connection.mutex) if at?([:forget_requested, :detached]) end
remote_forget_request()
click to toggle source
# File lib/sumac/reference.rb, line 39 def remote_forget_request raise if at?([:detached, :stale]) to(:stale) end
send_forget_notification()
click to toggle source
# File lib/sumac/reference.rb, line 44 def send_forget_notification message = Message::Exchange::ForgetNotification.new(@connection) message.reference = self @connection.messenger.send(message) end
stale?()
click to toggle source
# File lib/sumac/reference.rb, line 63 def stale? at?(:stale) end