class RSwim::Member::TransmissionState::AwaitingAck
Public Class Methods
new(id, node_member_id, member_pool, source_ids, target_ids)
click to toggle source
Calls superclass method
RSwim::Member::Base::new
# File lib/rswim/member/transmission_state/awaiting_ack.rb, line 7 def initialize(id, node_member_id, member_pool, source_ids, target_ids) super @life_time_seconds = 0 @done = false end
Public Instance Methods
advance(elapsed_seconds)
click to toggle source
# File lib/rswim/member/transmission_state/awaiting_ack.rb, line 22 def advance(elapsed_seconds) @life_time_seconds += elapsed_seconds if @done Ready.new(@id, @node_member_id, @member_pool, @source_ids, @target_ids) elsif @life_time_seconds > R_MS / 1000.0 if @source_ids.include?(@id) @member_pool.member_failed_to_reply(@id) end Ready.new(@id, @node_member_id, @member_pool, @source_ids, @target_ids) else self end end
member_replied_with_ack()
click to toggle source
# File lib/rswim/member/transmission_state/awaiting_ack.rb, line 13 def member_replied_with_ack if @source_ids.include?(@id) @member_pool.member_replied_in_time(@id) end @source_ids.each { |i| @member_pool.forward_ack_to(i) unless i == @id } @source_ids.clear @done = true end