class Emit::ChannelRequest

Attributes

message[RW]
process[RW]
result[RW]

Public Class Methods

new(process, message=nil) click to toggle source
# File lib/emit/channel_request.rb, line 5
def initialize(process, message=nil)
  @message = message
  @process = process
  @result  = :fail
end

Public Instance Methods

active?() click to toggle source
# File lib/emit/channel_request.rb, line 36
def active?
  @process.active?
end
offer(recipient) click to toggle source
# File lib/emit/channel_request.rb, line 23
def offer(recipient)
  return false unless @process.active? && recipient.process.active?
  recipient.message = @message

  @result = :success
  recipient.result = :success

  @process.notify(:done)
  recipient.process.notify(:done)

  true
end
poison() click to toggle source
# File lib/emit/channel_request.rb, line 11
def poison
  return if success?
  @result = :poison
  @process.notify(:poison)
end
poisoned?() click to toggle source
# File lib/emit/channel_request.rb, line 44
def poisoned?
  @result == :poison
end
retire() click to toggle source
# File lib/emit/channel_request.rb, line 17
def retire
  return if success?
  @result = :retire
  @process.notify(:retire)
end
retired?() click to toggle source
# File lib/emit/channel_request.rb, line 48
def retired?
  @result == :retired
end
success?() click to toggle source
# File lib/emit/channel_request.rb, line 40
def success?
  @result == :success
end