class RSwim::Agent::Base
Public Class Methods
new(pipe, node_member_id, seed_member_ids, t_ms, r_ms)
click to toggle source
# File lib/rswim/agent.rb, line 6 def initialize(pipe, node_member_id, seed_member_ids, t_ms, r_ms) @pipe = pipe @state = ProtocolState.new(node_member_id, seed_member_ids, t_ms, r_ms) end
Public Instance Methods
run()
click to toggle source
# File lib/rswim/agent.rb, line 15 def run loop do elapsed_seconds = pause output_messages = @state.advance(@pipe.inbound, elapsed_seconds) output_messages.each { |message| @pipe.send(message) } end end
subscribe(&block)
click to toggle source
# File lib/rswim/agent.rb, line 11 def subscribe(&block) @state.subscribe(&block) end
Protected Instance Methods
monotonic_seconds()
click to toggle source
# File lib/rswim/agent.rb, line 29 def monotonic_seconds Process.clock_gettime(Process::CLOCK_MONOTONIC) end
pause()
click to toggle source
# File lib/rswim/agent.rb, line 25 def pause raise 'implement this in a subclass' end